Forced subs support for mencoder
[mplayer/glamo.git] / configure
blobc04e0140e070eb616d78dbc3d1cdd7f8292291df
1 #! /bin/sh
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 # pontscho@makacs.poliod.hu
6 # History / Contributors: check the cvs log !
8 # Cleanups all over the place (c) 2001 pl
11 # Guidelines:
12 # If the option is named 'opt':
13 # _opt : should have a value in yes/no/auto
14 # _def_opt : '#define ... 1' or '#undef ...' that is: some C code
15 # _ld_opt : ' -L/path/dir -lopt ' that is: some GCC option
16 # _inc_opt : ' -I/path/dir/include '
18 # In this file, a tab is 8 chars and indentation shift is 2 characters
20 # GOTCHAS:
21 # - config files are currently:
22 # config.h config.mak libvo/config.mak libao2/config.mak Gui/config.mak
24 #############################################################################
26 # Prefer these macros to full length text !
27 # These macros only return an error code - NO display is done
28 cc_check() {
29 echo >> "$TMPLOG"
30 cat "$TMPC" >> "$TMPLOG"
31 echo >> "$TMPLOG"
32 echo "$_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra $TMPC -o $TMPO $@" >> "$TMPLOG"
33 rm -f "$TMPO"
34 ( $_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra "$TMPC" -o "$TMPO" "$@" ) >> "$TMPLOG" 2>&1
35 TMP="$?"
36 echo >> "$TMPLOG"
37 echo "ldd $TMPO" >> "$TMPLOG"
38 ( $_ldd "$TMPO" ) >> "$TMPLOG" 2>&1
39 echo >> "$TMPLOG"
40 return "$TMP"
43 # Display error message, flushes tempfile, exit
44 die () {
45 echo
46 echo "Error: $@" >&2
47 echo >&2
48 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"
49 echo "Check \"$TMPLOG\" if you do not understand why it failed."
50 exit 1
53 # OS test booleans functions
54 issystem() {
55 test "`echo $system_name | tr A-Z a-z`" = "`echo $1 | tr A-Z a-z`"
57 linux() { issystem "Linux" ; return "$?" ; }
58 sunos() { issystem "SunOS" ; return "$?" ; }
59 hpux() { issystem "HP-UX" ; return "$?" ; }
60 irix() { issystem "IRIX" ; return "$?" ; }
61 cygwin() { issystem "CYGWIN" ; return "$?" ; }
62 freebsd() { issystem "FreeBSD" ; return "$?" ; }
63 netbsd() { issystem "NetBSD" ; return "$?" ; }
64 bsdos() { issystem "BSD/OS" ; return "$?" ; }
65 openbsd() { issystem "OpenBSD" ; return "$?" ; }
66 bsd() { freebsd || netbsd || bsdos || openbsd ; return "$?" ; }
67 qnx() { issystem "QNX" ; return "$?" ; }
68 darwin() { issystem "Darwin" ; return "$?" ; }
69 gnu() { issystem "GNU" ; return "$?" ; }
70 mingw32() { issystem "MINGW32" ; return "$?" ; }
71 morphos() { issystem "MorphOS" ; return "$?" ; }
73 # arch test boolean functions
74 # x86/x86pc is used by QNX
75 x86() {
76 case "$host_arch" in
77 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
78 *) return 1 ;;
79 esac
82 ppc() {
83 case "$host_arch" in
84 ppc) return 0;;
85 *) return 1;;
86 esac
89 alpha() {
90 case "$host_arch" in
91 alpha) return 0;;
92 *) return 1;;
93 esac
96 # not boolean test: implement the posix shell "!" operator for a
97 # non-posix /bin/sh.
98 # usage: not {command}
99 # returns exit status "success" when the execution of "command"
100 # fails.
101 not() {
102 eval "$@"
103 test $? -ne 0
106 # Use this before starting a check
107 echocheck() {
108 echo "============ Checking for $@ ============" >> "$TMPLOG"
109 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
112 # Use this to echo the results of a check
113 echores() {
114 echo "Result is: $@" >> "$TMPLOG"
115 echo "##########################################" >> "$TMPLOG"
116 echo "" >> "$TMPLOG"
117 echo "$@"
119 #############################################################################
121 # Check how echo works in this /bin/sh
122 case `echo -n` in
123 -n) _echo_n= _echo_c='\c' ;; # SysV echo
124 *) _echo_n='-n ' _echo_c= ;; # BSD echo
125 esac
127 LANGUAGES=`echo help/help_mp-??.h help/help_mp-??_??.h | sed "s/help\/help_mp-\(..\).h/\1/g" |sed "s/help\/help_mp-\(.....\).h/\1/g"`
129 for parm in "$@" ; do
130 if test "$parm" = "--help" || test "$parm" = "-help" || test "$parm" = "-h" ; then
131 cat << EOF
133 Usage: $0 [OPTIONS]...
135 Configuration:
136 -h, --help display this help and exit
138 Installation directories:
139 --prefix=DIR use this prefix for installing mplayer [/usr/local]
140 --bindir=DIR use this prefix for installing mplayer binary
141 [PREFIX/bin]
142 --datadir=DIR use this prefix for installing machine independent
143 data files (fonts, skins) [PREFIX/share/mplayer]
144 --mandir=DIR use this prefix for installing manpages [PREFIX/man]
145 --confdir=DIR use this prefix for installing configuration files
146 [PREFIX/etc/mplayer]
147 --libdir=DIR use this prefix for object code libraries [PREFIX/lib]
149 Optional features:
150 --disable-mencoder disable mencoder (a/v encoder) compilation [enable]
151 --enable-gui enable gmplayer compilation (gtk-1.2 GUI) [disable]
152 --enable-largefiles enable support for files > 2 GBytes [disable]
153 --enable-linux-devfs set default devices to devfs ones [disable]
154 --enable-termcap use termcap database for key codes [autodetect]
155 --with-termcaplib=NAME name of library with termcap functionality
156 name shuld be given without leading "lib"
157 checks for "termcap" and "tinfo"
158 --disable-iconv do not use iconv(3) function [autodetect]
159 --disable-setlocale disable setlocale using in mplayer [autodetect]
160 --enable-lirc enable LIRC (remote control) support [autodetect]
161 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
162 --enable-joystick enable joystick support [disable]
163 --disable-tv disable TV Interface (tv/dvb grabbers) [enable]
164 --disable-tv-v4l disable Video4Linux TV Interface support [autodetect]
165 --disable-tv-v4l2 disable Video4Linux2 TV Interface support [autodetect]
166 --disable-tv-bsdbt848 disable BSD BT848 Interface support [autodetect]
167 --disable-edl disable EDL (edit decision list) support [enable]
168 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
169 --disable-network disable network support (for: http/mms/rtp) [enable]
170 --enable-winsock2 enable winsock2 usage [autodetect]
171 --enable-smb enable Samba (SMB) input support [autodetect]
172 --enable-live enable LIVE.COM Streaming Media support [disable]
173 --disable-dvdread Disable libdvdread support [autodetect]
174 --disable-mpdvdkit Disable mpdvdkit/mpdvdkit2 support [autodetect]
175 --disable-css Disable old-style libcss DVD support [autodetect]
176 --disable-cdparanoia Disable cdparanoia support [autodetect]
177 --disable-freetype Disable freetype2 font rendering support [autodetect]
178 --disable-unrarlib Disable Unique RAR File Library [enabled]
179 --enable-menu Enable OSD menu support (NOT DVD MENU) [disabled]
180 --disable-sortsub Disable subtitles sorting [enabled]
181 --enable-fribidi Enable using the FriBiDi libs [disabled]
182 --disable-macosx Disable Mac OS X specific features [autodetect]
183 --disable-inet6 Disable IPv6 support [autodetect]
184 --disable-gethostbyname2 gethostbyname() function is not provided by the C
185 library [autodetect]
186 --disable-ftp Disable ftp support [enabled]
188 Codecs:
189 --enable-gif enable gif support [autodetect]
190 --enable-png enable png input/output support [autodetect]
191 --enable-jpeg enable jpeg input/output support [autodetect]
192 --enable-liblzo enable external liblzo support [autodetect]
193 --disable-win32 disable Win32 DLL support [autodetect]
194 --disable-dshow disable Win32/DirectShow support [autodetect]
195 --disable-qtx disable Quicktime codecs [autodetect]
196 --disable-xanim disable XAnim DLL support [autodetect]
197 --disable-real disable RealPlayer DLL support [autodetect]
198 --disable-xvid disable XviD codec [autodetect]
199 --disable-divx4linux disable DivX4linux/Divx5linux codec [autodetect]
200 --enable-opendivx enable _old_ OpenDivx codec [disable]
201 --disable-libavcodec disable libavcodec [autodetect]
202 --enable-libfame enable libfame realtime encoder [autodetect]
203 --enable-vorbis build with OggVorbis support [autodetect]
204 --enable-tremor build with integer-only OggVorbis support [disabled]
205 --enable-theora build with OggTheora support [autodetect]
206 --enable-matroska build with Matroska support [autodetect]
207 --enable-external-faad build with external FAAD2 (AAC) support [autodetect]
208 --disable-internal-faad disable internal FAAD2 (AAC) support [autodetect]
209 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
210 --disable-mad disable libmad (MPEG audio) support [autodetect]
211 --enable-xmms build with XMMS inputplugin support [disabled]
212 --enable-flac build with FLAC support [autodetect]
213 --enable-external-flac build with external libFLAC [disable]
215 Video output:
216 --disable-vidix disable VIDIX [enable on x86 *nix]
217 --enable-gl build with OpenGL render support [autodetect]
218 --enable-dga[=n] build with DGA [n in {1, 2} ] support [autodetect]
219 --enable-vesa build with VESA support [autodetect]
220 --enable-svga build with SVGAlib support [autodetect]
221 --enable-sdl build with SDL render support [autodetect]
222 --enable-aa build with AAlib render support [autodetect]
223 --enable-ggi build with GGI render support [autodetect]
224 --enable-directx build with DirectX support [autodetect]
225 --enable-dxr2 build with DXR2 render support [autodetect]
226 --enable-dxr3 build with DXR3/H+ render support [autodetect]
227 --enable-dvb build with support for output via DVB-Card [autodetect]
228 --enable-dvbhead build with DVB support (HEAD version) [autodetect]
229 --enable-mga build with mga_vid (for Matrox G200/G4x0/G550) support
230 (check for /dev/mga_vid) [autodetect]
231 --enable-xmga build with mga_vid X Window support
232 (check for X & /dev/mga_vid) [autodetect]
233 --enable-xv build with Xv render support for X 4.x [autodetect]
234 --enable-xvmc build with XvMC acceleration for X 4.x [autodetect]
235 --enable-vm build with XF86VidMode support for X11 [autodetect]
236 --enable-xinerama build with Xinerama support for X11 [autodetect]
237 --enable-x11 build with X11 render support [autodetect]
238 --enable-fbdev build with FBDev render support [autodetect]
239 --enable-mlib build with MLIB support (Solaris only) [autodetect]
240 --enable-3dfx build with obsolete /dev/3dfx support [disable]
241 --enable-tdfxfb build with tdfxfb (Voodoo 3/banshee) support [disable]
242 --enable-directfb build with DirectFB support [autodetect]
243 --enable-zr build with ZR360[56]7/ZR36060 support [autodetect]
244 --enable-bl build with Blinkenlights support [disable]
245 --enable-tdfxvid build with tdfx vid support [disable]
246 --disable-tga disable targa output support [enable]
248 Audio output:
249 --disable-ossaudio disable OSS sound support [autodetect]
250 --disable-arts disable aRts sound support [autodetect]
251 --disable-esd disable esd sound support [autodetect]
252 --disable-alsa disable alsa sound support [autodetect]
253 --disable-sunaudio disable Sun sound support [autodetect]
254 --disable-nas disable NAS sound support [autodetect]
255 --disable-win32waveout disable Windows waveout sound support [autodetect]
256 --disable-select disable using select() on audio device [enable]
258 Miscellaneous options:
259 --enable-runtime-cpudetection Enable runtime CPU detection [disable]
260 --cc=COMPILER use this C compiler to build MPlayer [gcc]
261 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
262 --enable-static build a statically linked binary. Set further linking
263 options with --enable-static="-lslang -lncurses"
264 --language=list a white space or comma separated list of languages
265 for translated man pages, the first language is the
266 primary and therefore used for translated messages
267 and GUI (also the environment variable \$LINGUAS is
268 honored) [en]
269 (Available: $LANGUAGES all)
270 --enable-shared-pp install & use shared postprocessing lib
271 --with-install=PATH use a custom install program (useful if your OS uses
272 a GNU-incompatible install utility by default and
273 you want to use GNU version)
274 --install-path=PATH the path to a custom install program
275 this option is obsolete and will be removed soon,
276 use --with-install instead.
278 Advanced options:
279 --enable-mmx build with MMX support [autodetect]
280 --enable-mmx2 build with MMX2 support (PIII, Athlon) [autodetect]
281 --enable-3dnow build with 3DNow! support [autodetect]
282 --enable-3dnowex build with extended 3DNow! support [autodetect]
283 --enable-sse build with SSE support [autodetect]
284 --enable-sse2 build with SSE2 support [autodetect]
285 --enable-altivec build with Altivec support (PowerPC) [autodetect]
286 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy() [enable]
287 --enable-big-endian Force byte order to big endian [autodetect]
288 --enable-debug[=1-3] compile debugging information into mplayer [disable]
289 --enable-profile compile profiling information into mplayer [disable]
290 --disable-sighandler disable sighandler for crashes [enable]
291 --enable-i18n _experimental_ gnu gettext() support [autodetect]
292 --enable-dynamic-plugins Enable support for dynamic a/v plugins [disable]
294 Hazardous options a.k.a. "DO NOT REPORT ANY BUGS!"
295 --disable-gcc-checking disable gcc version checking [enable]
297 Use these options if autodetection fails:
298 --with-extraincdir=DIR extra headers (png, mad, sdl, css, ...) in DIR
299 --with-extralibdir=DIR extra library files (png, SDL, ...) in DIR
300 --with-x11incdir=DIR X headers in DIR
301 --with-x11libdir=DIR X library files in DIR
302 --with-dxr2incdir=DIR DXR2 headers in DIR
303 --with-dvbincdir=DIR DVB headers in DIR
304 --with-csslibdir=DIR libcss in DIR
305 --with-madlibdir=DIR libmad (libmad shared library) in DIR
306 --with-mlibdir=DIR libmlib (MLIB support) in DIR (Solaris only)
307 --with-codecsdir=DIR Binary codec files in DIR
308 --with-win32libdir=DIR W*ndows DLL files in DIR
309 --with-xanimlibdir=DIR XAnim DLL files in DIR
310 --with-reallibdir=DIR RealPlayer DLL files in DIR
311 --with-xvmclib=PATH path to adapter specific XvMCxxxxx.so (e.g. NVIDIA)
312 --with-xvidlibdir=DIR libxvidcore (XviD) in DIR
313 --with-xvidincdir=DIR XviD header in DIR
315 --with-sdl-config=PATH path to sdl*-config (e.g. /opt/bin/sdl-config)
316 --with-freetype-config=PATH path to freetype-config
317 (e.g. /opt/bin/freetype-config)
318 --with-gtk-config=PATH path to gtk*-config (e.g. /opt/bin/gtk-config)
319 --with-glib-config=PATH path to glib*-config (e.g. /opt/bin/glib-config)
320 --with-livelibdir=DIR path to LIVE.COM Streaming Media libraries
321 --with-xmmsplugindir=DIR path to XMMS plugins
322 --with-xmmslibdir=DIR path to libxmms.so.1
323 --with-cdparanoiaincdir=DIR cdparanoia headers in DIR
324 --with-cdparanoialibdir=DIR cdparanoia libraries (libcdda_*) in DIR
325 --with-fribidi-config=PATH path to fribidi-config
326 (e.g. /opt/bin/fribidi-config)
329 exit 0
331 done # for parm in ...
334 # 1st pass checking for vital options
335 _install=install
336 _ranlib=ranlib
337 _cc=cc
338 test "$CC" && _cc="$CC"
339 _as=auto
340 _runtime_cpudetection=no
341 for ac_option do
342 case "$ac_option" in
343 --target=*)
344 _target=`echo $ac_option | cut -d '=' -f 2`
346 --cc=*)
347 _cc=`echo $ac_option | cut -d '=' -f 2`
349 --as=*)
350 _as=`echo $ac_option | cut -d '=' -f 2`
352 --enable-gcc-checking)
353 _skip_cc_check=no
355 --disable-gcc-checking)
356 _skip_cc_check=yes
358 --enable-static)
359 _ld_static='-static'
361 --disable-static)
362 _ld_static=''
364 --enable-static=*)
365 _ld_static="-static `echo $ac_option | cut -d '=' -f 2`"
367 --with-extraincdir=*)
368 _inc_extra=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
370 --with-extralibdir=*)
371 _ld_extra=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
372 # _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'`
374 --enable-runtime-cpudetection)
375 _runtime_cpudetection=yes
377 --disable-runtime-cpudetection)
378 _runtime_cpudetection=no
380 --install-path=*)
381 _install=`echo $ac_option | cut -d '=' -f 2 | sed 's/\/$//'`"/install"
383 --with-install=*)
384 _install=`echo $ac_option | cut -d '=' -f 2 `
386 esac
387 done
389 # Determine our OS name and CPU architecture
390 if test -z "$_target" ; then
391 # OS name
392 system_name=`( uname -s ) 2>&1`
393 case "$system_name" in
394 Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU)
396 IRIX*)
397 system_name=IRIX
399 HP-UX*)
400 system_name=HP-UX
402 [cC][yY][gG][wW][iI][nN]*)
403 system_name=CYGWIN
405 MINGW32*)
406 system_name=MINGW32
408 MorphOS)
409 system_name=MorphOS
412 system_name="$system_name-UNKNOWN"
414 esac
417 # host's CPU/instruction set
418 host_arch=`( uname -p ) 2>&1`
419 case "$host_arch" in
420 i386|sparc|ppc|alpha|arm|mips)
422 powerpc) # Darwin returns 'powerpc'
423 host_arch=ppc
425 *) # uname -p on Linux returns 'unknown' for the processor type,
426 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
428 # Maybe uname -m (machine hardware name) returns something we
429 # recognize.
431 # x86/x86pc is used by QNX
432 case "`( uname -m ) 2>&1`" in
433 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 ;;
434 ia64) host_arch=ia64 ;;
435 x86_64) host_arch=x86_64 ;;
436 ppc) host_arch=ppc ;;
437 alpha) host_arch=alpha ;;
438 sparc*) host_arch=sparc ;;
439 9000*) host_arch=hppa ;;
440 arm*) host_arch=arm ;;
441 s390) host_arch=s390 ;;
442 s390x) host_arch=s390x ;;
443 mips) host_arch=mips ;;
444 *) host_arch=UNKNOWN ;;
445 esac
447 esac
448 else
449 system_name=`echo $_target | cut -d '-' -f 2`
450 case "`echo $system_name | tr A-Z a-z`" in
451 linux) system_name=Linux ;;
452 freebsd) system_name=FreeBSD ;;
453 netbsd) system_name=NetBSD ;;
454 bsd/os) system_name=BSD/OS ;;
455 openbsd) system_name=OpenBSD ;;
456 sunos) system_name=SunOS ;;
457 qnx) system_name=QNX ;;
458 morphos) system_name=MorphOS ;;
459 esac
460 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
461 host_arch=`echo $_target | cut -d '-' -f 1 | tr '_' '-'`
464 echo "Detected operating system: $system_name"
465 echo "Detected host architecture: $host_arch"
467 # LGB: temporary files
468 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
469 test "$I" && break
470 done
472 TMPLOG="configure.log"
473 rm -f "$TMPLOG"
474 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
475 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
476 TMPO="$I/mplayer-conf-$RANDOM-$$.o"
477 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
479 # config files
481 # FIXME: A lot of stuff is installed under /usr/local
482 # NK: But we should never use this stuff implicitly since we call compiler
483 # from /usr we should be sure that there no effects from other compilers
484 # (libraries) which might be installed into /usr/local. Let users use this
485 # stuff explicitly as command line argument. In other words: It would be
486 # resonable to have only /usr/include or only /usr/local/include.
488 if freebsd ; then
489 _ld_extra="$_ld_extra -L/usr/local/lib"
490 _inc_extra="$_inc_extra -I/usr/local/include"
493 _ldd=ldd
494 if darwin; then
495 _ldd="otool -L"
498 # Checking CC version...
499 if test "$_skip_cc_check" != yes ; then
500 for _cc in "$_cc" gcc gcc-3.3 gcc-3.2 gcc-3.1 gcc3 gcc-3.0 cc ; do
501 echocheck "$_cc version"
502 cc_name=`( $_cc -v ) 2>&1 | tail -1 | cut -d ' ' -f 1`
503 cc_version=`( $_cc -dumpversion ) 2>&1`
504 if test "$?" -gt 0; then
505 cc_version="not found"
507 case $cc_version in
509 cc_version="v. ?.??, bad"
510 cc_verc_fail=yes
512 2.95.[2-9]|2.95.[2-9][-.]*|3.[0-9]|3.[0-9].[0-9])
513 _cc_major=`echo $cc_version | cut -d '.' -f 1`
514 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
515 _cc_mini=`echo $cc_version | cut -d '.' -f 3`
516 cc_version="$cc_version, ok"
517 cc_verc_fail=no
519 'not found')
520 cc_verc_fail=yes
523 cc_version="$cc_version, bad"
524 cc_verc_fail=yes
526 esac
527 echores "$cc_version"
528 (test "$cc_verc_fail" = "no") && break
529 done
530 if test "$cc_verc_fail" = yes ; then
531 cat <<EOF
533 *** Please downgrade/upgrade C compiler to version gcc-2.95.x or gcc-3.x! ***
535 You are not using a supported compiler. We do not have the time to make sure
536 everything works with compilers other than the ones we use. Use either the
537 same compiler as we do, or use --disable-gcc-checking but DO *NOT* REPORT BUGS
538 unless you can reproduce them after recompiling with a 2.95.x or 3.x version!
540 Note for gcc 2.96 users: Some versions of this compiler are known to miscompile
541 mplayer and lame (which is used for mencoder). If you get compile errors,
542 first upgrade to the latest 2.96 release (minimum 2.96-85) and try again.
543 If the problem still exists, try with gcc 3.x (or 2.95.x) *BEFORE* reporting
544 bugs!
546 GCC 2.96 IS NOT AND WILL NOT BE SUPPORTED BY US !
548 *** For details please read DOCS/HTML/en/users-vs-dev.html ***
551 die "Bad gcc version"
553 else
554 cat <<EOF
556 ******************************************************************************
558 Hmm. You really want to compile MPlayer with an *UNSUPPORTED* C compiler?
559 Ok. You know. Do it. Did you read DOCS/HTML/en/users-vs-dev.html???
561 DO NOT SEND BUGREPORTS OR COMPLAIN, it's *YOUR* compiler's fault!
562 Get ready for mysterious crashes, no-picture bugs, strange noises... REALLY!
563 Lame which is used by mencoder produces weird errors, too.
565 If you have any problem, install a GCC 2.95.x or 3.x version and try again.
566 If the problem _still_ exists, then read DOCS/HTML/en/bugreports.html !
568 *** DO NOT SEND BUG REPORTS OR COMPLAIN it's *YOUR* compiler's fault! ***
570 ******************************************************************************
574 read _answer
577 # ---
579 # now that we know what compiler should be used for compilation, try to find
580 # out which assembler is used by the $_cc compiler
581 if test "$_as" = auto ; then
582 _as=`$_cc -print-prog-name=as`
583 test -z "$_as" && _as=as
586 # XXX: this should be ok..
587 _cpuinfo="echo"
588 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
589 # FIXME: Remove the cygwin check once AMD CPUs are supported
590 if test -r /proc/cpuinfo && not cygwin; then
591 # Linux with /proc mounted, extract CPU information from it
592 _cpuinfo="cat /proc/cpuinfo"
593 elif test -r /compat/linux/proc/cpuinfo && not x86 ; then
594 # FreeBSD with Linux emulation /proc mounted,
595 # extract CPU information from it
596 _cpuinfo="cat /compat/linux/proc/cpuinfo"
597 elif darwin ; then
598 # use hostinfo on Darwin
599 _cpuinfo="hostinfo"
600 elif x86; then
601 # all other OSes try to extract CPU information from a small helper
602 # program TOOLS/cpuinfo instead
603 $_cc -o TOOLS/cpuinfo TOOLS/cpuinfo.c
604 _cpuinfo="TOOLS/cpuinfo"
607 case "$host_arch" in
608 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
609 _def_arch="#define ARCH_X86 1"
610 _target_arch="TARGET_ARCH_X86 = yes"
612 pname=`$_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -1`
613 pvendor=`$_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
614 pfamily=`$_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
615 pmodel=`$_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
616 pstepping=`$_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -1`
618 pparam=`$_cpuinfo | grep 'features' | cut -d ':' -f 2 | head -1`
619 if test -z "$pparam" ; then
620 pparam=`$_cpuinfo | grep 'flags' | cut -d ':' -f 2 | head -1`
623 _mmx=no
624 _3dnow=no
625 _3dnowex=no
626 _mmx2=no
627 _sse=no
628 _sse2=no
629 _mtrr=no
631 for i in $pparam ; do
632 case "$i" in
633 3dnow) _3dnow=yes ;;
634 3dnowext) _3dnow=yes _3dnowex=yes ;;
635 mmx) _mmx=yes ;;
636 mmxext) _mmx2=yes ;;
637 mtrr|k6_mtrr|cyrix_arr) _mtrr=yes ;;
638 xmm|sse|kni) _sse=yes _mmx2=yes ;;
639 sse2) _sse2=yes ;;
640 esac
641 done
643 echocheck "CPU vendor"
644 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
646 echocheck "CPU type"
647 echores "$pname"
649 case "$pvendor" in
650 AuthenticAMD)
651 case "$pfamily" in
652 3) proc=i386 iproc=386 ;;
653 4) proc=i486 iproc=486 ;;
654 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
655 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
656 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
657 proc=k6-3
658 elif test "$pmodel" -ge 8; then
659 proc=k6-2
660 elif test "$pmodel" -ge 6; then
661 proc=k6
662 else
663 proc=i586
664 iproc=586
667 6) iproc=686
668 if test "$pmodel" -ge 7; then
669 proc=athlon-4
670 elif test "$pmodel" -ge 6; then
671 # only Athlon XP supports ssem MP, Duron etc not
672 # but most of them are CPUID 666, so check if sse detected
673 # btw. there is also athlon-mp opt, but we need extended
674 # CPUID to detect if CPU is SMP capable -> athlon-mp ::atmos
675 if test "$_sse" = yes && test "$pstepping" -ge 2; then
676 proc=athlon-xp
677 else
678 proc=athlon-4
680 elif test "$pmodel" -ge 4; then
681 proc=athlon-tbird
682 else
683 proc=athlon # TODO: should the Duron Spitfire be considered a Thunderbird instead?
687 *) proc=athlon-xp iproc=686 ;;
688 esac
690 GenuineIntel)
691 case "$pfamily" in
692 3) proc=i386 iproc=386 ;;
693 4) proc=i486 iproc=486 ;;
694 5) iproc=586
695 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
696 proc=pentium-mmx # 4 is desktop, 8 is mobile
697 else
698 proc=i586
701 6) iproc=686
702 if test "$pmodel" -ge 7; then
703 proc=pentium3
704 elif test "$pmodel" -ge 3; then
705 proc=pentium2
706 else
707 proc=i686
710 15) proc=pentium4 iproc=686 ;;
711 *) proc=pentium4 iproc=686 ;;
712 esac
714 unknown)
715 case "$pfamily" in
716 3) proc=i386 iproc=386 ;;
717 4) proc=i486 iproc=486 ;;
718 *) proc=i586 iproc=586 ;;
719 esac
722 proc=i586 iproc=586 ;;
723 esac
725 # check that gcc supports our CPU, if not, fall back to earlier ones
726 # LGB: check -mcpu and -march swithing step by step with enabling
727 # to fall back till 386.
729 echocheck "GCC & CPU optimization abilities"
730 cat > $TMPC << EOF
731 int main(void) { return 0; }
733 if test "$_runtime_cpudetection" = no ; then
734 if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" || test "$proc" = "athlon-tbird"; then
735 cc_check -march=$proc -mcpu=$proc || proc=athlon
737 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
738 cc_check -march=$proc -mcpu=$proc || proc=k6
740 if test "$proc" = "k6"; then
741 if not cc_check -march=$proc -mcpu=$proc; then
742 if cc_check -march=i586 -mcpu=i686; then
743 proc=i586-i686
744 else
745 proc=i586
749 if test "$proc" = "pentium4" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon"; then
750 cc_check -march=$proc -mcpu=$proc || proc=i686
752 if test "$proc" = "i686" || test "$proc" = "pentium-mmx"; then
753 cc_check -march=$proc -mcpu=$proc || proc=i586
755 if test "$proc" = "i586" ; then
756 cc_check -march=$proc -mcpu=$proc || proc=i486
758 if test "$proc" = "i486" ; then
759 cc_check -march=$proc -mcpu=$proc || proc=i386
761 if test "$proc" = "i386" ; then
762 cc_check -march=$proc -mcpu=$proc || proc=error
764 if test "$proc" = "error" ; then
765 echores "Your $_cc does not even support \"i386\" for '-march' and '-mcpu'."
766 _mcpu=""
767 _march=""
768 _optimizing=""
769 elif test "$proc" = "i586-i686"; then
770 _march="-march=i586"
771 _mcpu="-mcpu=i686"
772 _optimizing="$proc"
773 else
774 _march="-march=$proc"
775 _mcpu="-mcpu=$proc"
776 _optimizing="$proc"
778 else
779 # i686 is probably the most common CPU - optimize for it
780 _mcpu="-mcpu=i686"
781 # at least i486 required, for bswap instruction
782 _march="-march=i486"
783 cc_check $_mcpu || _mcpu=""
784 cc_check $_march $_mcpu || _march=""
787 ## Gabucino : --target takes effect here (hopefully...) by overwriting
788 ## autodetected mcpu/march parameters
789 if test "$_target" ; then
790 # TODO: it may be a good idea to check GCC and fall back in all cases
791 if test "$host_arch" = "i586-i686"; then
792 _march="-march=i586"
793 _mcpu="-mcpu=i686"
794 else
795 _march="-march=$host_arch"
796 _mcpu="-mcpu=$host_arch"
799 proc="$host_arch"
801 case "$proc" in
802 i386) iproc=386 ;;
803 i486) iproc=486 ;;
804 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
805 i686|athlon*|pentium*) iproc=686 ;;
806 *) iproc=586 ;;
807 esac
810 echores "$proc"
813 ia64)
814 _def_arch='#define ARCH_IA64 1'
815 _target_arch='TARGET_ARCH_IA64 = yes'
816 iproc='ia64'
817 proc=''
818 _march=''
819 _mcpu=''
820 _optimizing=''
823 x86_64)
824 _def_arch='#define ARCH_X86_64 1'
825 _target_arch='TARGET_ARCH_X86_64 = yes'
826 iproc='x86_64'
827 proc=''
828 _march=''
829 _mcpu=''
830 _optimizing=''
833 sparc)
834 _def_arch='#define ARCH_SPARC 1'
835 _target_arch='TARGET_ARCH_SPARC = yes'
836 iproc='sparc'
837 proc='v8'
838 _march=''
839 _mcpu="-mcpu=$proc"
840 _optimizing="$proc"
843 arm|armv4l|armv5tel)
844 _def_arch='#define ARCH_ARMV4L 1'
845 _target_arch='TARGET_ARCH_ARMV4L = yes'
846 iproc='arm'
847 proc=''
848 _march=''
849 _mcpu=''
850 _optimizing=''
853 ppc)
854 _def_arch='#define ARCH_POWERPC 1'
855 _target_arch='TARGET_ARCH_POWERPC = yes'
856 iproc='ppc'
857 proc=''
858 _march=''
859 _mcpu=''
860 _optimizing=''
861 _altivec=no
863 echocheck "CPU type"
864 if linux && test -n "$_cpuinfo"; then
865 proc=`$_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -1`
866 if test -n "`$_cpuinfo | grep altivec`"; then
867 _altivec=yes
870 if darwin ; then
871 proc=`$_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//'`
872 if [ `sysctl -n hw.vectorunit` -eq 1 ]; then
873 _altivec=yes
875 if [ `sysctl -n hw.optional.altivec` -eq 1 ]; then
876 _altivec=yes
879 if test "$_altivec" = yes; then
880 echores "$proc altivec"
881 else
882 echores "$proc"
885 echocheck "GCC & CPU optimization abilities"
887 if test -n "$proc"; then
888 case "$proc" in
889 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
890 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
891 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
892 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
893 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
894 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
895 *) ;;
896 esac
897 # gcc 3.1(.1) and up supports 7400 and 7450
898 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1"; then
899 case "$proc" in
900 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
901 7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
902 *) ;;
903 esac
907 if test -n "$_mcpu"; then
908 _optimizing=`echo $_mcpu | cut -c 8-`
909 echores "$_optimizing"
910 else
911 echores "none"
916 alpha)
917 _def_arch='#define ARCH_ALPHA 1'
918 _target_arch='TARGET_ARCH_ALPHA = yes'
919 iproc='alpha'
920 _march=''
922 echocheck "CPU type"
923 cat > $TMPC << EOF
924 int main() {
925 unsigned long ver, mask;
926 asm ("implver %0" : "=r" (ver));
927 asm ("amask %1, %0" : "=r" (mask) : "r" (-1));
928 printf("%ld-%x\n", ver, ~mask);
929 return 0;
932 $_cc -o "$TMPO" "$TMPC"
933 case `"$TMPO"` in
935 0-0) proc="ev4"; cpu_understands_mvi="0";;
936 1-0) proc="ev5"; cpu_understands_mvi="0";;
937 1-1) proc="ev56"; cpu_understands_mvi="0";;
938 1-101) proc="pca56"; cpu_understands_mvi="1";;
939 2-303) proc="ev6"; cpu_understands_mvi="1";;
940 2-307) proc="ev67"; cpu_understands_mvi="1";;
941 2-1307) proc="ev68"; cpu_understands_mvi="1";;
942 esac
943 echores "$proc"
945 echocheck "GCC & CPU optimization abilities"
946 if test "$proc" = "ev68" ; then
947 cc_check -mcpu=$proc || proc=ev67
949 if test "$proc" = "ev67" ; then
950 cc_check -mcpu=$proc || proc=ev6
952 _mcpu="-mcpu=$proc"
953 echores "$proc"
955 _optimizing="$proc"
957 echocheck "MVI instruction support in GCC"
958 if test "$_cc_major" -ge "3" && test "$cpu_understands_mvi" = "1" ; then
959 _def_gcc_mvi_support="#define CAN_COMPILE_ALPHA_MVI 1"
960 echores "yes"
961 else
962 _def_gcc_mvi_support="#undef CAN_COMPILE_ALPHA_MVI"
963 echores "no, GCC = `( $_cc -dumpversion ) 2>&1` (must be >= 3), CPU = $proc (must be pca56 or later)"
967 mips)
968 _def_arch='#define ARCH_SGI_MIPS 1'
969 _target_arch='TARGET_ARCH_SGI_MIPS = yes'
970 iproc='sgi-mips'
971 proc=''
972 _march=''
973 _mcpu=''
974 _optimizing=''
977 hppa)
978 _def_arch='#define ARCH_PA_RISC 1'
979 _target_arch='TARGET_ARCH_PA_RISC = yes'
980 iproc='PA-RISC'
981 proc=''
982 _march=''
983 _mcpu=''
984 _optimizing=''
987 s390)
988 _def_arch='#define ARCH_S390 1'
989 _target_arch='TARGET_ARCH_S390 = yes'
990 iproc='390'
991 proc=''
992 _march=''
993 _mcpu=''
994 _optimizing=''
997 s390x)
998 _def_arch='#define ARCH_S390X 1'
999 _target_arch='TARGET_ARCH_S390X = yes'
1000 iproc='390x'
1001 proc=''
1002 _march=''
1003 _mcpu=''
1004 _optimizing=''
1008 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
1009 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
1010 die "unsupported architecture $host_arch"
1012 esac
1014 if test "$_runtime_cpudetection" = yes ; then
1015 if x86; then
1016 _mmx=yes
1017 _3dnow=yes
1018 _3dnowex=yes
1019 _mmx2=yes
1020 _sse=yes
1021 _sse2=yes
1022 _mtrr=yes
1024 if ppc; then
1025 _altivec=yes
1029 if x86 && test "$_runtime_cpudetection" = no ; then
1030 extcheck() {
1031 if test "$1" = yes ; then
1032 echocheck "kernel support of $2"
1033 cat > $TMPC <<EOF
1034 #include <signal.h>
1035 void catch() { exit(1); }
1036 int main(void){
1037 signal(SIGILL, catch);
1038 __asm__ __volatile__ ("$3":::"memory");return(0);
1042 if ( cc_check && $TMPO ) > /dev/null 2>&1 ; then
1043 echores "yes"
1044 _optimizing="$_optimizing $2"
1045 return 0
1046 else
1047 echores "failed"
1048 echo "It seems that your kernel does not correctly support $2."
1049 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1050 return 1
1053 return 0
1056 extcheck $_mmx "mmx" "emms" || _mmx=no
1057 extcheck $_mmx2 "mmx2" "sfence" || _mmx2=no
1058 extcheck $_3dnow "3dnow" "femms" || _3dnow=no
1059 extcheck $_3dnowex "3dnowex" "pswapd %%mm0, %%mm0" || _3dnowex=no
1060 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _sse=no _gcc3_ext="$_gcc3_ext -mno-sse"
1061 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _sse2=no _gcc3_ext="$_gcc3_ext -mno-sse2"
1062 echocheck "mtrr support"
1063 echores "$_mtrr"
1065 if test "$_mtrr" = yes ; then
1066 _optimizing="$_optimizing mtrr"
1069 if test "$_gcc3_ext" != ""; then
1070 # if we had to disable sse/sse2 because the active kernel does not
1071 # support this instruction set extension, we also have to tell
1072 # gcc3 to not generate sse/sse2 instructions for normal C code
1073 cat > $TMPC << EOF
1074 int main(void) { return 0; }
1076 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1082 _prefix="/usr/local"
1083 _xvmclib="XvMCNVIDIA"
1085 # GOTCHA: the variables below defines the default behavior for autodetection
1086 # and have - unless stated otherwise - at least 2 states : yes no
1087 # If autodetection is available then the third state is: auto
1088 _libavcodec=auto
1089 _libavcodecso=auto
1090 _fame=auto
1091 _mp1e=no
1092 _mencoder=yes
1093 _x11=auto
1094 _dga=auto # 1 2 no auto
1095 _xv=auto
1096 _xvmc=no #auto when complete
1097 _sdl=auto
1098 _directx=auto
1099 _win32waveout=auto
1100 _nas=auto
1101 _png=auto
1102 _jpg=auto
1103 _gif=auto
1104 _gl=auto
1105 _ggi=auto
1106 _aa=auto
1107 _svga=auto
1108 _vesa=auto
1109 _fbdev=auto
1110 _dvb=auto
1111 _dvbhead=auto
1112 _dxr2=auto
1113 _dxr3=auto
1114 _iconv=auto
1115 _rtc=auto
1116 _ossaudio=auto
1117 _arts=auto
1118 _esd=auto
1119 _liblzo=auto
1120 _mad=auto
1121 _vorbis=auto
1122 _theora=auto
1123 _matroska=auto
1124 _tremor=no
1125 _faad_internal=auto
1126 _faad_external=auto
1127 _xmms=no
1128 _flac=auto
1129 _external_flac=auto
1130 _css=auto
1131 # dvdnav disabled, it does not work
1132 #_dvdnav=no
1133 _dvdread=auto
1134 _dvdkit=auto
1135 _xanim=auto
1136 _real=auto
1137 _live=no
1138 _xinerama=auto
1139 _mga=auto
1140 _xmga=auto
1141 _vm=auto
1142 _mlib=auto
1143 _sgiaudio=auto
1144 _sunaudio=auto
1145 _alsa=auto
1146 _fastmemcpy=yes
1147 _unrarlib=yes
1148 _win32=auto
1149 _dshow=yes
1150 _select=yes
1151 _tv=yes
1152 _tv_v4l=auto
1153 _tv_v4l2=auto
1154 _tv_bsdbt848=auto
1155 _edl=yes
1156 _network=yes
1157 _winsock2=auto
1158 _smbsupport=auto
1159 _vidix=auto
1160 _joystick=no
1161 _xvid=auto
1162 _divx4linux=auto
1163 _opendivx=no
1164 _lirc=auto
1165 _lircc=auto
1166 _gui=no
1167 _termcap=auto
1168 _termios=auto
1169 _3dfx=no
1170 _tdfxfb=no
1171 _tdfxvid=no
1172 _tga=yes
1173 _directfb=auto
1174 _zr=auto
1175 _bl=no
1176 _largefiles=no
1177 #_language=en
1178 _shm=auto
1179 _linux_devfs=no
1180 _i18n=auto
1181 _dynamic_plugins=no
1182 _setlocale=auto
1183 _sighandler=yes
1184 _libdv=auto
1185 _cdparanoia=auto
1186 _big_endian=auto
1187 _freetype=auto
1188 _shared_pp=no
1189 _menu=no
1190 _qtx=auto
1191 _macosx=auto
1192 _sortsub=yes
1193 _freetypeconfig='freetype-config'
1194 _fribidi=no
1195 _fribidiconfig='fribidi-config'
1196 _inet6=auto
1197 _gethostbyname2=auto
1198 _ftp=yes
1199 for ac_option do
1200 case "$ac_option" in
1201 # Skip 1st pass
1202 --target=*) ;;
1203 --cc=*) ;;
1204 --as=*) ;;
1205 --enable-gcc-checking) ;;
1206 --disable-gcc-checking) ;;
1207 --enable-static*) ;;
1208 --disable-static*) ;;
1209 --with-extraincdir=*) ;;
1210 --with-extralibdir=*) ;;
1211 --enable-runtime-cpudetection) ;;
1212 --disable-runtime-cpudetection) ;;
1213 --install-path=*) ;;
1214 --with-install=*) ;;
1216 # Real 2nd pass
1217 --enable-mencoder) _mencoder=yes ;;
1218 --disable-mencoder) _mencoder=no ;;
1219 --enable-i18n) _i18n=yes ;;
1220 --disable-i18n) _i18n=no ;;
1221 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
1222 --disable-dynamic-plugins) _dynamic_plugins=no ;;
1223 --enable-setlocale) _setlocale=yes ;;
1224 --disable-setlocale) _setlocale=no ;;
1225 --enable-x11) _x11=yes ;;
1226 --disable-x11) _x11=no ;;
1227 --enable-xv) _xv=yes ;;
1228 --disable-xv) _xv=no ;;
1229 --enable-xvmc) _xvmc=yes ;;
1230 --disable-xvmc) _xvmc=no ;;
1231 --enable-sdl) _sdl=yes ;;
1232 --disable-sdl) _sdl=no ;;
1233 --enable-directx) _directx=yes ;;
1234 --disable-directx) _directx=no ;;
1235 --enable-win32waveout) _win32waveout=yes ;;
1236 --disable-win32waveout) _win32waveout=no ;;
1237 --enable-nas) _nas=yes ;;
1238 --disable-nas) _nas=no ;;
1239 --enable-png) _png=yes ;;
1240 --disable-png) _png=no ;;
1241 --enable-jpeg) _jpg=yes ;;
1242 --disable-jpeg) _jpg=no ;;
1243 --enable-gif) _gif=yes ;;
1244 --disable-gif) _gif=no ;;
1245 --enable-gl) _gl=yes ;;
1246 --disable-gl) _gl=no ;;
1247 --enable-ggi) _ggi=yes ;;
1248 --disable-ggi) _ggi=no ;;
1249 --enable-aa) _aa=yes ;;
1250 --disable-aa) _aa=no ;;
1251 --enable-svga) _svga=yes ;;
1252 --disable-svga) _svga=no ;;
1253 --enable-vesa) _vesa=yes ;;
1254 --disable-vesa) _vesa=no ;;
1255 --enable-fbdev) _fbdev=yes ;;
1256 --disable-fbdev) _fbdev=no ;;
1257 --enable-dvb) _dvb=yes ;;
1258 --disable-dvb) _dvb=no ;;
1259 --enable-dvbhead) _dvbhead=yes ;;
1260 --disable-dvbhead) _dvbhead=no ;;
1261 --enable-dxr2) _dxr2=yes ;;
1262 --disable-dxr2) _dxr2=no ;;
1263 --enable-dxr3) _dxr3=yes ;;
1264 --disable-dxr3) _dxr3=no ;;
1265 --enable-iconv) _iconv=yes ;;
1266 --disable-iconv) _iconv=no ;;
1267 --enable-rtc) _rtc=yes ;;
1268 --disable-rtc) _rtc=no ;;
1269 --enable-mp1e) _mp1e=yes ;;
1270 --disable-mp1e) _mp1e=no ;;
1271 --enable-libdv) _libdv=yes ;;
1272 --disable-libdv) _libdv=no ;;
1273 --enable-ossaudio) _ossaudio=yes ;;
1274 --disable-ossaudio) _ossaudio=no ;;
1275 --enable-arts) _arts=yes ;;
1276 --disable-arts) _arts=no ;;
1277 --enable-esd) _esd=yes ;;
1278 --disable-esd) _esd=no ;;
1279 --enable-mad) _mad=yes ;;
1280 --disable-mad) _mad=no ;;
1281 --enable-liblzo) _liblzo=yes ;;
1282 --disable-liblzo) _liblzo=no ;;
1283 --enable-vorbis) _vorbis=yes ;;
1284 --disable-vorbis) _vorbis=no ;;
1285 --enable-tremor) _tremor=yes ;;
1286 --disable-tremor) _tremor=no ;;
1287 --enable-theora) _theora=yes ;;
1288 --disable-theora) _theora=no ;;
1289 --enable-matroska) _matroska=yes ;;
1290 --disable-matroska) _matroska=no ;;
1291 --enable-internal-faad) _faad_internal=yes _faad_external=no ;;
1292 --disable-internal-faad) _faad_internal=no ;;
1293 --enable-external-faad) _faad_external=yes _faad_internal=no ;;
1294 --disable-external-faad) _faad_external=no ;;
1295 --enable-xmms) _xmms=yes ;;
1296 --enable-flac) _flac=yes ;;
1297 --disable-flac) _flac=no ;;
1298 --enable-external-flac) _external_flac=yes ;;
1299 --disable-external-flac) _external_flac=no ;;
1300 --enable-css) _css=yes ;;
1301 --disable-css) _css=no ;;
1302 --enable-dvdread) _dvdread=yes ;;
1303 --disable-dvdread) _dvdread=no ;;
1304 --enable-mpdvdkit) _dvdkit=yes ;;
1305 --disable-mpdvdkit) _dvdkit=no ;;
1306 # dvdnav disabled, it does not work
1307 # --enable-dvdnav) _dvdnav=yes ;;
1308 # --disable-dvdnav) _dvdnav=no ;;
1309 --enable-xanim) _xanim=yes ;;
1310 --disable-xanim) _xanim=no ;;
1311 --enable-real) _real=yes ;;
1312 --disable-real) _real=no ;;
1313 --enable-live) _live=yes ;;
1314 --disable-live) _live=no ;;
1315 --enable-xinerama) _xinerama=yes ;;
1316 --disable-xinerama) _xinerama=no ;;
1317 --enable-mga) _mga=yes ;;
1318 --disable-mga) _mga=no ;;
1319 --enable-xmga) _xmga=yes ;;
1320 --disable-xmga) _xmga=no ;;
1321 --enable-vm) _vm=yes ;;
1322 --disable-vm) _vm=no ;;
1323 --enable-mlib) _mlib=yes ;;
1324 --disable-mlib) _mlib=no ;;
1325 --enable-sunaudio) _sunaudio=yes ;;
1326 --disable-sunaudio) _sunaudio=no ;;
1327 --enable-sgiaudio) _sgiaudio=yes ;;
1328 --disable-sgiaudio) _sgiaudio=no ;;
1329 --enable-alsa) _alsa=yes ;;
1330 --disable-alsa) _alsa=no ;;
1331 --enable-tv) _tv=yes ;;
1332 --disable-tv) _tv=no ;;
1333 --enable-edl) _edl=yes ;;
1334 --disable-edl) _edl=no ;;
1335 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1336 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1337 --enable-tv-v4l) _tv_v4l=yes ;;
1338 --disable-tv-v4l) _tv_v4l=no ;;
1339 --enable-tv-v4l2) _tv_v4l2=yes ;;
1340 --disable-tv-v4l2) _tv_v4l2=no ;;
1341 --enable-fastmemcpy) _fastmemcpy=yes ;;
1342 --disable-fastmemcpy) _fastmemcpy=no ;;
1343 --enable-network) _network=yes ;;
1344 --disable-network) _network=no ;;
1345 --enable-winsock2) _winsock2=yes ;;
1346 --disable-winsock2) _winsock2=no ;;
1347 --enable-smb) _smbsupport=yes ;;
1348 --disable-smb) _smbsupport=no ;;
1349 --enable-vidix) _vidix=yes ;;
1350 --disable-vidix) _vidix=no ;;
1351 --enable-joystick) _joystick=yes ;;
1352 --disable-joystick) _joystick=no ;;
1353 --enable-xvid) _xvid=yes ;;
1354 --disable-xvid) _xvid=no ;;
1355 --enable-divx4linux) _divx4linux=yes ;;
1356 --disable-divx4linux) _divx4linux=no ;;
1357 --enable-opendivx) _opendivx=yes ;;
1358 --disable-opendivx) _opendivx=no ;;
1359 --enable-libavcodec) _libavcodec=yes ;;
1360 --disable-libavcodec) _libavcodec=no ;;
1361 --enable-libfame) _fame=yes ;;
1362 --disable-libfame) _fame=no ;;
1363 --enable-lirc) _lirc=yes ;;
1364 --disable-lirc) _lirc=no ;;
1365 --enable-lircc) _lircc=yes ;;
1366 --disable-lircc) _lircc=no ;;
1367 --enable-gui) _gui=yes ;;
1368 --disable-gui) _gui=no ;;
1369 --enable-termcap) _termcap=yes ;;
1370 --disable-termcap) _termcap=no ;;
1371 --enable-termios) _termios=yes ;;
1372 --disable-termios) _termios=no ;;
1373 --enable-3dfx) _3dfx=yes ;;
1374 --disable-3dfx) _3dfx=no ;;
1375 --enable-tdfxfb) _tdfxfb=yes ;;
1376 --disable-tdfxvid) _tdfxvid=no ;;
1377 --enable-tdfxvid) _tdfxvid=yes ;;
1378 --disable-tga) _tga=no ;;
1379 --enable-tga) _tga=yes ;;
1380 --disable-tdfxfb) _tdfxfb=no ;;
1381 --enable-directfb) _directfb=yes ;;
1382 --disable-directfb) _directfb=no ;;
1383 --enable-zr) _zr=yes ;;
1384 --disable-zr) _zr=no ;;
1385 --enable-bl) _bl=yes ;;
1386 --disable-bl) _bl=no ;;
1387 --enable-mtrr) _mtrr=yes ;;
1388 --disable-mtrr) _mtrr=no ;;
1389 --enable-largefiles) _largefiles=yes ;;
1390 --disable-largefiles) _largefiles=no ;;
1391 --enable-shm) _shm=yes ;;
1392 --disable-shm) _shm=no ;;
1393 --enable-select) _select=yes ;;
1394 --disable-select) _select=no ;;
1395 --enable-linux-devfs) _linux_devfs=yes ;;
1396 --disable-linux-devfs) _linux_devfs=no ;;
1397 --enable-cdparanoia) _cdparanoia=yes ;;
1398 --disable-cdparanoia) _cdparanoia=no ;;
1399 --enable-big-endian) _big_endian=yes ;;
1400 --disable-big-endian) _big_endian=no ;;
1401 --enable-freetype) _freetype=yes ;;
1402 --disable-freetype) _freetype=no ;;
1403 --enable-unrarlib) _unrarlib=yes ;;
1404 --disable-unrarlib) _unrarlib=no ;;
1405 --enable-ftp) _ftp=yes ;;
1406 --disable-ftp) _ftp=no ;;
1408 --enable-fribidi) _fribidi=yes ;;
1409 --disable-fribidi) _fribidi=no ;;
1411 --enable-inet6) _inet6=yes ;;
1412 --disable-inet6) _inet6=no ;;
1414 --enable-gethostbyname2) _gethostbyname2=yes ;;
1415 --disable-gethostbyname2) _gethostbyname2=no ;;
1417 --enable-dga) _dga=auto ;; # as we don't know if it's 1 or 2
1418 --enable-dga=*) _dga=`echo $ac_option | cut -d '=' -f 2` ;;
1419 --disable-dga) _dga=no ;;
1421 --enable-shared-pp) _shared_pp=yes ;;
1422 --disable-shared-pp) _shared_pp=no ;;
1424 --enable-menu) _menu=yes ;;
1425 --disable-menu) _menu=no ;;
1427 --enable-qtx) _qtx=yes ;;
1428 --disable-qtx) _qtx=no ;;
1430 --enable-macosx) _macosx=yes ;;
1431 --disable-macosx) _macosx=no ;;
1433 --enable-sortsub) _sortsub=yes ;;
1434 --disable-sortsub) _sortsub=no ;;
1436 --language=*)
1437 _language=`echo $ac_option | cut -d '=' -f 2`
1439 # dvdnav disabled, it does not work
1440 # --with-libdvdnav=*)
1441 # _dvdnavdir=`echo $ac_option | cut -d '=' -f 2`
1442 # _dvdnav=yes
1443 # ;;
1445 --with-codecsdir=*)
1446 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1447 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1448 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1450 --with-win32libdir=*)
1451 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1452 _win32=yes
1454 --with-xanimlibdir=*)
1455 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1456 _xanim=yes
1458 --with-reallibdir=*)
1459 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1460 _real=yes
1462 --with-livelibdir=*)
1463 _livelibdir=`echo $ac_option | cut -d '=' -f 2`
1464 _live=yes
1466 --with-csslibdir=*)
1467 _csslibdir=`echo $ac_option | cut -d '=' -f 2`
1468 _css=yes
1470 --with-mlibdir=*)
1471 _mlibdir=`echo $ac_option | cut -d '=' -f 2`
1472 _mlib=yes
1475 --with-xmmslibdir=*)
1476 _xmmslibdir=`echo $ac_option | cut -d '=' -f 2`
1479 --with-xmmsplugindir=*)
1480 _xmmsplugindir=`echo $ac_option | cut -d '=' -f 2`
1483 --disable-profile)
1484 _profile=
1486 --enable-profile)
1487 _profile='-p'
1489 --enable-debug)
1490 _debug='-g'
1492 --enable-debug=*)
1493 _debug=`echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2`
1495 --disable-sighandler)
1496 _sighandler=no
1499 --enable-sse) _sse=yes ;;
1500 --disable-sse) _sse=no ;;
1501 --enable-sse2) _sse2=yes ;;
1502 --disable-sse2) _sse2=no ;;
1503 --enable-mmx2) _mmx2=yes ;;
1504 --disable-mmx2) _mmx2=no ;;
1505 --enable-3dnow) _3dnow=yes ;;
1506 --disable-3dnow) _3dnow=no _3dnowex=no ;;
1507 --enable-3dnowex) _3dnow=yes _3dnowex=yes ;;
1508 --disable-3dnowex) _3dnowex=no ;;
1509 --enable-altivec) _altivec=yes ;;
1510 --disable-altivec) _altivec=no ;;
1511 --enable-mmx) _mmx=yes ;;
1512 --disable-mmx) # 3Dnow! and MMX2 require MMX
1513 _3dnow=no _3dnowex=no _mmx=no _mmx2=no ;;
1515 --enable-win32) _win32=yes ;;
1516 --disable-win32) _win32=no _dshow=no ;;
1517 --enable-dshow) _win32=yes _dshow=yes ;;
1518 --disable-dshow) _dshow=no ;;
1520 --with-x11incdir=*)
1521 _inc_x11=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1523 --with-x11libdir=*)
1524 _ld_x11=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1526 --with-dxr2incdir=*)
1527 _inc_dxr2=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1529 --with-xvmclib=*)
1530 _xvmclib=`echo $ac_option | cut -d '=' -f 2`
1532 --with-dvbincdir=*)
1533 _inc_dvb=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1535 --with-xvidlibdir=*)
1536 _ld_xvid=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1538 --with-xvidincdir=*)
1539 _inc_xvid=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1541 --with-sdl-config=*)
1542 _sdlconfig=`echo $ac_option | cut -d '=' -f 2`
1544 --with-freetype-config=*)
1545 _freetypeconfig=`echo $ac_option | cut -d '=' -f 2`
1547 --with-fribidi-config=*)
1548 _fribidiconfig=`echo $ac_option | cut -d '=' -f 2`
1550 --with-gtk-config=*)
1551 _gtkconfig=`echo $ac_option | cut -d '=' -f 2`
1553 --with-glib-config=*)
1554 _glibconfig=`echo $ac_option | cut -d '=' -f 2`
1556 # dvdnav disabled, it does not work
1557 # --with-dvdnav-config=*)
1558 # _dvdnavconfig=`echo $ac_option | cut -d '=' -f 2`
1559 # ;;
1560 --with-madlibdir=*)
1561 _ld_mad=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1563 --with-cdparanoiaincdir=*)
1564 _inc_cdparanoia=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1566 --with-cdparanoialibdir=*)
1567 _ld_cdparanoia=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1569 --with-termcaplib=*)
1570 _ld_termcap=-l`echo $ac_option | cut -d '=' -f 2`
1571 _termcap=yes
1573 --prefix=*)
1574 _prefix=`echo $ac_option | cut -d '=' -f 2`
1576 --bindir=*)
1577 _bindir=`echo $ac_option | cut -d '=' -f 2`
1579 --datadir=*)
1580 _datadir=`echo $ac_option | cut -d '=' -f 2`
1582 --mandir=*)
1583 _mandir=`echo $ac_option | cut -d '=' -f 2`
1585 --confdir=*)
1586 _confdir=`echo $ac_option | cut -d '=' -f 2`
1588 --libdir=*)
1589 _libdir=`echo $ac_option | cut -d '=' -f 2`
1593 echo "Unknown parameter: $ac_option"
1594 exit 1
1597 esac
1598 done
1600 # Atmos: moved this here, to be correct, if --prefix is specified
1601 test -z "$_bindir" && _bindir="$_prefix/bin"
1602 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1603 test -z "$_mandir" && _mandir="$_prefix/man"
1604 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1605 test -z "$_libdir" && _libdir="$_prefix/lib"
1606 test -z "$_mlibdir" && _mlibdir="$MLIBHOME"
1608 if x86 ; then
1609 # Checking assembler (_as) compatibility...
1610 # Added workaround for older as that reads from stdin by default - atmos
1611 as_version=`echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p'`
1612 echocheck "assembler ($_as $as_version)"
1614 _pref_as_version='2.9.1'
1615 echo 'nop' > $TMPS
1616 if test "$_mmx" = yes ; then
1617 echo 'emms' >> $TMPS
1619 if test "$_3dnow" = yes ; then
1620 _pref_as_version='2.10.1'
1621 echo 'femms' >> $TMPS
1623 if test "$_3dnowex" = yes ; then
1624 _pref_as_version='2.10.1'
1625 echo 'pswapd %mm0, %mm0' >> $TMPS
1627 if test "$_mmx2" = yes ; then
1628 _pref_as_version='2.10.1'
1629 echo 'movntq %mm0, (%eax)' >> $TMPS
1631 if test "$_sse" = yes ; then
1632 _pref_as_version='2.10.1'
1633 echo 'xorps %xmm0, %xmm0' >> $TMPS
1635 #if test "$_sse2" = yes ; then
1636 # _pref_as_version='2.11'
1637 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
1639 $_as $TMPS -o $TMPO > /dev/null 2>&1 || as_verc_fail=yes
1641 if test "$as_verc_fail" != yes ; then
1642 echores "ok"
1643 else
1644 echores "failed"
1645 echo "Upgrade binutils to ${_pref_as_version} ..."
1646 die "obsolete binutils version"
1650 if ppc ; then
1652 # check if altivec is supported by the compiler, and how to enable it
1654 _altivec_gcc_flags=''
1656 if test "$_altivec" = yes -o "$_runtime_cpudetection" = yes ; then
1657 echocheck "GCC altivec support"
1659 p=''
1660 cat > $TMPC << EOF
1661 int main() {
1662 return 0;
1665 FSF_flags='-maltivec -mabi=altivec'
1666 Darwin_flags='-faltivec'
1668 # check for Darwin-style flags first, since
1669 # gcc-3.3 (August Update from Apple) on MacOS 10.2.8
1670 # accepts but ignores FSF-style flags...
1672 if test -z "$p"; then
1673 cc_check $Darwin_flags && p='Darwin'
1675 if test -z "$p"; then
1676 cc_check $FSF_flags && p='FSF'
1679 case $p in
1680 FSF) _altivec_gcc_flags="$FSF_flags" _altivec=yes ;;
1681 Darwin) _altivec_gcc_flags="$Darwin_flags" _altivec=yes ;;
1682 *) _altivec=no ;;
1683 esac
1685 if test -z "$p"; then
1686 p=none
1687 else
1688 p="$p-style ($_altivec_gcc_flags)"
1691 echores "$p"
1694 # check if <altivec.h> should be included
1696 _def_altivec_h='#undef HAVE_ALTIVEC_H'
1698 if test "$_altivec" = yes ; then
1699 echocheck "altivec.h"
1700 cat > $TMPC << EOF
1701 #include <altivec.h>
1702 int main(void) { return 0; }
1704 _have_altivec_h=no
1705 cc_check $_altivec_gcc_flags && _have_altivec_h=yes
1706 if test "$_have_altivec_h" = yes ; then
1707 _def_altivec_h='#define HAVE_ALTIVEC_H 1'
1709 echores "$_have_altivec_h"
1712 # disable runtime cpudetection if
1713 # - we cannot generate altivec code
1714 # - altivec is disabled by the user
1716 if test "$_runtime_cpudetection" = yes -a "$_altivec" = no ; then
1717 _runtime_cpudetection=no
1720 # show that we are optimizing for altivec (if enabled and supported)
1722 if test "$_runtime_cpudetection" = no -a "$_altivec" = yes ; then
1723 _optimizing="$_optimizing altivec"
1726 # if altivec is enabled, make sure the correct flags turn up in CFLAGS
1728 if test "$_altivec" = yes ; then
1729 _mcpu="$_mcpu $_altivec_gcc_flags"
1732 # setup _def_altivec correctly
1734 if test "$_altivec" = yes ; then
1735 _def_altivec='#define HAVE_ALTIVEC 1'
1736 else
1737 _def_altivec='#undef HAVE_ALTIVEC'
1741 _def_mmx='#undef HAVE_MMX'
1742 test "$_mmx" = yes && _def_mmx='#define HAVE_MMX 1'
1743 _def_mmx2='#undef HAVE_MMX2'
1744 test "$_mmx2" = yes && _def_mmx2='#define HAVE_MMX2 1'
1745 _def_3dnow='#undef HAVE_3DNOW'
1746 test "$_3dnow" = yes && _def_3dnow='#define HAVE_3DNOW 1'
1747 _def_3dnowex='#undef HAVE_3DNOWEX'
1748 test "$_3dnowex" = yes && _def_3dnowex='#define HAVE_3DNOWEX 1'
1749 _def_sse='#undef HAVE_SSE'
1750 test "$_sse" = yes && _def_sse='#define HAVE_SSE 1'
1751 _def_sse2='#undef HAVE_SSE2'
1752 test "$_sse2" = yes && _def_sse2='#define HAVE_SSE2 1'
1754 # Checking kernel version...
1755 if x86 && linux ; then
1756 _k_verc_problem=no
1757 kernel_version=`uname -r 2>&1`
1758 echocheck "$system_name kernel version"
1759 case "$kernel_version" in
1760 '') kernel_version="?.??"; _k_verc_fail=yes;;
1761 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
1762 _k_verc_problem=yes;;
1763 esac
1764 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
1765 _k_verc_fail=yes
1767 if test "$_k_verc_fail" ; then
1768 echores "$kernel_version, fail"
1769 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
1770 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
1771 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
1772 echo "supports SSE, but you have been warned! If you are using a kernel older than"
1773 echo "2.2.x you must upgrade it to get SSE support!"
1774 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
1775 else
1776 echores "$kernel_version, ok"
1780 if test "$_vidix" = auto ; then
1781 _vidix=no
1782 # should check for x86 systems supporting VIDIX (does QNX have VIDIX?)
1783 x86 && _vidix=yes
1784 ppc && linux && _vidix=yes
1785 alpha && linux && _vidix=yes
1786 cygwin && _vidix=no
1787 mingw32 && _vidix=no
1788 qnx && _vidix=no
1789 sunos && _vidix=no
1792 # On QNX we must link to libph - Gabucino
1793 if qnx ; then
1794 _ld_arch="$_ld_arch -lph"
1797 # checking for a working awk, I'm using mawk first, because it's fastest - atmos
1798 _awk=
1799 if test "$_vidix" = yes ; then
1800 _awk_verc_fail=yes
1801 echocheck "awk"
1802 for _awk in mawk gawk nawk awk; do
1803 if ( $_awk 'BEGIN{testme();}function testme(){print"";}' ) >> "$TMPLOG" 2>&1; then
1804 _awk_verc_fail=no
1805 break
1807 done
1808 test "$_awk_verc_fail" = yes && _awk=no
1809 echores "$_awk"
1810 if test "$_awk_verc_fail" = yes; then
1811 echo "VIDIX needs awk, but no working implementation was found!"
1812 echo "Try the GNU version, which can be downloaded from:"
1813 echo "ftp://ftp.gnu.org/gnu/gawk/"
1814 echo "If you don't need VIDIX, you can use configure --disable-vidix instead."
1815 die "no awk"
1819 # If IRIX we must use ar instead of ranlib (not present on IRIX systems)
1820 if irix ; then
1821 _ranlib='ar -r'
1824 ######################
1825 # MAIN TESTS GO HERE #
1826 ######################
1829 echocheck "extra headers"
1830 if test "$_inc_extra" ; then
1831 echores "$_inc_extra"
1832 else
1833 echores "none"
1837 echocheck "extra libs"
1838 if test "$_ld_extra" ; then
1839 echores "$_ld_extra"
1840 else
1841 echores "none"
1845 # Checking for localization ...
1846 # CSAK EGY MARADHAT - A HEGYLAKO
1847 echocheck "i18n"
1848 if test "$_i18n" != no ; then
1849 cat > $TMPC <<EOF
1850 #include <libintl.h>
1851 int main(void) { gettext("test"); return 0; }
1853 _i18n=no
1854 _i18n_libs=""
1855 if test "$_i18n" = auto ; then
1856 cc_check && _i18n=yes
1857 else
1858 for i18n_lib in "" "-lintl"; do
1859 cc_check $i18n_lib && _i18n=yes && _i18n_libs=$i18n_lib && break
1860 done
1863 if test "$_i18n" = yes ; then
1864 _def_i18n='#define USE_I18N 1'
1865 else
1866 _def_i18n='#undef USE_I18N'
1868 if test -z "$_i18n_libs" ; then
1869 echores "$_i18n"
1870 else
1871 echores "$_i18n (using $_i18n_libs)"
1875 # Checking for setlocale() ...
1876 # CSAK EGY MARADHAT - A HEGYLAKO
1877 # Nemnem. a TV Maci !
1878 echocheck "setlocale()"
1879 if test "$_setlocale" = auto ; then
1880 cat > $TMPC <<EOF
1881 #include <locale.h>
1882 int main(void) { setlocale( LC_ALL,"" ); return 0; }
1884 _setlocale=no
1885 cc_check && _setlocale=yes
1887 if test "$_setlocale" = yes ; then
1888 _def_setlocale='#define USE_SETLOCALE 1'
1889 else
1890 _def_setlocale='#undef USE_SETLOCALE'
1892 echores "$_setlocale"
1895 echocheck "language"
1896 test -z "$_language" && _language=$LINGUAS
1897 _language=`echo $_language | sed 's/,/ /g'`
1898 echo $_language | grep all > /dev/null || LANGUAGES="$_language en"
1899 for i in $_language ; do
1900 test "$i" = all && i=en
1901 if test -f "help/help_mp-${i}.h" ; then
1902 _language=$i
1903 break
1904 else
1905 echo -n "$i not found, "
1906 _language=`echo $_language | sed "s/$i *//g"`
1908 done
1909 test -z "$_language" && _language=en
1910 for i in $LANGUAGES ; do
1911 if test -f "DOCS/man/$i/mplayer.1" ; then
1912 LANGUAGES=`echo $LANGUAGES | sed "s/$i *//2" | sed 's/ *$//'`
1913 else
1914 LANGUAGES=`echo $LANGUAGES | sed "s/$i *//g" | sed 's/ *$//'`
1916 done
1917 echores "using $_language (man pages: $LANGUAGES)"
1918 _mp_help="help/help_mp-${_language}.h"
1919 test -f $_mp_help || die "$_mp_help not found"
1921 echocheck "enable sighandler"
1922 if test "$_sighandler" = yes ; then
1923 _def_sighandler='#define ENABLE_SIGHANDLER 1'
1924 else
1925 _def_sighandler='#undef ENABLE_SIGHANDLER'
1927 echores "$_sighandler"
1929 echocheck "runtime cpudetection"
1930 if test "$_runtime_cpudetection" = yes ; then
1931 _optimizing="Runtime CPU-Detection enabled"
1932 _def_runtime_cpudetection='#define RUNTIME_CPUDETECT 1'
1933 else
1934 _def_runtime_cpudetection='#undef RUNTIME_CPUDETECT'
1936 echores "$_runtime_cpudetection"
1939 echocheck "restrict keyword"
1940 for restrict_keyword in restrict __restrict __restrict__ ; do
1941 echo "void foo(char * $restrict_keyword p); int main(){}" > $TMPC
1942 if cc_check; then
1943 _def_restrict_keyword=$restrict_keyword
1944 break;
1946 done
1947 if [ -n "$_def_restrict_keyword" ]; then
1948 echores "$_def_restrict_keyword"
1949 else
1950 echores "none"
1954 echocheck "kstat"
1955 cat > $TMPC << EOF
1956 #include <kstat.h>
1957 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
1959 _kstat=no
1960 cc_check -lkstat && _kstat=yes
1961 if test "$_kstat" = yes ; then
1962 _ld_arch="-lkstat $_ld_arch"
1964 if test "$_kstat" = yes ; then
1965 _def_kstat="#define HAVE_LIBKSTAT 1"
1966 else
1967 _def_kstat="#undef HAVE_LIBKSTAT"
1969 echores "$_kstat"
1972 echocheck "posix4"
1973 # required for nanosleep on some systems
1974 cat > $TMPC << EOF
1975 #include <time.h>
1976 int main(void) { (void) nanosleep(0, 0); return 0; }
1978 _posix4=no
1979 cc_check -lposix4 && _posix4=yes
1980 if test "$_posix4" = yes ; then
1981 _ld_arch="-lposix4 $_ld_arch"
1983 echores "$_posix4"
1986 echocheck "lrintf"
1987 cat > $TMPC << EOF
1988 #include <math.h>
1989 int main(void) { (void) lrintf(0.0); return 0; }
1991 _lrintf=no
1992 cc_check -lm && _lrintf=yes
1993 if test "$_lrintf" = yes ; then
1994 _def_lrintf="#define HAVE_LRINTF 1"
1995 else
1996 _def_lrintf="#undef HAVE_LRINTF"
1998 echores "$_lrintf"
2001 echocheck "nanosleep"
2002 # also check for nanosleep
2003 cat > $TMPC << EOF
2004 #include <time.h>
2005 int main(void) { (void) nanosleep(0, 0); return 0; }
2007 _nanosleep=no
2008 cc_check $_ld_arch && _nanosleep=yes
2009 if test "$_nanosleep" = yes ; then
2010 _def_nanosleep='#define HAVE_NANOSLEEP 1'
2011 else
2012 _def_nanosleep='#undef HAVE_NANOSLEEP'
2014 echores "$_nanosleep"
2017 echocheck "socklib"
2018 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2019 cat > $TMPC << EOF
2020 #include <netdb.h>
2021 int main(void) { (void) gethostbyname(0); return 0; }
2023 cc_check -lsocket && _ld_sock="-lsocket"
2024 cc_check -lnsl && _ld_sock="-lnsl"
2025 cc_check -lsocket -lnsl && _ld_sock="-lsocket -lnsl"
2026 cc_check -lsocket -ldnet && _ld_sock="-lsocket -ldnet"
2027 if test $_winsock2 = auto && not cygwin ; then
2028 _winsock2=no
2029 cat > $TMPC << EOF
2030 #include <winsock2.h>
2031 int main(void) { (void) gethostbyname(0); return 0; }
2033 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2=yes
2035 if test "$_ld_sock" ; then
2036 echores "yes (using $_ld_sock)"
2037 else
2038 echores "no"
2042 if test $_winsock2 = yes ; then
2043 _ld_sock="-lws2_32"
2044 _def_winsock2='#define HAVE_WINSOCK2 1'
2045 else
2046 _def_winsock2='#undef HAVE_WINSOCK2'
2050 _use_aton=no
2051 echocheck "inet_pton()"
2052 cat > $TMPC << EOF
2053 #include <sys/types.h>
2054 #include <sys/socket.h>
2055 #include <arpa/inet.h>
2056 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
2058 if test "$_winsock2" = yes ; then
2059 echores "not needed (using winsock2 functions)"
2060 elif cc_check $_ld_sock ; then
2061 # NOTE: Linux has libresolv but does not need it
2063 echores "yes (using $_ld_sock)"
2064 elif cc_check $_ld_sock -lresolv ; then
2065 # NOTE: needed for SunOS at least
2066 _ld_sock="$_ld_sock -lresolv"
2067 echores "yes (using $_ld_sock)"
2068 else
2069 echores "no (=> i'll try inet_aton next)"
2071 echocheck "inet_aton()"
2072 cat > $TMPC << EOF
2073 #include <sys/types.h>
2074 #include <sys/socket.h>
2075 #include <arpa/inet.h>
2076 int main(void) { (void) inet_aton(0, 0); return 0; }
2078 _use_aton=yes
2079 if cc_check $_ld_sock ; then
2080 # NOTE: Linux has libresolv but does not need it
2082 echores "yes (using $_ld_sock)"
2083 elif cc_check $_ld_sock -lresolv ; then
2084 # NOTE: needed for SunOS at least
2085 _ld_sock="$_ld_sock -lresolv"
2086 echores "yes (using $_ld_sock)"
2087 else
2088 _use_aton=no
2089 _network=no
2090 echores "no (=> network support disabled)"
2094 _def_use_aton='#undef USE_ATON'
2095 if test "$_use_aton" != no; then
2096 _def_use_aton='#define USE_ATON 1'
2100 echocheck "inttypes.h (required)"
2101 cat > $TMPC << EOF
2102 #include <inttypes.h>
2103 int main(void) { return 0; }
2105 _inttypes=no
2106 cc_check && _inttypes=yes
2107 if test "$_inttypes" = yes ; then
2108 # nothing to do
2110 else
2111 echores "no"
2112 echocheck "bitypes.h (inttypes.h predecessor)"
2113 cat > $TMPC << EOF
2114 #include <sys/bitypes.h>
2115 int main(void) { return 0; }
2117 _inttypes=no
2118 cc_check && _inttypes=yes
2119 if test "$_inttypes" = yes ; then
2120 die "you don't have inttypes.h, but sys/bitypes.h is present. Please copy etc/inttypes.h.link into the include path, rename it to inttypes.h and re-run configure."
2121 else
2122 die "cannot find header either inttypes.h or bitypes.h (see DOCS/HTML/en/faq.html)"
2125 echores "$_inttypes"
2128 echocheck "int_fastXY_t in inttypes.h"
2129 cat > $TMPC << EOF
2130 #include <inttypes.h>
2131 int main(void) {
2132 volatile int_fast16_t v= 0;
2133 return v; }
2135 _fast_inttypes=no
2136 cc_check && _fast_inttypes=yes
2137 if test "$_fast_inttypes" = yes ; then
2138 # nothing to do
2140 else
2141 _def_fast_inttypes='
2142 typedef signed char int_fast8_t;
2143 typedef signed int int_fast16_t;
2144 typedef signed int int_fast32_t;
2145 typedef unsigned char uint_fast8_t;
2146 typedef unsigned int uint_fast16_t;
2147 typedef unsigned int uint_fast32_t;'
2149 echores "$_fast_inttypes"
2152 echocheck "word size"
2153 _mp_wordsize="#undef MP_WORDSIZE"
2154 cat > $TMPC << EOF
2155 #include <stdio.h>
2156 #include <sys/types.h>
2157 int main(void) { printf("%d\n", sizeof(size_t)*8); return 0; }
2159 cc_check && _wordsize=`$TMPO` && _mp_wordsize="#define MP_WORDSIZE $_wordsize"
2160 echores "$_wordsize"
2163 echocheck "stddef.h"
2164 cat > $TMPC << EOF
2165 #include <stddef.h>
2166 int main(void) { return 0; }
2168 _stddef=no
2169 cc_check && _stddef=yes
2170 if test "$_stddef" = yes ; then
2171 _def_stddef='#define HAVE_STDDEF_H 1'
2172 else
2173 _def_stddef='#undef HAVE_STDDEF_H'
2175 echores "$_stddef"
2178 echocheck "malloc.h"
2179 cat > $TMPC << EOF
2180 #include <malloc.h>
2181 int main(void) { (void) malloc(0); return 0; }
2183 _malloc=no
2184 cc_check && _malloc=yes
2185 if test "$_malloc" = yes ; then
2186 _def_malloc='#define HAVE_MALLOC_H 1'
2187 else
2188 _def_malloc='#undef HAVE_MALLOC_H'
2190 # malloc.h emits a warning in FreeBSD and OpenBSD
2191 (freebsd || openbsd) && _def_malloc='#undef HAVE_MALLOC_H'
2192 echores "$_malloc"
2195 echocheck "memalign()"
2196 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
2197 cat > $TMPC << EOF
2198 #include <malloc.h>
2199 int main (void) { (void) memalign(64, sizeof(char)); return 0; }
2201 _memalign=no
2202 cc_check && _memalign=yes
2203 if test "$_memalign" = yes ; then
2204 _def_memalign='#define HAVE_MEMALIGN 1'
2205 else
2206 _def_memalign='#undef HAVE_MEMALIGN'
2208 echores "$_memalign"
2211 echocheck "alloca.h"
2212 cat > $TMPC << EOF
2213 #include <alloca.h>
2214 int main(void) { (void) alloca(0); return 0; }
2216 _alloca=no
2217 cc_check && _alloca=yes
2218 if cc_check ; then
2219 _def_alloca='#define HAVE_ALLOCA_H 1'
2220 else
2221 _def_alloca='#undef HAVE_ALLOCA_H'
2223 echores "$_alloca"
2226 echocheck "mman.h"
2227 cat > $TMPC << EOF
2228 #include <sys/types.h>
2229 #include <sys/mman.h>
2230 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
2232 _mman=no
2233 cc_check && _mman=yes
2234 if test "$_mman" = yes ; then
2235 _def_mman='#define HAVE_SYS_MMAN_H 1'
2236 else
2237 _def_mman='#undef HAVE_SYS_MMAN_H'
2239 echores "$_mman"
2241 echocheck "dynamic loader"
2242 cat > $TMPC << EOF
2243 #include <dlfcn.h>
2244 int main(void) { dlopen(0, 0); dlclose(0); dlsym(0, 0); return 0; }
2246 _dl=no
2247 if cc_check ; then
2248 _dl=yes
2249 elif cc_check -ldl ; then
2250 _dl=yes
2251 _ld_dl='-ldl'
2253 if test "$_dl" = yes ; then
2254 _def_dl='#define HAVE_LIBDL 1'
2255 else
2256 _def_dl='#undef HAVE_LIBDL'
2258 echores "$_dl"
2261 echocheck "dynamic a/v plugins support"
2262 if test "$_dl" = no ; then
2263 _dynamic_plugins=no
2265 if test "$_dynamic_plugins" = yes ; then
2266 _def_dynamic_plugins='#define DYNAMIC_PLUGINS 1'
2267 else
2268 _def_dynamic_plugins='#undef DYNAMIC_PLUGINS'
2270 echores "$_dynamic_plugins"
2273 #echocheck "dynamic linking"
2274 # FIXME !! make this dynamic detection work and modify at the end (search _ld_dl_dynamic)
2275 # also gcc flags are different, but ld flags aren't (-Bdynamic/-Bstatic/-Bsymbolic)
2276 #cat > $TMPC << EOF
2277 #int main(void) { return 0; }
2278 #EOF
2279 #if cc_check -rdynamic ; then
2280 # _ld_dl_dynamic='-rdynamic'
2281 #elif cc_check -Bdynamic ; then
2282 # _ld_dl_dynamic='-Bdynamic'
2283 #elif cc_check ; then
2284 # _ld_dl_dynamic=''
2286 #echores "using $_ld_dl_dynamic"
2289 echocheck "pthread"
2290 cat > $TMPC << EOF
2291 #include <pthread.h>
2292 void* func(void *arg) { return arg; }
2293 int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }
2295 if mingw32 ; then
2296 _ld_pthread=''
2297 elif ( cc_check && $TMPO ) ; then # QNX
2298 _ld_pthread=''
2299 elif ( cc_check -lpthread && $TMPO ) ; then
2300 _ld_pthread='-lpthread'
2301 elif ( cc_check -pthread && $TMPO ) ; then
2302 _ld_pthread='-pthread'
2303 else
2304 if test "$_ld_static" ; then
2305 # for crosscompilation, we cannot execute the program, be happy if we can link statically
2306 if ( cc_check -lpthread ) ; then
2307 _ld_pthread='-lpthread'
2308 elif ( cc_check -pthread ) ; then
2309 _ld_pthread='-pthread'
2310 else
2311 echores "no static pthread found (v4l, vo_gl, ao_alsa, ao_nas, ao_macosx, Win32 loader disabled)"
2312 _ld_pthread='' ; _nas=no ; _tv_v4l=no ; _tv_v4l=no ; _macosx=no ; _win32=no
2314 else
2315 echores "no (v4l, vo_gl, ao_alsa, ao_nas, ao_macosx, win32 loader disabled)"
2316 _ld_pthread='' ; _nas=no ; _tv_v4l=no ; _tv_v4l=no ; _macosx=no ; _win32=no
2319 if test "$_ld_pthread" != '' ; then
2320 echores "yes (using $_ld_pthread)"
2323 echocheck "sys/soundcard.h"
2324 cat > $TMPC << EOF
2325 #include <sys/soundcard.h>
2326 int main(void) { return 0; }
2328 _sys_soundcard=no
2329 cc_check && _sys_soundcard=yes
2330 if test "$_sys_soundcard" = yes ; then
2331 _def_sys_soundcard='#define HAVE_SYS_SOUNDCARD_H 1'
2332 _inc_soundcard='#include <sys/soundcard.h>'
2333 else
2334 _def_sys_soundcard='#undef HAVE_SYS_SOUNDCARD_H'
2336 echores "$_sys_soundcard"
2338 if test "$_sys_soundcard" != yes ; then
2339 echocheck "soundcard.h"
2340 cat > $TMPC << EOF
2341 #include <soundcard.h>
2342 int main(void) { return 0; }
2344 _soundcard=no
2345 cc_check && _soundcard=yes
2346 if linux || test "$_ossaudio" != no ; then
2347 # use soundcard.h on Linux, or when OSS support is enabled
2348 echores "$_soundcard"
2349 else
2350 # we don't want to use soundcard.h on non-Linux if OSS support not enabled!
2351 echores "$_soundcard, but ignored!"
2352 _soundcard=no
2354 if test "$_soundcard" = yes ; then
2355 _def_soundcard='#define HAVE_SOUNDCARD_H 1'
2356 _inc_soundcard='#include <soundcard.h>'
2357 else
2358 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2360 else
2361 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2365 echocheck "sys/dvdio.h"
2366 cat > $TMPC << EOF
2367 #include <unistd.h>
2368 #include <sys/dvdio.h>
2369 int main(void) { return 0; }
2371 _dvdio=no
2372 cc_check && _dvdio=yes
2373 if test "$_dvdio" = yes ; then
2374 _def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
2375 else
2376 _def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
2378 echores "$_dvdio"
2381 echocheck "sys/cdio.h"
2382 cat > $TMPC << EOF
2383 #include <unistd.h>
2384 #include <sys/cdio.h>
2385 int main(void) { return 0; }
2387 _cdio=no
2388 cc_check && _cdio=yes
2389 if test "$_cdio" = yes ; then
2390 _def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
2391 else
2392 _def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
2394 echores "$_cdio"
2397 echocheck "linux/cdrom.h"
2398 cat > $TMPC << EOF
2399 #include <sys/types.h>
2400 #include <linux/cdrom.h>
2401 int main(void) { return 0; }
2403 _cdrom=no
2404 cc_check && _cdrom=yes
2405 if test "$_cdrom" = yes ; then
2406 _def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
2407 else
2408 _def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
2410 echores "$_cdrom"
2413 echocheck "dvd.h"
2414 cat > $TMPC << EOF
2415 #include <dvd.h>
2416 int main(void) { return 0; }
2418 _dvd=no
2419 cc_check && _dvd=yes
2420 if test "$_dvd" = yes ; then
2421 _def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
2422 else
2423 _def_dvd='#undef DVD_STRUCT_IN_DVD_H'
2425 echores "$_dvd"
2428 echocheck "BSDI dvd.h"
2429 cat > $TMPC << EOF
2430 #include <dvd.h>
2431 int main(void) { return 0; }
2433 _bsdi_dvd=no
2434 cc_check && _bsdi_dvd=yes
2435 if test "$_bsdi_dvd" = yes ; then
2436 _def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
2437 else
2438 _def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
2440 echores "$_bsdi_dvd"
2443 echocheck "HPUX SCSI header"
2444 cat > $TMPC << EOF
2445 #include <sys/scsi.h>
2446 int main(void) { return 0; }
2448 _hpux_scsi_h=no
2449 cc_check && _hpux_scsi_h=yes
2450 if test "$_hpux_scsi_h" = yes ; then
2451 _def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
2452 else
2453 _def_hpux_scsi_h='#undef HPUX_SCTL_IO'
2455 echores "$_hpux_scsi_h"
2458 echocheck "userspace SCSI headers (Solaris)"
2459 cat > $TMPC << EOF
2460 # include <unistd.h>
2461 # include <stropts.h>
2462 # include <sys/scsi/scsi_types.h>
2463 # include <sys/scsi/impl/uscsi.h>
2464 int main(void) { return 0; }
2466 _sol_scsi_h=no
2467 cc_check && _sol_scsi_h=yes
2468 if test "$_sol_scsi_h" = yes ; then
2469 _def_sol_scsi_h='#define SOLARIS_USCSI 1'
2470 else
2471 _def_sol_scsi_h='#undef SOLARIS_USCSI'
2473 echores "$_sol_scsi_h"
2476 echocheck "termcap"
2477 if test "$_termcap" = auto ; then
2478 cat > $TMPC <<EOF
2479 int main(void) { return 0; }
2481 _termcap=no
2482 cc_check -ltermcap && _termcap=yes && _ld_termcap='-ltermcap'
2483 cc_check -ltinfo && _termcap=yes && _ld_termcap='-ltinfo'
2485 if test "$_termcap" = yes ; then
2486 _def_termcap='#define USE_TERMCAP 1'
2487 echores "yes (using $_ld_termcap)"
2488 else
2489 _def_termcap='#undef USE_TERMCAP'
2490 echores no
2494 echocheck "termios"
2495 if test "$_termios" = auto ; then
2496 cat > $TMPC <<EOF
2497 #include <sys/termios.h>
2498 int main(void) { return 0; }
2500 _termios=no
2501 cc_check && _termios=yes
2502 _def_termios_h_name='sys/termios.h'
2504 # second test:
2505 if test "$_termios" = no ; then
2506 cat > $TMPC <<EOF
2507 #include <termios.h>
2508 int main(void) { return 0; }
2510 _termios=no
2511 cc_check && _termios=yes
2512 _def_termios_h_name='termios.h'
2515 if test "$_termios" = yes ; then
2516 _def_termios='#define HAVE_TERMIOS 1'
2517 _def_termios_h='#undef HAVE_TERMIOS_H'
2518 _def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
2520 if test "$_def_termios_h_name" = 'sys/termios.h' ; then
2521 _def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
2522 elif test "$_def_termios_h_name" = 'termios.h' ; then
2523 _def_termios_h='#define HAVE_TERMIOS_H 1'
2525 echores "yes (using $_def_termios_h_name)"
2526 else
2527 _def_termios='#undef HAVE_TERMIOS'
2528 _def_termios_h_name=''
2529 echores "no"
2533 echocheck "shm"
2534 if test "$_shm" = auto ; then
2535 cat > $TMPC << EOF
2536 #include <sys/types.h>
2537 #include <sys/shm.h>
2538 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
2540 _shm=no
2541 cc_check && _shm=yes
2543 if test "$_shm" = yes ; then
2544 _def_shm='#define HAVE_SHM 1'
2545 else
2546 _def_shm='#undef HAVE_SHM'
2548 echores "$_shm"
2551 # XXX: FIXME, add runtime checking
2552 echocheck "linux devfs"
2553 echores "$_linux_devfs"
2556 echocheck "scandir()"
2557 cat > $TMPC << EOF
2558 int main (void) { scandir("", 0, 0, 0); alphasort(0, 0); return 0; }
2560 _scandir=no
2561 cc_check && _scandir=yes
2562 if test "$_scandir" = yes ; then
2563 _def_scandir='#define HAVE_SCANDIR 1'
2564 else
2565 _def_scandir='#undef HAVE_SCANDIR'
2567 echores "$_scandir"
2570 echocheck "strsep()"
2571 cat > $TMPC << EOF
2572 #include <string.h>
2573 int main (void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
2575 _strsep=no
2576 cc_check && _strsep=yes
2577 if test "$_strsep" = yes ; then
2578 _def_strsep='#define HAVE_STRSEP 1'
2579 else
2580 _def_strsep='#undef HAVE_STRSEP'
2582 echores "$_strsep"
2585 echocheck "vsscanf()"
2586 cat > $TMPC << EOF
2587 #include <stdarg.h>
2588 int main(void) { vsscanf(0, 0, 0); return 0; }
2590 _vsscanf=no
2591 cc_check && _vsscanf=yes
2592 if test "$_vsscanf" = yes ; then
2593 _def_vsscanf='#define HAVE_VSSCANF 1'
2594 else
2595 _def_vsscanf='#undef HAVE_VSSCANF'
2597 echores "$_vsscanf"
2600 echocheck "posix select()"
2601 cat > $TMPC << EOF
2602 #include <stdio.h>
2603 #include <stdlib.h>
2604 #include <sys/types.h>
2605 #include <string.h>
2606 #include <sys/time.h>
2607 #include <unistd.h>
2608 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
2610 _posix_select=no
2611 cc_check && _posix_select=yes
2612 if test "$_posix_select" = no ; then
2613 _def_no_posix_select='#define HAVE_NO_POSIX_SELECT 1'
2614 else
2615 _def_no_posix_select='#undef HAVE_NO_POSIX_SELECT'
2617 echores "$_posix_select"
2620 echocheck "gettimeofday()"
2621 cat > $TMPC << EOF
2622 #include <stdio.h>
2623 #include <sys/time.h>
2624 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
2626 _gettimeofday=no
2627 cc_check && _gettimeofday=yes
2628 if test "$_gettimeofday" = yes ; then
2629 _def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
2630 else
2631 _def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
2633 echores "$_gettimeofday"
2636 echocheck "glob()"
2637 cat > $TMPC << EOF
2638 #include <stdio.h>
2639 #include <glob.h>
2640 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
2642 _glob=no
2643 cc_check && _glob=yes
2644 if test "$_glob" = yes ; then
2645 _def_glob='#define HAVE_GLOB 1'
2646 else
2647 _def_glob='#undef HAVE_GLOB'
2649 echores "$_glob"
2652 echocheck "sys/sysinfo.h"
2653 cat > $TMPC << EOF
2654 #include <sys/sysinfo.h>
2655 int main(void) {
2656 struct sysinfo s_info;
2657 sysinfo(&s_info);
2658 return 0;
2661 _sys_sysinfo=no
2662 cc_check && _sys_sysinfo=yes
2663 if test "$_sys_sysinfo" = yes ; then
2664 _def_sys_sysinfo='#define HAVE_SYS_SYSINFO_H 1'
2665 _inc_sysinfo='#include <sys/sysinfo.h>'
2666 else
2667 _def_sys_sysinfo='#undef HAVE_SYS_SYSINFO_H'
2669 echores "$_sys_sysinfo"
2672 echocheck "Mac OS X APIs"
2673 if test "$_macosx" = auto ; then
2674 if darwin && ppc; then
2675 _macosx=yes
2676 else
2677 _macosx=no
2678 _def_macosx='#undef MACOSX'
2679 _noaomodules="macosx $_noaomodules"
2682 if test "$_macosx" = yes ; then
2683 cat > $TMPC <<EOF
2684 #include <Carbon/Carbon.h>
2685 #include <QuickTime/QuickTime.h>
2686 #include <CoreAudio/CoreAudio.h>
2687 int main(void) {
2688 EnterMovies();
2689 ExitMovies();
2690 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
2693 if cc_check -framework Carbon -framework QuickTime -framework CoreAudio; then
2694 _macosx=yes
2695 _macosx_frameworks="-framework Carbon -framework QuickTime -framework CoreAudio"
2696 _def_macosx='#define MACOSX 1'
2697 _aosrc="$_aosrc ao_macosx.c"
2698 _aomodules="macosx $_aomodules"
2699 else
2700 _macosx=no
2701 _def_macosx='#undef MACOSX'
2702 _noaomodules="macosx $_noaomodules"
2705 echores "$_macosx"
2708 echocheck "Samba support (libsmbclient)"
2709 if test "$_smbsupport" = yes; then
2710 _ld_smb="-lsmbclient"
2712 if test "$_smbsupport" = auto; then
2713 _smbsupport=no
2714 cat > $TMPC << EOF
2715 #include <libsmbclient.h>
2716 int main(void) { smbc_opendir("smb://"); return 0; }
2718 if cc_check -lsmbclient ; then
2719 _smbsupport=yes
2720 _ld_smb="-lsmbclient"
2721 else
2722 if cc_check -lsmbclient $_ld_dl ; then
2723 _smbsupport=yes
2724 _ld_smb="-lsmbclient $_ld_dl"
2725 else
2726 if cc_check -lsmbclient $_ld_dl -lnsl ; then
2727 _smbsupport=yes
2728 _ld_smb="-lsmbclient $_ld_dl -lnsl"
2734 if test "$_smbsupport" = yes; then
2735 _def_smbsupport="#define LIBSMBCLIENT"
2736 _inputmodules="smb $_inputmodules"
2737 else
2738 _def_smbsupport="#undef LIBSMBCLIENT"
2739 _noinputmodules="smb $_noinputmodules"
2741 echores "$_smbsupport"
2744 #########
2745 # VIDEO #
2746 #########
2749 echocheck "3dfx"
2750 if test "$_3dfx" = yes ; then
2751 _def_3dfx='#define HAVE_3DFX 1'
2752 _vosrc="$_vosrc vo_3dfx.c"
2753 _vomodules="3dfx $_vomodules"
2754 else
2755 _def_3dfx='#undef HAVE_3DFX'
2756 _novomodules="3dfx $_novomodules"
2758 echores "$_3dfx"
2761 echocheck "tdfxfb"
2762 if test "$_tdfxfb" = yes ; then
2763 _def_tdfxfb='#define HAVE_TDFXFB 1'
2764 _vosrc="$_vosrc vo_tdfxfb.c"
2765 _vomodules="tdfxfb $_vomodules"
2766 else
2767 _def_tdfxfb='#undef HAVE_TDFXFB'
2768 _novomodules="tdfxfb $_novomodules"
2770 echores "$_tdfxfb"
2772 echocheck "tdfxvid"
2773 if test "$_tdfxvid" = yes ; then
2774 _def_tdfxvid='#define HAVE_TDFX_VID 1'
2775 _vosrc="$_vosrc vo_tdfx_vid.c"
2776 _vomodules="tdfx_vid $_vomodules"
2777 else
2778 _def_tdfxvid='#undef HAVE_TDFX_VID'
2779 _novomodules="tdfx_vid $_novomodules"
2781 echores "$_tdfxfb"
2783 echocheck "tga"
2784 if test "$_tga" = yes ; then
2785 _def_tga='#define HAVE_TGA 1'
2786 _vosrc="$_vosrc vo_tga.c"
2787 _vomodules="tga $_vomodules"
2788 else
2789 _def_tga='#undef HAVE_TGA'
2790 _novomodules="tga $_novomodules"
2792 echores "$_tga"
2794 echocheck "DirectFB headers presence"
2795 if test -z "$_inc_directfb" ; then
2796 for I in /usr/include /usr/local/include; do
2797 if test -d "$I/directfb" && test -f "$I/directfb/directfb.h" ; then
2798 _inc_directfb="-I$I/directfb"
2799 echores "yes (using $_inc_directfb)"
2800 break
2802 if test -d "$I" && test -f "$I/directfb.h" ; then
2803 _inc_directfb="-I$I"
2804 echores "yes (using $_inc_directfb)"
2805 break
2807 done
2808 if test -z "$_inc_directfb" ; then
2809 _directfb=no
2810 echores "not found"
2812 else
2813 echores "yes (using $_inc_directfb)"
2815 if test "$_inc_directfb" = "-I/usr/include" ; then
2816 _inc_directfb=""
2819 echocheck "DirectFB"
2820 if test "$_directfb" = auto ; then
2821 _directfb=no
2822 cat > $TMPC <<EOF
2823 #include <directfb.h>
2824 int main(void) { IDirectFB *foo; return 0; }
2826 linux && test -c /dev/fb0 && cc_check $_inc_directfb -ldirectfb && _directfb=yes
2829 if test "$_directfb" = yes; then
2830 cat > $TMPC <<EOF
2831 #include <directfb.h>
2832 int main(void) {
2833 printf ("%i",(directfb_major_version*100+directfb_minor_version)*100+directfb_micro_version);
2834 return 0;
2837 if cc_check $_inc_directfb -ldirectfb && "$TMPO" >> "$TMPLOG" ; then
2838 _directfb_version=`"$TMPO"`
2839 _def_directfb_version="#define DIRECTFBVERSION $_directfb_version"
2840 echores "yes ($_directfb_version)"
2841 else
2842 _directfb=no
2843 echores "no (failed to get version)"
2845 else
2846 echores "$_directfb"
2849 if test "$_directfb" = yes ; then
2850 _def_directfb='#define HAVE_DIRECTFB 1'
2851 if test "$_directfb_version" -ge 913; then
2852 _vosrc="$_vosrc vo_directfb2.c"
2853 else
2854 _vosrc="$_vosrc vo_directfb.c"
2856 _vomodules="directfb $_vomodules"
2857 _ld_directfb='-ldirectfb'
2859 if test "$_directfb_version" -ge 915; then
2860 _vosrc="$_vosrc vo_dfbmga.c"
2861 _vomodules="dfbmga $_vomodules"
2863 else
2864 _def_directfb='#undef HAVE_DIRECTFB'
2865 _novomodules="directfb $_novomodules"
2866 _inc_directfb=""
2870 echocheck "X11 headers presence"
2871 if test -z "$_inc_x11" ; then
2872 for I in /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/include /usr/openwin/include ; do
2873 if test -d "$I/X11" && test -f "$I/X11/Xlib.h" ; then
2874 _inc_x11="-I$I"
2875 echores "yes (using $I)"
2876 break
2878 done
2879 if test -z "$_inc_x11" ; then
2880 _x11=no
2881 echores "not found (check if the dev(el) packages are installed)"
2883 else
2884 echores "yes (using $_inc_x11)"
2886 if test "$_inc_x11" = "-I/usr/include" ; then
2887 _inc_x11=""
2891 echocheck "X11 libs presence"
2892 if test -z "$_ld_x11" ; then
2893 for I in /usr/X11R6/lib /usr/lib/X11R6 /usr/X11/lib /usr/lib32 /usr/openwin/lib /usr/X11R6/lib64 ; do
2894 if test -d "$I" && ( test -f "$I/libX11.so" || test -f "$I/libX11.a" ) ; then
2895 _ld_x11="-L$I"
2896 echores "yes (using $I)"
2897 break;
2899 done
2900 if test -z "$_ld_x11" ; then
2901 _x11=no
2902 echores "not found (check if the dev(el) packages are installed)"
2904 else
2905 echores "yes (using $_ld_x11)"
2907 _ld_x11="$_ld_x11 -lXext -lX11 $_ld_sock"
2910 echocheck "X11"
2911 if test "$_x11" != no ; then
2912 cat > $TMPC <<EOF
2913 #include <X11/Xlib.h>
2914 #include <X11/Xutil.h>
2915 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
2917 _x11=no
2918 cc_check $_inc_x11 $_ld_x11 && _x11=yes
2920 if test "$_x11" = yes ; then
2921 _def_x11='#define HAVE_X11 1'
2922 _vosrc="$_vosrc x11_common.c vo_x11.c vo_xover.c"
2923 _vomodules="x11 xover $_vomodules"
2924 else
2925 _def_x11='#undef HAVE_X11'
2926 _inc_x11=''
2927 _ld_x11=''
2928 _novomodules="x11 $_novomodules"
2930 echores "$_x11"
2933 echocheck "DPMS"
2934 _xdpms3=no
2935 if test "$_x11" = yes ; then
2936 cat > $TMPC <<EOF
2937 #include <X11/Xmd.h>
2938 #include <X11/Xlib.h>
2939 #include <X11/Xutil.h>
2940 #include <X11/Xatom.h>
2941 #include <X11/extensions/dpms.h>
2942 int main(void) {
2943 (void) DPMSQueryExtension(0, 0, 0);
2946 cc_check $_inc_x11 -lXdpms $_ld_x11 && _xdpms3=yes
2948 _xdpms4=no
2949 if test "$_x11" = yes ; then
2950 cat > $TMPC <<EOF
2951 #include <X11/Xlib.h>
2952 #include <X11/extensions/dpms.h>
2953 int main(void) {
2954 (void) DPMSQueryExtension(0, 0, 0);
2957 cc_check $_inc_x11 $_ld_x11 && _xdpms4=yes
2959 if test "$_xdpms4" = yes ; then
2960 _def_xdpms='#define HAVE_XDPMS 1'
2961 echores "yes (using Xdpms 4)"
2962 elif test "$_xdpms3" = yes ; then
2963 _def_xdpms='#define HAVE_XDPMS 1'
2964 _ld_x11="-lXdpms $_ld_x11"
2965 echores "yes (using Xdpms 3)"
2966 else
2967 _def_xdpms='#undef HAVE_XDPMS'
2968 echores "no"
2972 echocheck "Xv"
2973 if test "$_x11" = yes && test "$_xv" != no ; then
2974 cat > $TMPC <<EOF
2975 #include <X11/Xlib.h>
2976 #include <X11/extensions/Xvlib.h>
2977 int main(void) { (void) XvGetPortAttribute(0, 0, 0, 0); return 0; }
2979 _xv=no
2980 cc_check $_inc_x11 -lXv $_ld_x11 && _xv=yes
2981 else
2982 _xv=no
2984 if test "$_xv" = yes ; then
2985 _def_xv='#define HAVE_XV 1'
2986 _ld_xv='-lXv'
2987 _vosrc="$_vosrc vo_xv.c"
2988 _vomodules="xv $_vomodules"
2989 else
2990 _def_xv='#undef HAVE_XV'
2991 _novomodules="xv $_novomodules"
2993 echores "$_xv"
2996 echocheck "XvMC"
2997 if test "$_x11" = yes && test "$_xv" = yes && test "$_xvmc" != no ; then
2998 _xvmc=no
2999 cat > $TMPC <<EOF
3000 #include <X11/Xlib.h>
3001 #include <X11/extensions/Xvlib.h>
3002 #include <X11/extensions/XvMClib.h>
3003 int main(void) {
3004 (void) XvMCQueryExtension(0,0,0);
3005 (void) XvMCCreateContext(0,0,0,0,0,0,0);
3006 return 0; }
3008 cc_check $_inc_x11 -lXvMC -l$_xvmclib $_ld_xv $_ld_x11 && _xvmc=yes
3010 if test "$_xvmc" = yes ; then
3011 _def_xvmc='#define HAVE_XVMC 1'
3012 _ld_xvmc="-lXvMC -l$_xvmclib"
3013 _vosrc="$_vosrc vo_xvmc.c"
3014 _vomodules="xvmc $_vomodules"
3015 else
3016 _def_xvmc='#undef HAVE_XVMC'
3017 _novomodules="xvmc $_novomodules"
3019 echores "$_xvmc"
3022 echocheck "Xinerama"
3023 if test "$_x11" = yes && test "$_xinerama" != no ; then
3024 cat > $TMPC <<EOF
3025 #include <X11/Xlib.h>
3026 #include <X11/extensions/Xinerama.h>
3027 int main(void) { (void) XineramaIsActive(0); return 0; }
3029 _xinerama=no
3030 cc_check $_inc_x11 -lXinerama $_ld_x11 && _xinerama=yes
3031 else
3032 _xinerama=no
3034 if test "$_xinerama" = yes ; then
3035 _def_xinerama='#define HAVE_XINERAMA 1'
3036 _ld_xinerama='-lXinerama'
3037 else
3038 _def_xinerama='#undef HAVE_XINERAMA'
3040 echores "$_xinerama"
3043 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3044 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3045 # named 'X extensions' or something similar.
3046 # This check may be useful for future mplayer versions (to change resolution)
3047 # If you run into problems, remove '-lXxf86vm'.
3048 echocheck "Xxf86vm"
3049 if test "$_x11" = yes && test "$_vm" != no ; then
3050 cat > $TMPC <<EOF
3051 #include <X11/Xlib.h>
3052 #include <X11/extensions/xf86vmode.h>
3053 #include <X11/XF86keysym.h>
3054 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
3056 _vm=no
3057 cc_check $_inc_x11 -lXxf86vm $_ld_x11 && _vm=yes
3058 else
3059 _vm=no
3061 if test "$_vm" = yes ; then
3062 _def_vm='#define HAVE_XF86VM 1'
3063 _ld_vm='-lXxf86vm'
3064 else
3065 _def_vm='#undef HAVE_XF86VM'
3067 echores "$_vm"
3070 echocheck "DGA"
3071 # Version 2 is preferred to version 1 if available
3072 if test "$_dga" = auto ; then
3073 cat > $TMPC << EOF
3074 #include <X11/Xlib.h>
3075 #include <X11/extensions/xf86dga.h>
3076 int main (void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
3078 _dga=no
3079 cc_check $_inc_x11 -lXxf86dga -lXxf86vm $_ld_x11 && _dga=1
3081 cat > $TMPC << EOF
3082 #include <X11/Xlib.h>
3083 #include <X11/extensions/xf86dga.h>
3084 int main (void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
3086 cc_check $_inc_x11 -lXxf86dga $_ld_x11 && _dga=2
3089 _def_dga='#undef HAVE_DGA'
3090 _def_dga2='#undef HAVE_DGA2'
3091 if test "$_dga" = 1 ; then
3092 _def_dga='#define HAVE_DGA 1'
3093 _ld_dga='-lXxf86dga'
3094 _vosrc="$_vosrc vo_dga.c"
3095 _vomodules="dga $_vomodules"
3096 echores "yes (using DGA 1.0)"
3097 elif test "$_dga" = 2 ; then
3098 _def_dga='#define HAVE_DGA 1'
3099 _def_dga2='#define HAVE_DGA2 1'
3100 _ld_dga='-lXxf86dga'
3101 _vosrc="$_vosrc vo_dga.c"
3102 _vomodules="dga $_vomodules"
3103 echores "yes (using DGA 2.0)"
3104 elif test "$_dga" = no ; then
3105 echores "no"
3106 _novomodules="dga $_novomodules"
3107 else
3108 die "DGA version must be 1 or 2"
3112 echocheck "OpenGL"
3113 #Note: this test is run even with --enable-gl since we autodetect $_ld_gl
3114 if (test "$_x11" = yes || mingw32 || cygwin) && test "$_gl" != no ; then
3115 cat > $TMPC << EOF
3116 #include <GL/gl.h>
3117 int main(void) { return 0; }
3119 _gl=no
3120 if cc_check $_inc_x11 $_ld_x11 -lGL -lm ; then
3121 _gl=yes
3122 _ld_gl="-lGL"
3123 elif cc_check $_inc_x11 $_ld_x11 -lGL -lm $_ld_pthread ; then
3124 _gl=yes
3125 _ld_gl="-lGL $_ld_pthread"
3126 elif cc_check -lopengl32 ; then
3127 _gl=yes
3128 _gl_win32=yes
3129 _ld_gl="-lopengl32 -lgdi32"
3131 else
3132 _gl=no
3134 if test "$_gl" = yes ; then
3135 _def_gl='#define HAVE_GL 1'
3136 if test "$_gl_win32" = yes ; then
3137 _def_gl_win32='#define GL_WIN32 1'
3138 _vosrc="$_vosrc vo_gl2.c w32_common.c"
3139 else
3140 _vosrc="$_vosrc vo_gl.c vo_gl2.c"
3142 _vomodules="opengl $_vomodules"
3143 else
3144 _def_gl='#undef HAVE_GL'
3145 _def_gl_win32='#undef GL_WIN32'
3146 _novomodules="opengl $_novomodules"
3148 echores "$_gl"
3151 echocheck "/dev/mga_vid"
3152 if test "$_mga" = auto ; then
3153 _mga=no
3154 test -c /dev/mga_vid && _mga=yes
3156 if test "$_mga" = yes ; then
3157 _def_mga='#define HAVE_MGA 1'
3158 _vosrc="$_vosrc vo_mga.c"
3159 _vomodules="mga $_vomodules"
3160 else
3161 _def_mga='#undef HAVE_MGA'
3162 _novomodules="mga $_novomodules"
3164 echores "$_mga"
3167 # echocheck "syncfb"
3168 # _syncfb=no
3169 # test "$_mga" = yes && _syncfb=yes
3170 # if test "$_syncfb" = yes ; then
3171 # _def_syncfb='#define HAVE_SYNCFB 1'
3172 # _vosrc="$_vosrc vo_syncfb.c"
3173 # else
3174 # _def_syncfb='#undef HAVE_SYNCFB'
3175 # fi
3176 # echores "$_syncfb"
3179 echocheck "xmga"
3180 if test "$_xmga" = auto ; then
3181 _xmga=no
3182 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
3184 if test "$_xmga" = yes ; then
3185 _def_xmga='#define HAVE_XMGA 1'
3186 _vosrc="$_vosrc vo_xmga.c"
3187 _vomodules="xmga $_vomodules"
3188 else
3189 _def_xmga='#undef HAVE_XMGA'
3190 _novomodules="xmga $_novomodules"
3192 echores "$_xmga"
3195 echocheck "GGI"
3196 if test "$_ggi" = auto ; then
3197 cat > $TMPC << EOF
3198 #include <ggi/ggi.h>
3199 int main(void) { return 0; }
3201 _ggi=no
3202 cc_check -lggi && _ggi=yes
3204 if test "$_ggi" = yes ; then
3205 _def_ggi='#define HAVE_GGI 1'
3206 _ld_ggi='-lggi'
3207 _vosrc="$_vosrc vo_ggi.c"
3208 _vomodules="ggi $_vomodules"
3209 else
3210 _def_ggi='#undef HAVE_GGI'
3211 _novomodules="ggi $_novomodules"
3213 echores "$_ggi"
3216 echocheck "AA"
3217 if test "$_aa" = auto ; then
3218 cat > $TMPC << EOF
3219 #include <aalib.h>
3220 int main(void) { (void) aa_init(0, 0, 0); return 0; }
3222 _aa=no
3223 cc_check -laa && _aa=yes
3225 if test "$_aa" = yes ; then
3226 _def_aa='#define HAVE_AA 1'
3227 if cygwin ; then
3228 _ld_aa=`aalib-config --libs | cut -d " " -f 2,5,6`
3229 else
3230 _ld_aa='-laa'
3232 _vosrc="$_vosrc vo_aa.c"
3233 _vomodules="aa $_vomodules"
3234 else
3235 _def_aa='#undef HAVE_AA'
3236 _novomodules="aa $_novomodules"
3238 echores "$_aa"
3241 echocheck "SVGAlib"
3242 if test "$_svga" = auto ; then
3243 cat > $TMPC << EOF
3244 #include <vga.h>
3245 #include <vgagl.h>
3246 int main(void) { return 0; }
3248 _svga=no
3249 cc_check -lvgagl -lvga -lm && _svga=yes
3251 if test "$_svga" = yes ; then
3252 _def_svga='#define HAVE_SVGALIB 1'
3253 _ld_svga='-lvgagl -lvga -lm'
3254 _vosrc="$_vosrc vo_svga.c"
3255 _vomodules="svga $_vomodules"
3256 else
3257 _def_svga='#undef HAVE_SVGALIB'
3258 _novomodules="svga $_novomodules"
3260 echores "$_svga"
3263 echocheck "FBDev"
3264 if test "$_fbdev" = auto ; then
3265 _fbdev=no
3266 linux && test -c /dev/fb0 && _fbdev=yes
3268 if test "$_fbdev" = yes ; then
3269 _def_fbdev='#define HAVE_FBDEV 1'
3270 _vosrc="$_vosrc vo_fbdev.c vo_fbdev2.c"
3271 _vomodules="fbdev $_vomodules"
3272 else
3273 _def_fbdev='#undef HAVE_FBDEV'
3274 _novomodules="fbdev $_novomodules"
3276 echores "$_fbdev"
3280 echocheck "DVB"
3281 if test "$_dvb" != no ; then
3282 _dvb=no
3283 cat >$TMPC << EOF
3284 #include <sys/poll.h>
3285 #include <sys/ioctl.h>
3286 #include <stdio.h>
3287 #include <time.h>
3288 #include <unistd.h>
3290 #include <ost/dmx.h>
3291 #include <ost/frontend.h>
3292 #include <ost/sec.h>
3293 #include <ost/video.h>
3294 #include <ost/audio.h>
3295 int main(void) {return 0;}
3297 if cc_check ; then
3298 _dvb=yes
3299 echores "yes"
3300 else
3301 for I in "$_inc_dvb" "-I/usr/src/DVB/ost/include" ; do
3302 if cc_check "$I" ; then
3303 _dvb=yes
3304 _inc_dvb="$I"
3305 echores "yes (using $_inc_dvb)"
3306 break
3308 done
3309 test "$_dvb" = no && echores "no (specify path to DVB/ost/include with --with-dvbincdir=DIR)"
3311 else
3312 echores "no"
3314 if test "$_dvb" = yes ; then
3315 _def_dvb='#define HAVE_DVB 1'
3316 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
3317 _aomodules="mpegpes(dvb) $_aomodules"
3318 _vomodules="mpegpes(dvb) $_vomodules"
3320 if test "$_dvbhead" != no ; then
3321 echocheck "DVB HEAD"
3322 if test "$_dvbhead" != no ; then
3323 _dvbhead=no
3325 cat >$TMPC << EOF
3326 #include <sys/poll.h>
3327 #include <sys/ioctl.h>
3328 #include <stdio.h>
3329 #include <time.h>
3330 #include <unistd.h>
3332 #include <linux/dvb/dmx.h>
3333 #include <linux/dvb/frontend.h>
3334 #include <linux/dvb/video.h>
3335 #include <linux/dvb/audio.h>
3336 int main(void) {return 0;}
3338 if cc_check ; then
3339 _dvbhead=yes
3340 echores "yes"
3341 else
3342 for I in "$_inc_dvb" "-I/usr/src/DVB/include" ; do
3343 if cc_check "$I" ; then
3344 _dvbhead=yes
3345 _inc_dvb="$I"
3346 echores "yes (using $_inc_dvb)"
3347 break
3349 done
3350 test "$_dvbhead" = no && echores "no (specify path to DVB/include (HEAD Version) with --with-dvbincdir=DIR)"
3352 else
3353 echores "no"
3355 if test "$_dvbhead" = yes ; then
3356 _def_dvb='#define HAVE_DVB_HEAD 1'
3357 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
3358 _aomodules="mpegpes(dvb) $_aomodules"
3359 _vomodules="mpegpes(dvb) $_vomodules"
3362 if test "$_dvbhead" = no && test "$_dvb" = no ; then
3363 _def_dvb='#undef HAVE_DVB'
3364 _def_dvb_in='#undef HAS_DVBIN_SUPPORT '
3365 _aomodules="mpegpes(file) $_aomodules"
3366 _vomodules="mpegpes(file) $_vomodules"
3369 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
3370 _dvbin=yes
3371 _inputmodules="dvb $_inputmodules"
3372 else
3373 _dvbin=no
3376 echocheck "PNG support"
3377 if test "$_png" = auto ; then
3378 _png=no
3379 if irix ; then
3380 # Don't check for -lpng on irix since it has its own libpng
3381 # incompatible with the GNU libpng
3382 echores "disabled on irix (not GNU libpng)"
3383 else
3384 cat > $TMPC << EOF
3385 #include <png.h>
3386 #include <string.h>
3387 int main(void) {
3388 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
3389 printf("libpng: %s\n", png_libpng_ver);
3390 return (strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver));
3393 if cc_check -lpng -lz -lm ; then
3394 if "$TMPO" >> "$TMPLOG" ; then
3395 _png=yes
3396 echores yes
3397 else
3398 echores "no (mismatch of library and header versions)"
3400 else
3401 echores no
3404 else
3405 echores "$_png"
3407 if test "$_png" = yes ; then
3408 _def_png='#define HAVE_PNG 1'
3409 _ld_png='-lpng -lz'
3410 _vosrc="$_vosrc vo_png.c"
3411 _vomodules="png $_vomodules"
3412 _mkf_png="yes"
3413 else
3414 _def_png='#undef HAVE_PNG'
3415 _novomodules="png $_novomodules"
3416 _mkf_png="no"
3419 echocheck "JPEG support"
3420 if test "$_jpg" = auto ; then
3421 _jpg=no
3422 cat > $TMPC << EOF
3423 #include <stdio.h>
3424 #include <stdlib.h>
3425 #include <setjmp.h>
3426 #include <string.h>
3427 #include <jpeglib.h>
3428 int main(void) {
3429 return 0;
3432 if cc_check -ljpeg -lm ; then
3433 if "$TMPO" >> "$TMPLOG" ; then
3434 _jpg=yes
3438 echores "$_jpg"
3440 if test "$_jpg" = yes ; then
3441 _def_jpg='#define HAVE_JPEG 1'
3442 _vosrc="$_vosrc vo_jpeg.c"
3443 _vomodules="jpeg $_vomodules"
3444 _ld_jpg="-ljpeg"
3445 _mkf_jpg="yes"
3446 else
3447 _def_jpg='#undef HAVE_JPEG'
3448 _novomodules="jpeg $_novomodules"
3449 _mkf_jpg="no"
3453 echocheck "GIF support"
3454 if test "$_gif" = auto ; then
3455 _gif=no
3456 cat > $TMPC << EOF
3457 #include <gif_lib.h>
3458 int main(void) {
3459 return 0;
3462 if cc_check -lungif && "$TMPO" >> "$TMPLOG" ; then
3463 _gif=yes
3464 _ld_gif="-lungif"
3465 elif cc_check -lungif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
3466 _gif=yes
3467 _ld_gif="-lungif $_ld_x11"
3468 elif cc_check -lgif && "$TMPO" >> "$TMPLOG" ; then
3469 _gif=yes
3470 _ld_gif="-lgif"
3471 elif cc_check -lgif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
3472 _gif=yes
3473 _ld_gif="-lgif $_ld_x11"
3477 if test "$_gif" = yes ; then
3478 _def_gif='#define HAVE_GIF 1'
3479 _vosrc="$_vosrc vo_gif89a.c"
3480 _codecmodules="gif $_codecmodules"
3481 _vomodules="gif89a $_vomodules"
3482 _mkf_gif="yes"
3483 _gif="yes (old version, some encoding functions disabled)"
3484 _def_gif_4='#undef HAVE_GIF_4'
3486 cat > $TMPC << EOF
3487 #include <signal.h>
3488 #include <gif_lib.h>
3489 void catch() { exit(1); }
3490 int main(void) {
3491 signal(SIGSEGV, catch); // catch segfault
3492 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
3493 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
3494 return 0;
3497 if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
3498 _def_gif_4='#define HAVE_GIF_4 1'
3499 _gif="yes"
3501 else
3502 _def_gif='#undef HAVE_GIF'
3503 _def_gif_4='#undef HAVE_GIF_4'
3504 _novomodules="gif89a $_novomodules"
3505 _nocodecmodules="gif $_codecmodules"
3506 _mkf_gif="no"
3508 echores "$_gif"
3511 case "$_gif" in yes*)
3512 echocheck "broken giflib workaround"
3513 _def_gif_tvt_hack='#define HAVE_GIF_TVT_HACK 1'
3515 cat > $TMPC << EOF
3516 #include <gif_lib.h>
3517 int main(void) {
3518 GifFileType gif;
3519 printf("UserData is at address %p\n", gif.UserData);
3520 return 0;
3523 if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
3524 _def_gif_tvt_hack='#undef HAVE_GIF_TVT_HACK'
3525 echores "disabled"
3526 else
3527 echores "enabled"
3530 esac
3533 echocheck "VESA support"
3534 if test "$_vesa" = auto ; then
3535 if x86 && linux ; then
3536 _vesa=no
3537 cat > $TMPC << EOF
3538 #include <sys/io.h>
3539 int main(void) { return 0; }
3541 cc_check && _vesa=yes
3544 if test "$_vesa" = yes ; then
3545 _def_vesa='#define HAVE_VESA 1'
3546 _vosrc="$_vosrc vo_vesa.c vesa_lvo.c"
3547 _vomodules="vesa $_vomodules"
3548 echores "yes"
3549 else
3550 _def_vesa='#undef HAVE_VESA'
3551 echores "no (not supported on this OS/architecture)"
3552 _novomodules="vesa $_novomodules"
3555 #################
3556 # VIDEO + AUDIO #
3557 #################
3560 echocheck "SDL"
3561 if test -z "$_sdlconfig" ; then
3562 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
3563 _sdlconfig="sdl-config"
3564 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
3565 _sdlconfig="sdl11-config"
3566 else
3567 _sdlconfig=false
3570 if test "$_sdl" = auto || test "$_sdl" = yes ; then
3571 cat > $TMPC << EOF
3572 #include <SDL.h>
3573 int main(int argc, char *argv[]) { return 0; }
3575 _sdl=no
3576 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
3577 if cc_check `$_sdlconfig --cflags` `$_sdlconfig --libs` >>"$TMPLOG" 2>&1 ; then
3578 _sdlversion=`$_sdlconfig --version | sed 's/[^0-9]//g'`
3579 if test "$_sdlversion" -gt 116 ; then
3580 if test "$_sdlversion" -lt 121 ; then
3581 _def_sdlbuggy='#define BUGGY_SDL'
3582 else
3583 _def_sdlbuggy='#undef BUGGY_SDL'
3585 _sdl=yes
3586 else
3587 _sdl=outdated
3592 if test "$_sdl" = yes ; then
3593 _def_sdl='#define HAVE_SDL 1'
3594 if cygwin ; then
3595 _ld_sdl=`$_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/`
3596 _inc_sdl=`$_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/`
3597 else
3598 _ld_sdl=`$_sdlconfig --libs`
3599 _inc_sdl=`$_sdlconfig --cflags`
3601 _vosrc="$_vosrc vo_sdl.c"
3602 _vomodules="sdl $_vomodules"
3603 _aosrc="$_aosrc ao_sdl.c"
3604 _aomodules="sdl $_aomodules"
3605 echores "yes (using $_sdlconfig)"
3606 else
3607 _def_sdl='#undef HAVE_SDL'
3608 _novomodules="sdl $_novomodules"
3609 _noaomodules="sdl $_noaomodules"
3610 echores "no"
3613 echocheck "Windows waveout"
3614 if test "$_win32waveout" = auto ; then
3615 cat > $TMPC << EOF
3616 #include <windows.h>
3617 #include <mmsystem.h>
3618 int main(void) { return 0; }
3620 _win32waveout=no
3621 cc_check -lwinmm && _win32waveout=yes
3623 if test "$_win32waveout" = yes ; then
3624 _def_win32waveout='#define HAVE_WIN32WAVEOUT 1'
3625 _ld_win32libs="-lwinmm $_ld_win32libs"
3626 _aosrc="$_aosrc ao_win32.c"
3627 _aomodules="win32 $_aomodules"
3628 else
3629 _def_win32waveout='#undef HAVE_WIN32WAVEOUT'
3630 _noaomodules="win32 $_noaomodules"
3632 echores "$_win32waveout"
3634 echocheck "Directx"
3635 if test "$_directx" = auto ; then
3636 cat > $TMPC << EOF
3637 #include <windows.h>
3638 #include <ddraw.h>
3639 int main(void) { return 0; }
3641 _directx=no
3642 cc_check -lgdi32 && _directx=yes
3644 if test "$_directx" = yes ; then
3645 _def_directx='#define HAVE_DIRECTX 1'
3646 _ld_win32libs="-lgdi32 $_ld_win32libs"
3647 _vosrc="$_vosrc vo_directx.c"
3648 _vomodules="directx $_vomodules"
3649 else
3650 _def_directx='#undef HAVE_DIRECTX'
3651 _novomodules="directx $_novomodules"
3653 echores "$_directx"
3655 echocheck "NAS"
3656 if test "$_nas" = auto || test "$_nas" = yes ; then
3657 cat > $TMPC << EOF
3658 #include <audio/audiolib.h>
3659 int main(void) { return 0; }
3661 _nas=no
3662 cc_check -laudio $_inc_x11 -lXt $_ld_x11 -lm && _nas=yes
3664 if test "$_nas" = yes ; then
3665 _def_nas='#define HAVE_NAS 1'
3666 _ld_nas="-laudio -lXt $_ld_x11"
3667 _aosrc="$_aosrc ao_nas.c"
3668 _aomodules="nas $_aomodules"
3669 else
3670 _noaomodules="nas $_noaomodules"
3671 _def_nas='#undef HAVE_NAS'
3673 echores "$_nas"
3675 echocheck "DXR2"
3676 if test "$_dxr2" = auto; then
3677 _dxr2=no
3678 for _inc_dxr2 in "$_inc_dxr2" \
3679 "-I/usr/local/include/dxr2" \
3680 "-I/usr/include/dxr2"; do
3681 cat > $TMPC << EOF
3682 #include <dxr2ioctl.h>
3683 int main(void) { return 0; }
3685 cc_check $_inc_dxr2 && _dxr2=yes && break
3686 done
3688 if test "$_dxr2" = yes; then
3689 _def_dxr2='#define HAVE_DXR2 1'
3690 _vosrc="$_vosrc vo_dxr2.c"
3691 _aosrc="$_aosrc ao_dxr2.c"
3692 _aomodules="dxr2 $_aomodules"
3693 _vomodules="dxr2 $_vomodules"
3694 echores "yes (using $_inc_dxr2)"
3695 else
3696 _def_dxr2='#undef HAVE_DXR2'
3697 _noaomodules="dxr2 $_noaomodules"
3698 _novomodules="dxr2 $_novomodules"
3699 _inc_dxr2=""
3700 echores "no"
3703 echocheck "DXR3/H+"
3704 if test "$_dxr3" = auto ; then
3705 cat > $TMPC << EOF
3706 #include <linux/em8300.h>
3707 int main(void) { return 0; }
3709 _dxr3=no
3710 cc_check && _dxr3=yes
3712 if test "$_dxr3" = yes ; then
3713 _def_dxr3='#define HAVE_DXR3 1'
3714 _vosrc="$_vosrc vo_dxr3.c"
3715 _vomodules="dxr3 $_vomodules"
3716 else
3717 _def_dxr3='#undef HAVE_DXR3'
3718 _novomodules="dxr3 $_novomodules"
3719 if test "$_mp1e" = auto ; then
3720 # we don't need mp1e
3721 _mp1e=no
3724 echores "$_dxr3"
3726 echocheck "libmp1e"
3727 if test "$_mmx" = no ; then
3728 # mp1e REQUIRES mmx!
3729 _mp1e=no
3731 if test "$_mp1e" != no ; then
3732 _mp1e=yes
3733 _def_mp1e='#define USE_MP1E'
3734 _ld_mp1e='libmp1e/libmp1e.a'
3735 _dep_mp1e='libmp1e/libmp1e.a'
3736 else
3737 _mp1e=no
3738 _def_mp1e='#undef USE_MP1E'
3739 _ld_mp1e=""
3740 _dep_mp1e=''
3742 echores "$_mp1e"
3745 echocheck "libfame"
3746 if test "$_fame" = auto ; then
3747 _fame=no
3748 test "$_dxr2" = yes && _fame=auto
3749 test "$_dxr3" = yes && _fame=auto
3750 test "$_dvb" = yes && _fame=auto
3752 if test "$_fame" = auto ; then
3753 _fame=no
3754 if test -d libfame && test -f libfame/fame.h ; then
3755 # disable fame on cygwin as no sense to port - atmos
3756 cygwin || _fame=yes
3757 echores $_fame
3758 else
3759 echores "no (no fame dir)"
3761 else
3762 echores "$_fame"
3765 _def_fame='#undef USE_LIBFAME'
3766 if test "$_fame" = yes ; then
3767 _def_fame='#define USE_LIBFAME 1'
3768 _ld_fame='libfame/libfame.a'
3772 #########
3773 # AUDIO #
3774 #########
3777 echocheck "OSS Audio"
3778 if test "$_ossaudio" = auto ; then
3779 cat > $TMPC << EOF
3780 #include <sys/ioctl.h>
3781 $_inc_soundcard
3782 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
3784 _ossaudio=no
3785 cc_check && _ossaudio=yes
3787 if test "$_ossaudio" = yes ; then
3788 _def_ossaudio='#define USE_OSS_AUDIO 1'
3789 _aosrc="$_aosrc ao_oss.c"
3790 _aomodules="oss $_aomodules"
3791 if test "$_linux_devfs" = yes; then
3792 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
3793 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
3794 else
3795 cat > $TMPC << EOF
3796 #include <sys/ioctl.h>
3797 $_inc_soundcard
3798 #ifdef OPEN_SOUND_SYSTEM
3799 int main(void) { return 0; }
3800 #else
3801 #error Not the real thing
3802 #endif
3804 _real_ossaudio=no
3805 cc_check && _real_ossaudio=yes
3806 if test "$_real_ossaudio" = yes; then
3807 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
3808 elif netbsd || openbsd ; then
3809 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
3810 _ld_arch="$_ld_arch -lossaudio"
3811 else
3812 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
3814 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
3816 else
3817 _def_ossaudio='#undef USE_OSS_AUDIO'
3818 _def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
3819 _def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
3820 _noaomodules="oss $_noaomodules"
3822 echores "$_ossaudio"
3825 echocheck "aRts"
3826 if test "$_arts" = auto ; then
3827 _arts=no
3828 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
3830 cat > $TMPC << EOF
3831 #include <artsc.h>
3832 int main(void) { return 0; }
3834 cc_check `artsc-config --libs` `artsc-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _arts=yes
3839 if test "$_arts" = yes ; then
3840 _def_arts='#define USE_ARTS 1'
3841 _aosrc="$_aosrc ao_arts.c"
3842 _aomodules="arts $_aomodules"
3843 _ld_arts=`artsc-config --libs`
3844 _inc_arts=`artsc-config --cflags`
3845 else
3846 _noaomodules="arts $_noaomodules"
3848 echores "$_arts"
3851 echocheck "EsounD"
3852 if test "$_esd" = auto ; then
3853 _esd=no
3854 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
3856 cat > $TMPC << EOF
3857 #include <esd.h>
3858 int main(void) { return 0; }
3860 cc_check `esd-config --libs` `esd-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _esd=yes
3864 echores "$_esd"
3866 if test "$_esd" = yes ; then
3867 _def_esd='#define USE_ESD 1'
3868 _aosrc="$_aosrc ao_esd.c"
3869 _aomodules="esd $_aomodules"
3870 _ld_esd=`esd-config --libs`
3871 _inc_esd=`esd-config --cflags`
3873 echocheck "esd_get_latency()"
3874 cat > $TMPC << EOF
3875 #include <esd.h>
3876 int main(void) { return esd_get_latency(0); }
3878 cc_check `esd-config --libs` `esd-config --cflags` && _esd_latency=yes && _def_esd_latency='#define HAVE_ESD_LATENCY'
3879 echores "$_esd_latency"
3880 else
3881 _def_esd='#undef USE_ESD'
3882 _def_esd_latency='#undef HAVE_ESD_LATENCY'
3883 _noaomodules="esd $_noaomodules"
3886 echocheck "ALSA audio"
3887 if test "$_alsa" != no ; then
3888 _alsa=no
3889 cat > $TMPC << EOF
3890 #include <sys/asoundlib.h>
3891 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==5)); }
3893 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.5.x'
3895 cat > $TMPC << EOF
3896 #include <sys/asoundlib.h>
3897 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
3899 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-sys'
3900 cat > $TMPC << EOF
3901 #include <alsa/asoundlib.h>
3902 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
3904 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-alsa'
3906 cat > $TMPC << EOF
3907 #include <sys/asoundlib.h>
3908 int main(void) { return (!(SND_LIB_MAJOR==1 && SND_LIB_MINOR==0)); }
3910 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='1.0.x-sys'
3911 cat > $TMPC << EOF
3912 #include <alsa/asoundlib.h>
3913 int main(void) { return (!(SND_LIB_MAJOR==1 && SND_LIB_MINOR==0)); }
3915 cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='1.0.x-alsa'
3917 _def_alsa5='#undef HAVE_ALSA5'
3918 _def_alsa9='#undef HAVE_ALSA9'
3919 _def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
3920 _def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
3921 if test "$_alsaver" ; then
3922 if test "$_alsaver" = '0.5.x' ; then
3923 _aosrc="$_aosrc ao_alsa5.c"
3924 _aomodules="alsa5 $_aomodules"
3925 _def_alsa5='#define HAVE_ALSA5 1'
3926 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
3927 echores "yes (using alsa 0.5.x and sys/asoundlib.h)"
3928 elif test "$_alsaver" = '0.9.x-sys' ; then
3929 _aosrc="$_aosrc ao_alsa9.c"
3930 _aomodules="alsa9 $_aomodules"
3931 _def_alsa9='#define HAVE_ALSA9 1'
3932 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
3933 echores "yes (using alsa 0.9.x and sys/asoundlib.h)"
3934 elif test "$_alsaver" = '0.9.x-alsa' ; then
3935 _aosrc="$_aosrc ao_alsa9.c"
3936 _aomodules="alsa9 $_aomodules"
3937 _def_alsa9='#define HAVE_ALSA9 1'
3938 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
3939 echores "yes (using alsa 0.9.x and alsa/asoundlib.h)"
3940 elif test "$_alsaver" = '1.0.x-sys' ; then
3941 _aosrc="$_aosrc ao_alsa9.c"
3942 _aomodules="alsa9 $_aomodules"
3943 _def_alsa9="#define ALSA_PCM_OLD_HW_PARAMS_API 1
3944 #define ALSA_PCM_OLD_SW_PARAMS_API 1
3945 #define HAVE_ALSA9 1"
3946 _def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
3947 echores "yes (using alsa 1.0.x and sys/asoundlib.h)"
3948 elif test "$_alsaver" = '1.0.x-alsa' ; then
3949 _aosrc="$_aosrc ao_alsa9.c"
3950 _aomodules="alsa9 $_aomodules"
3951 _def_alsa9="#define ALSA_PCM_OLD_HW_PARAMS_API 1
3952 #define ALSA_PCM_OLD_SW_PARAMS_API 1
3953 #define HAVE_ALSA9 1"
3954 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
3955 echores "yes (using alsa 1.0.x and alsa/asoundlib.h)"
3957 _ld_alsa="-lasound $_ld_dl $_ld_pthread"
3958 else
3959 _noaomodules="alsa $_noaomodules"
3960 echores "no"
3964 echocheck "Sun audio"
3965 if test "$_sunaudio" = auto ; then
3966 cat > $TMPC << EOF
3967 #include <sys/types.h>
3968 #include <sys/audioio.h>
3969 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
3971 _sunaudio=no
3972 cc_check && _sunaudio=yes
3974 if test "$_sunaudio" = yes ; then
3975 _def_sunaudio='#define USE_SUN_AUDIO 1'
3976 _aosrc="$_aosrc ao_sun.c"
3977 _aomodules="sun $_aomodules"
3978 else
3979 _def_sunaudio='#undef USE_SUN_AUDIO'
3980 _noaomodules="sun $_noaomodules"
3982 echores "$_sunaudio"
3985 echocheck "Sun mediaLib"
3986 if test "$_mlib" = auto ; then
3987 _mlib=no
3988 test -z "$_mlibdir" && _mlibdir=/opt/SUNWmlib
3989 cat > $TMPC << EOF
3990 #include <mlib.h>
3991 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
3993 cc_check -I${_mlibdir}/include -L${_mlibdir}/lib -lmlib && _mlib=yes
3995 if test "$_mlib" = yes ; then
3996 _def_mlib='#define HAVE_MLIB 1'
3997 _inc_mlib=" -I${_mlibdir}/include "
3998 _ld_mlib=" -L${_mlibdir}/lib -R${_mlibdir}/lib -lmlib "
3999 else
4000 _def_mlib='#undef HAVE_MLIB'
4002 echores "$_mlib"
4005 echocheck "SGI audio"
4006 if test "$_sgiaudio" = auto ; then
4007 # check for SGI audio
4008 cat > $TMPC << EOF
4009 #include <dmedia/audio.h>
4010 int main(void) { return 0; }
4012 _sgiaudio=no
4013 cc_check && _sgiaudio=yes
4015 if test "$_sgiaudio" = "yes" ; then
4016 _def_sgiaudio='#define USE_SGI_AUDIO 1'
4017 _ld_sgiaudio='-laudio'
4018 _aosrc="$_aosrc ao_sgi.c"
4019 _aomodules="sgi $_aomodules"
4020 else
4021 _def_sgiaudio='#undef USE_SGI_AUDIO'
4022 _noaomodules="sgi $_noaomodules"
4024 echores "$_sgiaudio"
4027 echocheck "VCD support"
4028 if linux || bsdos || freebsd || netbsd || sunos ; then
4029 _inputmodules="vcd $_inputmodules"
4030 _def_vcd='#define HAVE_VCD 1'
4031 echores "ok"
4032 else
4033 _def_vcd='#undef HAVE_VCD'
4034 _noinputmodules="vcd $_noinputmodules"
4035 echores "not supported on this OS"
4038 echocheck "DVD support (libmpdvdkit)"
4039 if test "$_dvdkit" = auto ; then
4040 _dvdkit=no
4041 if linux || freebsd || netbsd || darwin || cygwin || mingw32 || openbsd || sunos || hpux; then
4042 test -f "./libmpdvdkit2/Makefile" && _dvdkit=yes
4043 test -f "./libmpdvdkit/Makefile" && _dvdkit=yes
4046 if test "$_dvdkit" = yes ; then
4047 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
4048 if test -f "./libmpdvdkit2/Makefile" ; then
4049 _inputmodules="mpdvdkit2 $_inputmodules"
4050 _dvdread=libmpdvdkit2
4051 _dvdkit2=yes
4052 _dvdkit=no
4053 else
4054 _inputmodules="mpdvdkit $_inputmodules"
4055 _dvdread=libmpdvdkit
4057 else
4058 _noinputmodules="mpdvdkit $_noinputmodules"
4060 _def_dvd_linux='#undef HAVE_LINUX_DVD_STRUCT'
4061 _def_dvd_bsd='#undef HAVE_BSD_DVD_STRUCT'
4062 _dev_dvd_openbsd='#undef HAVE_OPENBSD_DVD_STRUCT'
4063 _def_dvd_darwin='#undef DARWIN_DVD_IOCTL'
4064 if linux || netbsd || openbsd || bsdos ; then
4065 _def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
4066 if openbsd ; then
4067 _dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
4069 else
4070 if freebsd ; then
4071 _def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
4072 else
4073 if darwin ; then
4074 _def_dvd_darwin='#define DARWIN_DVD_IOCTL'
4078 else
4079 _noinputmodules="mpdvdkit $_noinputmodules"
4081 if test "$_dvdkit" = yes || test "$_dvdkit2" = yes; then
4082 echores "yes"
4083 else
4084 echores "no"
4087 echocheck "DVD support (libcss - old style)"
4088 if test "$_css" = auto ; then
4089 cat > $TMPC <<EOF
4090 #include <sys/types.h>
4091 #include <css.h>
4092 int main(void) { (void) CSSisEncrypted(0); return 0; }
4094 _css=no
4095 cc_check -lcss $_ld_dl && _css=yes
4097 if test "$_css" = yes ; then
4098 _def_css='#define HAVE_LIBCSS 1'
4099 test "$_csslibdir" && _ld_css="-L${_csslibdir} $_ld_css"
4100 _inputmodules="dvdcss $_inputmodules"
4101 _largefiles=yes
4102 echores "yes"
4103 else
4104 _def_css='#undef HAVE_LIBCSS'
4105 _noinputmodules="dvdcss $_noinputmodules"
4106 echores "no"
4109 echocheck "DVD support (libdvdread - new style)"
4110 if test "$_dvdread" = auto ; then
4111 cat > $TMPC << EOF
4112 #include <inttypes.h>
4113 #include <dvdread/dvd_reader.h>
4114 #include <dvdread/ifo_types.h>
4115 #include <dvdread/ifo_read.h>
4116 #include <dvdread/nav_read.h>
4117 int main(void) { return 0; }
4119 _dvdread=no
4120 if test "$_dl" = yes; then
4121 cc_check \
4122 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -ldvdread $_ld_dl && \
4123 _dvdread=yes
4126 _def_mpdvdkit="#undef USE_MPDVDKIT"
4127 case "$_dvdread" in
4128 yes)
4129 _largefiles=yes
4130 _def_dvdread='#define USE_DVDREAD 1'
4131 _ld_css='-ldvdread'
4132 _inputmodules="dvdread $_inputmodules"
4133 echores "yes"
4136 _def_dvdread='#undef USE_DVDREAD'
4137 _noinputmodules="dvdread $_noinputmodules"
4138 echores "no"
4140 libmpdvdkit)
4141 _largefiles=yes
4142 _def_dvdread='#define USE_DVDREAD 1'
4143 _ld_css='-Llibmpdvdkit -lmpdvdkit'
4144 _noinputmodules="dvdread $_noinputmodules"
4145 _def_mpdvdkit="#define USE_MPDVDKIT 1"
4146 echores "disabled by libmpdvdkit"
4148 libmpdvdkit2)
4149 _largefiles=yes
4150 _def_dvdread='#define USE_DVDREAD 1'
4151 _ld_css='-Llibmpdvdkit2 -lmpdvdkit'
4152 _noinputmodules="dvdread $_noinputmodules"
4153 _def_mpdvdkit="#define USE_MPDVDKIT 2"
4154 echores "disabled by libmpdvdkit2"
4156 esac
4158 # dvdnav disabled, it does not work
4159 # echocheck "DVD support (libdvdnav)"
4160 # if test "$_dvdnav" = yes ; then
4161 # cat > $TMPC <<EOF
4162 # #include <dvdnav.h>
4163 # int main(void) { dvdnav_t *dvd=0; return 0; }
4164 # EOF
4165 # _dvdnav=no
4166 # test -n "$_dvdnavdir" && _legal_dvdnavdir=-L$_dvdnavdir/.libs
4167 # if test -z "$_dvdnavconfig" ; then
4168 # if ( dvdnav-config --version ) >/dev/null 2>&1 ; then
4169 # _dvdnavconfig="dvdnav-config"
4170 # fi
4171 # fi
4172 # test -z "$_dvdnavdir" && test -n "$_dvdnavconfig" && _dvdnavdir=`$_dvdnavconfig --cflags`
4173 # _used_css=
4174 # test "$_dvdkit" = no && test "$_dvdkit2" = no && _used_css=$_ld_css
4175 # cc_check $_inc_extra -I$_dvdnavdir $_legal_dvdnavdir -ldvdnav $_used_css $_ld_dl $_ld_pthread && _dvdnav=yes
4176 # fi
4177 # if test "$_dvdnav" = yes ; then
4178 # _largefiles=yes
4179 # _def_dvdnav='#define USE_DVDNAV 1'
4180 # if test -n "$_legal_dvdnavdir" ; then
4181 # _ld_css="$_ld_css $_legal_dvdnavdir -ldvdnav"
4182 # elif test -n "$_dvdnavconfig" ; then
4183 # _ld_css="$_ld_css `$_dvdnavconfig --libs`"
4184 # else
4185 # _ld_css="$_ld_css -ldvdnav"
4186 # fi
4187 # if test -n "$_dvdnavconfig" ; then
4188 # _dvdnav_version=`$_dvdnavconfig --version | sed "s/\.//g"`
4189 # _def_dvdnav_version="#define DVDNAVVERSION $_dvdnav_version"
4190 # fi
4191 # if test -n "$_dvdnavdir" ; then
4192 # _inc_extra="$_inc_extra -I$_dvdnavdir"
4193 # fi
4194 # _inputmodules="dvdnav $_inputmodules"
4195 # echores "yes"
4196 # else
4197 # _def_dvdnav='#undef USE_DVDNAV'
4198 # _noinputmodules="dvdnav $_noinputmodules"
4199 # echores "no"
4200 # fi
4202 echocheck "cdparanoia"
4203 if test "$_cdparanoia" = auto ; then
4204 cat > $TMPC <<EOF
4205 #include <cdda_interface.h>
4206 #include <cdda_paranoia.h>
4207 // This need a better test. How ?
4208 int main(void) { return 1; }
4210 _cdparanoia=no
4211 if cc_check $_inc_cdparanoia $_ld_cdparanoia -lcdda_interface -lcdda_paranoia -lm ; then
4212 _cdparanoia=yes
4213 else
4214 for I in /usr/include/cdda /usr/local/include/cdda ; do
4215 if cc_check -I$I $_ld_cdparanoia -lcdda_interface -lcdda_paranoia -lm ; then
4216 _cdparanoia=yes; _inc_cdparanoia="-I$I"; break
4218 done
4221 if test "$_cdparanoia" = yes ; then
4222 _def_cdparanoia='#define HAVE_CDDA'
4223 _inputmodules="cdda $_inputmodules"
4224 _ld_cdparanoia="$_ld_cdparanoia -lcdda_interface -lcdda_paranoia"
4225 openbsd && _ld_cdparanoia="$_ld_cdparanoia -lutil"
4226 else
4227 _def_cdparanoia='#undef HAVE_CDDA'
4228 _noinputmodules="cdda $_noinputmodules"
4230 echores "$_cdparanoia"
4232 echocheck "freetype >= 2.0.9"
4233 if test "$_freetype" = auto ; then
4234 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
4235 cat > $TMPC << EOF
4236 #include <stdio.h>
4237 #include <ft2build.h>
4238 #include FT_FREETYPE_H
4239 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
4240 #error "Need FreeType 2.0.9 or newer"
4241 #endif
4242 int main()
4244 FT_Library library;
4245 FT_Int major=-1,minor=-1,patch=-1;
4246 int err=FT_Init_FreeType(&library);
4247 if(err){
4248 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
4249 exit(err);
4251 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
4252 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
4253 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
4254 (int)major,(int)minor,(int)patch );
4255 if(major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR){
4256 printf("Library and header version mismatch! Fix it in your distribution!\n");
4257 exit(1);
4259 return 0;
4262 _freetype=no
4263 cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && ( $TMPO >> "$TMPLOG" ) && _freetype=yes
4264 else
4265 _freetype=no
4268 if test "$_freetype" = yes ; then
4269 _def_freetype='#define HAVE_FREETYPE'
4270 _inc_freetype=`$_freetypeconfig --cflags`
4271 _ld_freetype=`$_freetypeconfig --libs`
4272 else
4273 _def_freetype='#undef HAVE_FREETYPE'
4275 echores "$_freetype"
4278 echocheck "fribidi with charsets"
4279 if test "$_fribidi" = yes ; then
4280 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
4281 cat > $TMPC << EOF
4282 #include <stdio.h>
4283 #include <fribidi/fribidi.h>
4284 int main()
4286 if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHARSET_UTF8) {
4287 printf("Fribidi headers are not consistents with the library!\n");
4288 exit(1);
4290 return 0;
4293 _fribidi=no
4294 cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && ( $TMPO >> "$TMPLOG" ) && _fribidi=yes
4295 else
4296 _fribidi=no
4299 if test "$_fribidi" = yes ; then
4300 _def_fribidi='#define USE_FRIBIDI'
4301 _inc_fribidi=`$_fribidiconfig --cflags`
4302 _ld_fribidi=`$_fribidiconfig --libs`
4303 else
4304 _def_fribidi='#undef USE_FRIBIDI'
4306 echores "$_fribidi"
4309 echocheck "zlib"
4310 cat > $TMPC << EOF
4311 #include <zlib.h>
4312 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
4314 _zlib=no
4315 cc_check -lz && _zlib=yes
4316 if test "$_zlib" = yes ; then
4317 _def_zlib='#define HAVE_ZLIB 1'
4318 _ld_zlib='-lz'
4319 else
4320 _def_zlib='#undef HAVE_ZLIB'
4322 echores "$_zlib"
4325 echocheck "RTC"
4326 if linux ; then
4327 if test "$_rtc" = auto ; then
4328 cat > $TMPC << EOF
4329 #include <sys/ioctl.h>
4330 #include <linux/rtc.h>
4331 int main(void) { return RTC_IRQP_READ; }
4333 _rtc=no
4334 cc_check && _rtc=yes
4336 echores "$_rtc"
4337 else
4338 _rtc=no
4339 echores "no (Linux specific feature)"
4341 if test "$_rtc" = yes ; then
4342 _def_rtc='#define HAVE_RTC 1'
4343 else
4344 _def_rtc='#undef HAVE_RTC'
4348 echocheck "external liblzo support"
4349 if test "$_liblzo" = auto ; then
4350 _liblzo=no
4351 cat > $TMPC << EOF
4352 #include <lzo1x.h>
4353 int main(void) { lzo_init();return 0; }
4355 cc_check -llzo && _liblzo=yes
4357 if test "$_liblzo" = yes ; then
4358 _def_liblzo='#define USE_LIBLZO 1'
4359 _ld_liblzo='-llzo'
4360 _codecmodules="liblzo $_codecmodules"
4361 else
4362 _def_liblzo='#undef USE_LIBLZO'
4363 _nocodecmodules="liblzo $_nocodecmodules"
4365 echores "$_liblzo"
4368 echocheck "mad support"
4369 if test "$_mad" = auto ; then
4370 _mad=no
4371 cat > $TMPC << EOF
4372 #include <mad.h>
4373 int main(void) { return 0; }
4375 cc_check $_madlibdir -lmad && _mad=yes
4377 if test "$_mad" = yes ; then
4378 _def_mad='#define USE_LIBMAD 1'
4379 _ld_mad='-lmad'
4380 _codecmodules="libmad $_codecmodules"
4381 else
4382 _def_mad='#undef USE_LIBMAD'
4383 _nocodecmodules="libmad $_nocodecmodules"
4385 echores "$_mad"
4388 echocheck "OggVorbis support"
4389 if test "$_vorbis" = auto ; then
4390 _vorbis=no
4391 cat > $TMPC << EOF
4392 #include <vorbis/codec.h>
4393 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
4395 cc_check -lvorbis -logg -lm && _vorbis=yes
4397 if test "$_vorbis" = yes ; then
4398 _def_vorbis='#define HAVE_OGGVORBIS 1'
4399 if test "$_tremor" = yes ; then
4400 _def_tremor='#define TREMOR 1'
4401 _ld_vorbis='-lvorbisidec'
4402 else
4403 _def_tremor='#undef TREMOR'
4404 _ld_vorbis='-lvorbis -logg'
4406 _codecmodules="libvorbis $_codecmodules"
4407 else
4408 _def_vorbis='#undef HAVE_OGGVORBIS'
4409 _def_tremor='#undef TREMOR'
4410 _nocodecmodules="libvorbis $_nocodecmodules"
4412 if test "$_vorbis" = yes -a "$_tremor" = yes ; then
4413 echores "$_vorbis (Tremor)"
4414 else
4415 echores "$_vorbis"
4418 echocheck "OggTheora support (only the CVS version!)"
4419 if test "$_theora" = auto ; then
4420 _theora=no
4421 cat > $TMPC << EOF
4422 #include <theora/theora.h>
4423 #include <string.h>
4424 int main(void)
4426 /* theora is in flux, make sure that all interface routines and
4427 * datatypes exist and work the way we expect it, so we don't break
4428 * mplayer */
4429 ogg_packet op;
4430 theora_comment tc;
4431 theora_info inf;
4432 theora_state st;
4433 yuv_buffer yuv;
4434 int r;
4435 double t;
4437 theora_info_init (&inf);
4438 theora_comment_init (&tc);
4440 return 0;
4442 /* we don't want to execute this kind of nonsense; just for making sure
4443 * that compilation works... */
4444 memset(&op, 0, sizeof(op));
4445 r = theora_decode_header (&inf, &tc, &op);
4446 r = theora_decode_init (&st, &inf);
4447 t = theora_granule_time (&st, op.granulepos);
4448 r = theora_decode_packetin (&st, &op);
4449 r = theora_decode_YUVout (&st, &yuv);
4450 theora_clear (&st);
4452 return 0;
4455 cc_check -ltheora -logg -lm && _theora=yes
4457 if test "$_theora" = yes ; then
4458 _def_theora='#define HAVE_OGGTHEORA 1'
4459 _codecmodules="libtheora $_codecmodules"
4460 _ld_theora="-ltheora -logg"
4461 else
4462 _def_theora='#undef HAVE_OGGTHEORA'
4463 _nocodecmodules="libtheora $_nocodecmodules"
4465 echores "$_theora"
4468 echocheck "Matroska support (0.6.0 or later)"
4469 if test "$_matroska" != no ; then
4470 _matroska=no
4471 _TMPC=$TMPC
4472 TMPC=${TMPC}pp
4473 cat > $TMPC << EOF
4474 #include <ebml/EbmlVersion.h>
4475 #include <matroska/KaxVersion.h>
4477 #if LIBEBML_VERSION < 000600
4478 #error libebml is too old
4479 #endif
4481 #if LIBMATROSKA_VERSION < 000600
4482 #error libmatroska is too old
4483 #endif
4485 int main(void) { return 0; }
4487 cc_check -lmatroska -lebml -lstdc++ && _matroska=yes
4488 if test "$_matroska" = no ; then
4489 _saved_inc_extra=$_inc_extra
4490 _inc_extra="$_inc_extra -I/usr/local/include"
4491 cc_check -lmatroska -lebml -lstdc++ && _matroska=yes
4492 if test "$_matroska" = no ; then
4493 _inc_extra=$_saved_inc_extra
4496 rm ${TMPC} > /dev/null 2> /dev/null
4497 TMPC=$_TMPC
4499 if test "$_matroska" = yes ; then
4500 _def_matroska='#define HAVE_MATROSKA 1'
4501 _inputmodules="matroska $_inputmodules"
4502 _ld_matroska="-lmatroska -lebml -lstdc++"
4503 else
4504 _def_matroska='#undef HAVE_MATROSKA'
4505 _noinputmodules="matroska $_noinputmodules"
4507 echores "$_matroska"
4511 echocheck "internal FAAD2 (AAC) support"
4512 _inc_faad="-I`pwd`/libfaad2"
4513 if test "$_faad_internal" = auto ; then
4514 # the faad check needs a config.h file
4515 if not test -f "config.h" ; then
4516 > config.h
4518 # internal faad: check if our dear gcc is able to compile it...
4519 cp "`pwd`/libfaad2/cfft.c" $TMPC
4520 if ( cc_check -c -O4 $_march $_mcpu -pipe -ffast-math -fomit-frame-pointer $_inc_faad ); then
4521 _faad_internal=yes
4522 else
4523 _faad_internal="no (broken gcc)"
4526 if test "$_faad_internal" = yes ; then
4527 _def_faad_internal="#define USE_INTERNAL_FAAD 1"
4528 _faad_external=no
4529 else
4530 _def_faad_internal="#undef USE_INTERNAL_FAAD"
4531 _inc_faad=
4533 echores "$_faad_internal"
4536 echocheck "external FAAD2 (AAC) support"
4537 if test "$_faad_external" != no ; then
4538 _ld_faad='-lfaad'
4539 _inc_faad="$_inc_extra"
4540 # external faad: check if it's really faad2 :)
4541 if test "$_faad_external" = auto ; then
4542 _faad_external=no
4543 cat > $TMPC << EOF
4544 #include <faad.h>
4545 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo; testhand = faacDecOpen(); return 0; }
4547 cc_check $_inc_faad $_ld_faad -lm && _faad_external=yes
4549 echores "$_faad_external"
4550 else
4551 echores "no"
4554 if test "$_faad_internal" = yes -o "$_faad_external" = yes; then
4555 echocheck "FAAD2 version"
4556 cat > $TMPC <<EOF
4557 #include <faad.h>
4558 #ifndef FAAD_MIN_STREAMSIZE
4559 #error Too old version
4560 #endif
4561 int main(void) {
4562 #ifdef FAAD2_VERSION
4563 printf("%s\n",FAAD2_VERSION);
4564 #else
4565 printf("1.0\n");
4566 #endif
4567 return 0;
4570 if cc_check -I- $_inc_faad $_ld_faad -lm && "$TMPO" >> "$TMPLOG" ; then
4571 _faad_version=`"$TMPO"`
4572 _faad_tempversion=`"$TMPO" | sed -e 's/^\([0-9]\{1,\}\)\.\([0-9]\{1,\}\).*/\1\2/'`
4573 _def_faad_version="#define FAADVERSION $_faad_tempversion"
4574 echores "$_faad_version"
4575 else
4576 _faad_external=no
4577 _faad_internal=no
4578 echores "failed to get version"
4582 if test "$_faad_external" = yes; then
4583 _def_faad='#define HAVE_FAAD 1'
4584 _codecmodules="faad2(external) $_codecmodules"
4585 elif test "$_faad_internal" = yes; then
4586 _def_faad='#define HAVE_FAAD 1'
4587 _codecmodules="faad2(internal) $_codecmodules"
4588 else
4589 _def_faad='#undef HAVE_FAAD'
4590 _nocodecmodules="faad2 $_nocodecmodules"
4591 _ld_faad=
4596 if test "$_win32" = auto ; then
4597 if x86 ; then
4598 qnx && _win32=no
4599 else
4600 _win32=no # x86 arch only
4604 if test "$_win32" != no ; then
4605 if test -z "$_win32libdir" ; then
4606 for I in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/win32 /usr/lib/win32 ; do
4607 if test -d "$I" ; then
4608 _win32libdir="$I"
4609 break;
4611 done
4615 echocheck "Win32 codec DLL support"
4616 if test "$_win32" = auto ; then
4617 _win32=no
4618 test -n "$_win32libdir" && _win32=yes
4620 if test "$_win32" = yes ; then
4621 _def_win32='#define USE_WIN32DLL 1'
4622 echores "yes (using $_win32libdir)"
4623 else
4624 _def_win32='#undef USE_WIN32DLL'
4625 _nocodecmodules="win32 $_nocodecmodules"
4626 _dshow=no
4627 echores "no"
4630 if test "$_win32" != no ; then
4631 _def_win32_loader='#undef WIN32_LOADER'
4632 echocheck "Win32 loader support"
4633 if not cygwin && not mingw32 ; then
4634 _ld_win32='loader/libloader.a'
4635 _dep_win32='loader/libloader.a'
4636 _codecmodules="win32 $_codecmodules"
4637 if openbsd ; then
4638 x86 && _ld_win32="$_ld_win32 -li386"
4640 _def_win32_loader='#define WIN32_LOADER 1'
4641 echores "yes"
4642 else
4643 _ld_win32='loader/driver.o loader/vfl.o loader/afl.o'
4644 _dep_win32='loader/driver.o loader/vfl.o loader/afl.o'
4645 _ld_win32libs="$_ld_win32libs -ladvapi32 -lole32"
4646 _codecmodules="win32 $_codecmodules"
4647 echores "no (using native windows)"
4651 echocheck "DirectShow"
4652 if false ; then
4654 if test "$_dshow" != no ; then
4655 _dshow=no
4656 # check if compiler supports C++ and C++-libs are installed correctly
4657 cat > "$TMPCPP" << EOF
4658 #include <string>
4659 class myclass {
4660 private: int ret;
4661 public: int myreturn(void);
4663 int myclass::myreturn(void) { ret = 0; return ret ; }
4664 int main(void) { myclass myobject; return myobject.myreturn(); }
4666 echo "------------------------------------------------" >> "$TMPLOG"
4667 cat "$TMPCPP" >> "$TMPLOG"
4668 if ( $_cc "$TMPCPP" -o "$TMPO" && "$TMPO" ) >> "$TMPLOG" 2>&1 ; then
4669 _dshow=yes
4670 echores "yes (C++ is ok)"
4671 else
4672 echores "no"
4673 cat << EOF
4675 Your C++ runtime environment is broken.
4677 Hints: Does $_cc support C++? Do you have you a C++ compiler installed?
4678 Are the C++ libraries correctly installed?
4679 Check for libstdc++ and in (/etc/)ld.so.conf.
4681 If you do not need DirectShow support, you can also use:
4682 ./configure --disable-dshow <your-normal-configure-options>
4683 to disable building the C++ based DirectShow code.
4686 die "$_cc's C++ is broken"
4692 echores "$_dshow"
4694 if test "$_dshow" = yes ; then
4695 _def_dshow='#define USE_DIRECTSHOW 1'
4696 _ld_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
4697 _dep_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
4698 _codecmodules="dshow/dmo $_codecmodules"
4699 else
4700 _def_dshow='#undef USE_DIRECTSHOW'
4701 _nocodecmodules="dshow/dmo $_nocodecmodules"
4705 echocheck "XAnim DLL"
4706 if test "$_xanim" = auto ; then
4707 _xanim=no
4708 if test "$_dl" = yes ; then
4709 if test -z "$_xanimlibdir" ; then
4710 for I in "$_libdir/codecs" /usr/local/lib/xanim/mods /usr/lib/xanim/mods /usr/lib/xanim $XANIM_MOD_DIR ; do
4711 if test -d "$I" ; then
4712 _xanimlibdir="$I"
4713 break;
4715 done
4717 test "$_xanimlibdir" && _xanim=yes
4718 if test "$_xanim" = yes ; then
4719 echores "yes (using $_xanimlibdir)"
4720 else
4721 echores "no (no suitable directory found - see DOCS/HTML/en/codecs.html)"
4723 else
4724 echores "no (dynamic loader support needed)"
4726 else
4727 echores "$_xanim (using $_xanimlibdir)"
4729 if test "$_xanim" = yes ; then
4730 _def_xanim='#define USE_XANIM 1'
4731 _def_xanim_path="#define XACODEC_PATH \"$_xanimlibdir\""
4732 _codecmodules="xanim $_codecmodules"
4733 else
4734 _def_xanim='#undef USE_XANIM'
4735 _def_xanim_path='#undef XACODEC_PATH'
4736 _nocodecmodules="xanim $_nocodecmodules"
4739 echocheck "RealPlayer DLL"
4740 if test "$_real" = auto ; then
4741 _real=no
4742 if test "$_dl" = yes || test "$_win32" = yes ; then
4743 # if test "$_dl" = yes ; then
4744 if linux || freebsd || netbsd || cygwin || mingw32 ; then
4745 _real=yes
4746 else
4747 echores "no (tested only on Linux/FreeBSD/NetBSD/Cygwin/MinGW)"
4749 if test "$_real" = yes ; then
4750 if test -z "$_reallibdir" ; then
4751 for I in "$_libdir/codecs" "$_libdir/real" /usr/lib/real \
4752 /usr/lib/RealPlayer{9,8,}/Codecs /usr/local/RealPlayer{9,8,}/Codecs \
4753 /usr/local/lib/RealPlayer{9,8,}/Codecs /opt/RealPlayer{9,8,}/{Real/,}Codecs \
4754 "$_win32libdir"; do
4755 if test -d "$I" ; then
4756 _reallibdir="$I"
4757 break
4759 done
4761 test "$_reallibdir" || _real=no
4762 if test "$_real" = yes ; then
4763 echores "yes (using $_reallibdir)"
4764 else
4765 echores "no (no suitable directory found - see DOCS/HTML/en/codecs.html)"
4768 else
4769 echores "no (dynamic loader support needed)"
4771 else
4772 echores "$_real (using $_reallibdir)"
4774 if test "$_real" = yes ; then
4775 _def_real='#define USE_REALCODECS 1'
4776 _def_real_path="#define REALCODEC_PATH \"$_reallibdir\""
4777 _codecmodules="real $_codecmodules"
4778 else
4779 _def_real='#undef USE_REALCODECS'
4780 _def_real_path="#undef REALCODEC_PATH"
4781 _nocodecmodules="real $_nocodecmodules"
4785 if test -z "$_livelibdir" ; then
4786 for I in $_libdir/live /usr/lib/live /usr/local/live /usr/local/lib/live; do
4787 if test -d "$I" ; then
4788 _livelibdir="$I"
4789 break;
4791 done
4794 echocheck "LIVE.COM Streaming Media libraries"
4795 if test "$_live" = auto && test "$_network" = yes ; then
4796 _live=yes
4797 test "$_livelibdir" || _live=no
4798 # TODO: deeper, more reliable test of libs, and version!
4799 # (users may have empty live/ dir or something different there, for
4800 # example 'live config files', or they may have old, incompatibel version)
4802 if test "$_live" = yes && test "$_network" = yes ; then
4803 echores "yes (using $_livelibdir)"
4804 _def_live='#define STREAMING_LIVE_DOT_COM 1'
4805 _live_libs_def="# LIVE.COM Streaming Media libraries:
4806 LIVE_LIB_DIR = $_livelibdir
4807 LIVE_LIBS = \$(LIVE_LIB_DIR)/liveMedia/libliveMedia.a
4808 LIVE_LIBS += \$(LIVE_LIB_DIR)/groupsock/libgroupsock.a
4809 LIVE_LIBS += \$(LIVE_LIB_DIR)/UsageEnvironment/libUsageEnvironment.a
4810 LIVE_LIBS += \$(LIVE_LIB_DIR)/BasicUsageEnvironment/libBasicUsageEnvironment.a
4811 LIVE_LIBS += -lstdc++"
4812 _ld_live='$(LIVE_LIBS)'
4813 _inputmodules="live.com $_inputmodules"
4814 else
4815 echores "no"
4816 _def_live='#undef STREAMING_LIVE_DOT_COM'
4817 _noinputmodules="live.com $_noinputmodules"
4821 echocheck "iconv"
4822 if test "$_iconv" = auto ; then
4823 _iconv_tmp='#include <iconv.h>'
4825 cat > $TMPC << EOF
4826 #include <stdio.h>
4827 #include <unistd.h>
4828 $_iconv_tmp
4829 #define INBUFSIZE 1024
4830 #define OUTBUFSIZE 4096
4832 char inbuffer[INBUFSIZE];
4833 char outbuffer[OUTBUFSIZE];
4835 int main(void) {
4836 size_t numread;
4837 iconv_t icdsc;
4838 char *tocode="UTF-8";
4839 char *fromcode="cp1250";
4840 if ((icdsc = iconv_open (tocode, fromcode)) != (iconv_t)(-1)) {
4841 while ((numread = read (0, inbuffer, INBUFSIZE))) {
4842 char *iptr=inbuffer;
4843 char *optr=outbuffer;
4844 size_t inleft=numread;
4845 size_t outleft=OUTBUFSIZE;
4846 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
4847 != (size_t)(-1)) {
4848 write (1, outbuffer, OUTBUFSIZE - outleft);
4851 if (iconv_close(icdsc) == -1)
4856 _iconv=no
4857 if cc_check -lm -liconv ; then
4858 _iconv=yes
4859 _ld_iconv='-liconv'
4860 else
4861 cc_check -lm && _iconv=yes
4864 if test "$_iconv" = yes ; then
4865 _def_iconv='#define USE_ICONV 1'
4866 else
4867 _def_iconv='#undef USE_ICONV'
4869 echores "$_iconv"
4872 echocheck "FFmpeg libavcodec (static)"
4873 if test "$_libavcodec" = auto ; then
4874 # Note: static linking is preferred to dynamic linking
4875 _libavcodec=no
4876 if test -d libavcodec && test -f libavcodec/utils.c ; then
4877 if grep avcodec_find_encoder_by_name libavcodec/utils.c > /dev/null 2>&1 ; then
4878 _libavcodec=yes
4879 echores "yes"
4880 else
4881 echores "no (old ffmpeg version, use CVS !)"
4883 else
4884 echores "no (see DOCS/HTML/en/codecs.html)"
4886 else
4887 echores "$_libavcodec"
4890 _def_haveffpostprocess='no'
4891 if test -d libavcodec && test -f libavcodec/libpostproc/postprocess.h ; then
4892 _def_haveffpostprocess='yes'
4895 if test "$_libavcodec" != yes ; then
4896 echocheck "FFmpeg libavcodec (dynamic)"
4897 if test "$_libavcodecso" = auto ; then
4898 _libavcodecso=no
4899 # FIXME : check for avcodec_find_encoder_by_name() for mencoder
4900 cat > $TMPC << EOF
4901 #define FF_POSTPROCESS 1
4902 #include <ffmpeg/avcodec.h>
4903 int main(void) {
4904 avcodec_find_encoder_by_name("");
4905 return 0;
4908 if cc_check -lavcodec -lm ; then
4909 _libavcodecso=yes
4910 echores "yes (using libavcodec.so)"
4911 else
4912 echores "no (libavcodec.so is broken/obsolete)"
4914 else
4915 echores "$_libavcodecso"
4919 _def_libavcodec='#undef USE_LIBAVCODEC'
4920 _def_libavcodecso='#undef USE_LIBAVCODEC_SO'
4921 _def_ffpostprocess='#undef FF_POSTPROCESS'
4922 if test "$_libavcodec" = yes ; then
4923 _def_libavcodec='#define USE_LIBAVCODEC 1'
4924 _ld_libavcodec='libavcodec/libavcodec.a'
4925 _dep_libavcodec='libavcodec/libavcodec.a'
4926 _def_ffpostprocess='#define FF_POSTPROCESS 1'
4927 _codecmodules="libavcodec $_codecmodules"
4928 elif test "$_libavcodecso" = yes ; then
4929 _def_libavcodec='#define USE_LIBAVCODEC 1'
4930 _def_libavcodecso='#define USE_LIBAVCODEC_SO 1'
4931 _ld_libavcodec='-lavcodec'
4932 _codecmodules="libavcodec.so $_codecmodules"
4933 else
4934 _nocodecmodules="libavcodec $_nocodecmodules"
4937 echocheck "libdv-0.9.5+"
4938 if test "$_libdv" = auto ; then
4939 _libdv=no
4940 cat > $TMPC <<EOF
4941 #include <libdv/dv.h>
4942 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
4944 cc_check -ldv -lm && _libdv=yes
4946 if test "$_libdv" = yes ; then
4947 _def_libdv='#define HAVE_LIBDV095 1'
4948 _ld_libdv="-ldv"
4949 _codecmodules="libdv $_codecmodules"
4950 else
4951 _def_libdv='#undef HAVE_LIBDV095'
4952 _nocodecmodules="libdv $_nocodecmodules"
4954 echores "$_libdv"
4956 echocheck "zr"
4957 if test "$_zr" = auto ; then
4958 #36067's seem to identify themselves as 36057PQC's, so the line
4959 #below should work for 36067's and 36057's.
4960 if grep -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci > /dev/null 2>&1; then
4961 _zr=yes
4962 else
4963 _zr=no
4966 if test "$_zr" = yes ; then
4967 if test "$_libavcodec" = yes ; then
4968 _def_zr='#define HAVE_ZR 1'
4969 _vosrc="$_vosrc vo_zr2.c vo_zr.c jpeg_enc.c"
4970 _vomodules="zr zr2 $_vomodules"
4971 echores "$_zr"
4972 else
4973 echores "libavcodec (static) is required by zr, sorry"
4974 _novomodules="zr $_novomodules"
4975 _def_zr='#undef HAVE_ZR'
4977 else
4978 _def_zr='#undef HAVE_ZR'
4979 _novomodules="zr zr2 $_novomodules"
4980 echores "$_zr"
4983 echocheck "bl"
4984 if test "$_bl" = yes ; then
4985 _def_bl='#define HAVE_BL 1'
4986 _vosrc="$_vosrc vo_bl.c"
4987 _vomodules="bl $_vomodules"
4988 else
4989 _def_bl='#undef HAVE_BL'
4990 _novomodules="bl $_novomodules"
4992 echores "$_bl"
4994 echocheck "XviD"
4995 cat > $TMPC << EOF
4996 #include <xvid.h>
4997 int main(void) { xvid_init(0, 0, 0, 0); return 0; }
4999 _ld_xvid="$_ld_xvid -lxvidcore -lm"
5000 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid ; then
5001 _xvid=yes
5002 _def_xvid3='#define HAVE_XVID3 1'
5003 _def_xvid4='#undef HAVE_XVID4'
5004 _codecmodules="xvid $_codecmodules"
5005 else
5006 cat > $TMPC << EOF
5007 #include <xvid.h>
5008 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
5010 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid ; then
5011 _xvid=yes
5012 _def_xvid3='#undef HAVE_XVID3'
5013 _def_xvid4='#define HAVE_XVID4 1'
5014 _codecmodules="xvid $_codecmodules"
5015 else
5016 _xvid=no
5017 _ld_xvid=''
5018 _def_xvid3='#undef HAVE_XVID3'
5019 _def_xvid4='#undef HAVE_XVID4'
5020 _nocodecmodules="xvid $_nocodecmodules"
5023 echores "$_xvid"
5025 _xvidcompat=no
5026 _def_decore_xvid='#undef DECORE_XVID'
5027 _def_encore_xvid='#undef ENCORE_XVID'
5028 if test "$_xvid" = yes ; then
5029 echocheck "DivX4 compatibility in XviD"
5030 cat > $TMPC << EOF
5031 #include <divx4.h>
5032 int main(void) { (void) decore(0, 0, 0, 0); return 0; }
5034 cc_check -lm "$_ld_xvid" && _xvidcompat=yes
5035 echores "$_xvidcompat"
5039 echocheck "DivX4linux/DivX5linux/OpenDivX decore"
5040 # DivX5: DEC_OPT_MEMORY_REQS - DivX4: DEC_OPT_FRAME_311
5041 cat > $TMPC << EOF
5042 #include <decore.h>
5043 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_FRAME_311; }
5045 if test "$_divx4linux" != no && cc_check -lm -ldivxdecore -lm ; then
5046 _opendivx=no
5047 _ld_decore='-ldivxdecore'
5048 _def_decore='#define NEW_DECORE 1'
5049 _def_divx='#define USE_DIVX'
5050 _def_divx5='#undef DECORE_DIVX5'
5051 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
5052 _codecmodules="divx4linux $_codecmodules"
5053 echores "DivX4linux (with libdivxdecore.so)"
5054 else
5055 # if test "$_divx4linux" != no ; then
5056 # DivX5 check
5057 # OdivxPP disabled because of:
5058 # ld: Warning: type of symbol `dering' changed from 1 to 2 in opendivx/postprocess.o
5059 cat > $TMPC << EOF
5060 #include <decore.h>
5061 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_INIT; }
5063 if test "$_divx4linux" != no && cc_check -lm -ldivxdecore -lm ; then
5064 _opendivx=no
5065 # _ld_decore='-ldivxdecore opendivx/postprocess.o'
5066 _ld_decore='-ldivxdecore'
5067 _def_decore='#define NEW_DECORE 1'
5068 _def_divx='#define USE_DIVX'
5069 _def_divx5='#define DECORE_DIVX5 1'
5070 # _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
5071 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
5072 _codecmodules="divx5linux $_codecmodules"
5073 _nocodecmodules="divx4linux $_nocodecmodules"
5074 echores "DivX5linux (with libdivxdecore.so)"
5075 elif test "$_opendivx" != no ; then
5076 _opendivx=yes
5077 _ld_decore='opendivx/libdecore.a'
5078 _def_decore='#undef NEW_DECORE'
5079 _def_divx='#define USE_DIVX'
5080 _def_divx5='#undef DECORE_DIVX5'
5081 _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
5082 _codecmodules="opendivx $_codecmodules"
5083 _nocodecmodules="divx5linux $_nocodecmodules"
5084 echores "OpenDivX"
5085 elif test "$_xvidcompat" = yes ; then
5086 _opendivx=no
5087 _ld_decore=''
5088 _def_decore='#define NEW_DECORE 1'
5089 _def_divx='#define USE_DIVX 1'
5090 _def_divx5='#undef DECORE_DIVX5'
5091 _def_decore_xvid='#define DECORE_XVID 1'
5092 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
5093 _nocodecmodules="opendivx divx5linux divx4linux $_nocodecmodules"
5094 echores "XviD compat."
5095 else
5096 _opendivx=no
5097 _ld_decore=''
5098 _def_decore='#undef NEW_DECORE'
5099 _def_divx='#undef USE_DIVX'
5100 _def_divx5='#undef DECORE_DIVX5'
5101 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
5102 _nocodecmodules="opendivx $_nocodecmodules"
5103 echores "no"
5104 fi # DivX5 check
5108 # mencoder requires (optional) those libs: libmp3lame and divx4linux encore
5109 if test "$_mencoder" != no ; then
5111 echocheck "libmp3lame (for mencoder)"
5112 _mp3lame=no
5113 cat > $TMPC <<EOF
5114 #include <lame/lame.h>
5115 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; }
5117 # Note: libmp3lame usually depends on vorbis
5118 cc_check -lmp3lame $_ld_vorbis -lm && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _mp3lame=yes
5119 if test "$_mp3lame" = yes ; then
5120 _def_mp3lame="#define HAVE_MP3LAME `$TMPO`"
5121 _def_cfg_mp3lame="#define CONFIG_MP3LAME `$TMPO`"
5122 _ld_mp3lame="-lmp3lame $_ld_vorbis"
5123 else
5124 _def_mp3lame='#undef HAVE_MP3LAME'
5125 _def_cfg_mp3lame='#undef CONFIG_MP3LAME'
5127 echores "$_mp3lame"
5130 echocheck "DivX4linux encore (for mencoder)"
5131 cat > $TMPC << EOF
5132 #include <encore2.h>
5133 int main(void) { (void) encore(0, 0, 0, 0); return 0; }
5135 if test "$_divx4linux" != no && cc_check -ldivxencore -lm ; then
5136 _def_encore='#define HAVE_DIVX4ENCORE 1'
5137 _ld_encore='-ldivxencore'
5138 echores "DivX4linux (with libdivxencore.so)"
5139 elif test "$_xvidcompat" = yes ; then
5140 _def_encore='#define HAVE_DIVX4ENCORE 1'
5141 _ld_encore=''
5142 _def_encore_xvid='#define ENCORE_XVID 1'
5143 echores "XviD compat."
5144 else
5145 _def_encore='#undef HAVE_DIVX4ENCORE'
5146 echores "no"
5151 echocheck "mencoder"
5152 _mencoder_flag='#undef HAVE_MENCODER'
5153 if test "$_mencoder" = yes ; then
5154 _mencoder_flag='#define HAVE_MENCODER'
5156 echores "$_mencoder"
5158 echocheck "fastmemcpy"
5159 # fastmemcpy check is done earlier with tests of CPU & binutils features
5160 if test "$_fastmemcpy" = yes ; then
5161 _def_fastmemcpy='#define USE_FASTMEMCPY 1'
5162 else
5163 _def_fastmemcpy='#undef USE_FASTMEMCPY'
5165 echores "$_fastmemcpy"
5167 echocheck "UniquE RAR File Library"
5168 if test "$_unrarlib" = yes ; then
5169 _def_unrarlib='#define USE_UNRARLIB 1'
5170 else
5171 _def_unrarlib='#undef USE_UNRARLIB'
5173 echores "$_unrarlib"
5175 echocheck "TV interface"
5176 if test "$_tv" = yes ; then
5177 _def_tv='#define USE_TV 1'
5178 _inputmodules="tv $_inputmodules"
5179 else
5180 _noinputmodules="tv $_noinputmodules"
5181 _def_tv='#undef USE_TV'
5183 echores "$_tv"
5185 echocheck "EDL support"
5186 if test "$_edl" = yes ; then
5187 _def_edl='#define USE_EDL'
5188 _inputmodules="edl $_inputmodules"
5189 else
5190 _noinputmodules="edl $_noinputmodules"
5191 _def_edl='#undef USE_EDL'
5193 echores "$_edl"
5195 echocheck "*BSD BrookTree 848 TV interface"
5196 if test "$_tv_bsdbt848" = auto ; then
5197 _tv_bsdbt848=no
5198 if test "$_tv" = yes ; then
5199 cat > $TMPC <<EOF
5200 #include <sys/types.h>
5201 #if defined(__NetBSD__)
5202 #include <dev/ic/bt8xx.h>
5203 #else
5204 #include <machine/ioctl_bt848.h>
5205 #endif
5206 int main(void) { return 0; }
5208 cc_check && _tv_bsdbt848=yes
5211 if test "$_tv_bsdbt848" = yes ; then
5212 _def_tv_bsdbt848='#define HAVE_TV_BSDBT848 1'
5213 _inputmodules="tv-bsdbt848 $_inputmodules"
5214 else
5215 _def_tv_bsdbt848='#undef HAVE_TV_BSDBT848'
5216 _noinputmodules="tv-bsdbt848 $_noinputmodules"
5218 echores "$_tv_bsdbt848"
5220 echocheck "Video 4 Linux TV interface"
5221 if test "$_tv_v4l" = auto ; then
5222 _tv_v4l=no
5223 if test "$_tv" = yes && linux ; then
5224 for I in /dev/video /dev/video? ; do
5225 if test -c $I ; then
5226 cat > $TMPC <<EOF
5227 #include <stdlib.h>
5228 #include <linux/videodev.h>
5229 int main(void) { return 0; }
5231 cc_check && _tv_v4l=yes
5232 break
5234 done
5237 if test "$_tv_v4l" = yes ; then
5238 _def_tv_v4l='#define HAVE_TV_V4L 1'
5239 _inputmodules="tv-v4l $_inputmodules"
5240 else
5241 _noinputmodules="tv-v4l $_noinputmodules"
5242 _def_tv_v4l='#undef HAVE_TV_V4L'
5244 echores "$_tv_v4l"
5247 echocheck "Video 4 Linux 2 TV interface"
5248 if test "$_tv_v4l2" = auto ; then
5249 _tv_v4l2=no
5250 if test "$_tv" = yes && linux ; then
5251 for I in /dev/video /dev/video? ; do
5252 if test -c $I ; then
5253 _tv_v4l2=yes
5254 break
5256 done
5259 if test "$_tv_v4l2" = yes ; then
5260 _def_tv_v4l2='#define HAVE_TV_V4L2 1'
5261 _inputmodules="tv-v4l2 $_inputmodules"
5262 else
5263 _noinputmodules="tv-v4l2 $_noinputmodules"
5264 _def_tv_v4l2='#undef HAVE_TV_V4L2'
5266 echores "$_tv_v4l2"
5269 echocheck "audio select()"
5270 if test "$_select" = no ; then
5271 _def_select='#undef HAVE_AUDIO_SELECT'
5272 elif test "$_select" = yes ; then
5273 _def_select='#define HAVE_AUDIO_SELECT 1'
5275 echores "$_select"
5278 echocheck "network"
5279 # FIXME network check
5280 if test "$_network" != no ; then
5281 _def_network='#define MPLAYER_NETWORK 1'
5282 _ld_network="$_ld_sock"
5283 _inputmodules="network $_inputmodules"
5284 else
5285 _noinputmodules="network $_noinputmodules"
5286 _def_network='#undef MPLAYER_NETWORK'
5288 echores "$_network"
5290 echocheck "ftp"
5291 if test "$_ftp" != no ; then
5292 _def_ftp='#define HAVE_FTP 1'
5293 _inputmodules="ftp $_inputmodules"
5294 else
5295 _noinputmodules="ftp $_noinputmodules"
5296 _def_ftp='#undef HAVE_FTP'
5298 echores "$_ftp"
5300 # endian testing
5301 echocheck "byte order"
5302 if test "$_big_endian" = auto ; then
5303 cat > $TMPC <<EOF
5304 #include <inttypes.h>
5305 int main(void) {
5306 volatile uint32_t i=0x01234567;
5307 return (*((uint8_t*)(&i))) == 0x67;
5310 if cc_check ; then
5311 if $TMPO ; then
5312 _big_endian=yes
5313 else
5314 _big_endian=no
5316 else
5317 echo -n "failed to autodetect byte order, defaulting to "
5320 if test "$_big_endian" = yes ; then
5321 _byte_order='Big Endian'
5322 _def_words_endian='#define WORDS_BIGENDIAN 1'
5323 else
5324 _byte_order='Little Endian'
5325 _def_words_endian='#undef WORDS_BIGENDIAN'
5327 echores "$_byte_order"
5329 echocheck "shared postprocess lib"
5330 echores "$_shared_pp"
5332 echocheck "OSD menu"
5333 if test "$_menu" = yes ; then
5334 _def_menu='#define HAVE_MENU 1'
5335 else
5336 _def_menu='#undef HAVE_MENU'
5338 echores "$_menu"
5340 # Check to see if they want QTX codecs enabled
5341 echocheck "QTX codecs"
5342 if test "$_qtx" = auto ; then
5343 _qtx=$_win32
5345 if test "$_qtx" = yes ; then
5346 _def_qtx='#define USE_QTX_CODECS 1'
5347 _codecmodules="qtx $_codecmodules"
5348 else
5349 _def_qtx='#undef USE_QTX_CODECS'
5350 _nocodecmodules="qtx $_nocodecmodules"
5352 echores "$_qtx"
5355 echocheck "Subtitles sorting"
5356 if test "$_sortsub" = yes ; then
5357 _def_sortsub='#define USE_SORTSUB 1'
5358 else
5359 _def_sortsub='#undef USE_SORTSUB'
5361 echores "$_sortsub"
5364 echocheck "XMMS inputplugin support"
5365 if test "$_xmms" = yes ; then
5367 if ( xmms-config --version ) >/dev/null 2>&1 ; then
5368 if test -z "$_xmmsplugindir" ; then
5369 _xmmsplugindir=`xmms-config --input-plugin-dir`
5371 if test -z "$_xmmslibdir" ; then
5372 _xmmslibdir=`xmms-config --exec-prefix`/lib
5374 else
5375 if test -z "$_xmmsplugindir" ; then
5376 _xmmsplugindir=/usr/lib/xmms/Input
5378 if test -z "$_xmmslibdir" ; then
5379 _xmmslibdir=/usr/lib
5383 _def_xmms='#define HAVE_XMMS 1'
5384 if darwin ; then
5385 _xmms_lib="${_xmmslibdir}/libxmms.dylib"
5386 else
5387 _xmms_lib="${_xmmslibdir}/libxmms.so.1 -export-dynamic"
5389 else
5390 _def_xmms='#undef HAVE_XMMS'
5392 echores "$_xmms"
5394 echocheck "FLAC support"
5395 if ! test "$_flac" = "no" ; then
5396 if ! test -f libmpflac/dither.c ; then
5397 _flac=no
5398 echores "no (necessary files missing)"
5399 break
5401 if ! test -f libmpflac/stream_decoder.c ; then
5402 _external_flac=yes
5404 if test "$_external_flac" = "yes" ; then
5405 cat > $TMPC << EOF
5406 #include <FLAC/stream_decoder.h>
5407 #include <stdlib.h>
5409 int main()
5411 FLAC__StreamDecoder *fdec = FLAC__stream_decoder_new();
5412 return fdec != NULL;
5415 _flac=no
5416 if cc_check -lFLAC -lm ; then
5417 _flac=external
5419 else
5420 _flac=yes
5424 if test "$_flac" = external ; then
5425 _def_flac='#define HAVE_FLAC 1'
5426 #Still use dither.c & replay_gain from libmpflac
5427 _def_mpflac='#undef USE_MPFLAC_DECODER'
5428 _mpflac='process'
5429 _ld_flac='-lFLAC -lm -Llibmpflac -lmpflac'
5430 _codecmodules="flac(external) $_codecmodules"
5431 echores "yes (using external libFLAC)"
5432 else
5433 if test "$_flac" = yes ; then
5434 _def_flac='#define HAVE_FLAC 1'
5435 #use decoder, dither.c & replay_gain from libmpflac
5436 _def_mpflac='#define USE_MPFLAC_DECODER 1'
5437 _mpflac='full'
5438 _ld_flac='-Llibmpflac -lmpflac'
5439 _codecmodules="flac(internal) $_codecmodules"
5440 echores "yes (using internal libmpflac)"
5441 else
5442 _def_flac='#undef HAVE_FLAC'
5443 _def_mpflac='#undef USE_MPFLAC_DECODER'
5444 _mpflac='none'
5445 _ld_flac=''
5446 _nocodecmodules="flac $_nocodecmodules"
5447 echores "no"
5451 echocheck "inet6"
5452 if test "$_inet6" = auto ; then
5453 cat > $TMPC << EOF
5454 #include <sys/types.h>
5455 #include <sys/socket.h>
5456 int main(void) { socket(AF_INET6, SOCK_STREAM, AF_INET6); }
5458 _inet6=no
5459 if cc_check ; then
5460 _inet6=yes
5463 if test "$_inet6" = yes ; then
5464 _def_inet6='#define HAVE_AF_INET6 1'
5465 else
5466 _def_inet6='#undef HAVE_AF_INET6'
5468 echores "$_inet6"
5471 echocheck "gethostbyname2"
5472 if test "$_gethostbyname2" = auto ; then
5473 cat > $TMPC << EOF
5474 #include <sys/types.h>
5475 #include <sys/socket.h>
5476 #include <netdb.h>
5477 int main(void) { gethostbyname2("", AF_INET); }
5479 _gethostbyname2=no
5480 if cc_check ; then
5481 _gethostbyname2=yes
5485 if test "$_gethostbyname2" = yes ; then
5486 _def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
5487 else
5488 _def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
5490 echores "$_gethostbyname2"
5492 # --------------- GUI specific tests begin -------------------
5493 echocheck "GUI"
5494 echo "$_gui"
5495 if test "$_gui" = yes ; then
5497 # Required libraries
5498 test "$_png" != yes && die "PNG support required for GUI compilation, please install libpng and libpng-dev packages."
5499 test "$_x11" != yes && die "X11 support required for GUI compilation"
5501 echocheck "XShape extension"
5502 _xshape=no
5503 if test "$_x11" = yes ; then
5504 cat > $TMPC << EOF
5505 #include <X11/Xlib.h>
5506 #include <X11/Xproto.h>
5507 #include <X11/Xutil.h>
5508 #include <X11/extensions/shape.h>
5509 #include <stdlib.h>
5510 int main(void) {
5511 char *name = ":0.0";
5512 Display *wsDisplay;
5513 int exitvar = 0;
5514 int eventbase, errorbase;
5515 if (getenv("DISPLAY"))
5516 name=getenv("DISPLAY");
5517 wsDisplay=XOpenDisplay(name);
5518 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
5519 exitvar=1;
5520 XCloseDisplay(wsDisplay);
5521 return exitvar;
5524 cc_check $_inc_x11 $_ld_x11 && _xshape=yes
5526 if test "$_xshape" = yes ; then
5527 _def_xshape='#define HAVE_XSHAPE 1'
5528 else
5529 die "The GUI requires the X11 extension XShape (which was not found)."
5531 echores "$_xshape"
5534 # Check for GTK:
5535 echocheck "gtk version"
5536 if test -z "$_gtkconfig" ; then
5537 if ( gtk-config --version ) >/dev/null 2>&1 ; then
5538 _gtkconfig="gtk-config"
5539 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
5540 _gtkconfig="gtk12-config"
5541 else
5542 die "The GUI requires GTK devel packages (which were not found)."
5545 _gtk=`$_gtkconfig --version 2>&1`
5546 _inc_gtk=`$_gtkconfig --cflags 2>&1`
5547 _ld_gtk=`$_gtkconfig --libs 2>&1`
5548 echores "$_gtk (using $_gtkconfig)"
5550 # Check for GLIB
5551 echocheck "glib version"
5552 if test -z "$_glibconfig" ; then
5553 if ( glib-config --version ) >/dev/null 2>&1 ; then
5554 _glibconfig="glib-config"
5555 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
5556 _glibconfig="glib12-config"
5557 else
5558 die "The GUI requires GLib devel packages (which were not found)"
5561 _glib=`$_glibconfig --version 2>&1`
5562 _inc_glib=`$_glibconfig --cflags 2>&1`
5563 _ld_glib=`$_glibconfig --libs 2>&1`
5564 echores "$_glib (using $_glibconfig)"
5566 _def_gui='#define HAVE_NEW_GUI 1'
5567 _ld_gui='$(GTKLIB) $(GLIBLIB)'
5569 echo "Creating Gui/config.mak"
5570 cat > Gui/config.mak << EOF
5571 # -------- Generated by configure -----------
5573 GTKINC = $_inc_gtk
5574 GTKLIBS = $_ld_gtk
5575 GLIBINC = $_inc_glib
5576 GLIBLIBS = $_ld_glib
5580 else
5581 _def_gui='#undef HAVE_NEW_GUI'
5583 # --------------- GUI specific tests end -------------------
5587 #############################################################################
5589 # Checking for CFLAGS
5590 _stripbinaries=yes
5591 if test "$_profile" != "" || test "$_debug" != "" ; then
5592 CFLAGS="-W -Wall -O2 $_march $_mcpu $_debug $_profile"
5593 if test "$_cc_major" -ge "3" ; then
5594 CFLAGS=`echo "$CFLAGS" | sed -e 's/\(-Wall\)/\1 -Wno-unused-parameter/'`
5596 _stripbinaries=no
5597 elif test -z "$CFLAGS" ; then
5598 if test "$host_arch" != "mips" ; then
5599 CFLAGS="-O4 $_march $_mcpu -pipe -ffast-math -fomit-frame-pointer"
5600 else
5601 CFLAGS="-O4 $_march $_mcpu -ffast-math -fomit-frame-pointer"
5603 # always compile with '-g' if .developer:
5604 if test -f ".developer" ; then
5605 CFLAGS="-g $CFLAGS"
5606 _stripbinaries=no
5608 else
5609 cat <<EOF
5611 MPlayer compilation will use the CFLAGS set by you, but:
5613 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
5615 It is strongly recommended to let MPlayer choose the correct CFLAGS!
5616 To do so, execute 'CFLAGS= ./configure <options>'
5620 if darwin ; then
5621 # use gnu style cpp on Darwin
5622 CFLAGS="$CFLAGS -no-cpp-precomp -DSYS_DARWIN -Wl,-bind_at_load"
5623 # libavcodec (from ffmpeg) requires CONFIG_DARWIN to enable AltiVec on Darwin/MacOSX
5624 test "$_altivec" = yes && CFLAGS="$CFLAGS -DCONFIG_DARWIN"
5626 if hpux ; then
5627 # use flag for HPUX missing setenv()
5628 CFLAGS="$CFLAGS -DHPUX"
5630 # Thread support
5631 if linux ; then
5632 CFLAGS="$CFLAGS -D_REENTRANT"
5633 elif bsd ; then
5634 # FIXME bsd needs this so maybe other OS'es
5635 CFLAGS="$CFLAGS -D_THREAD_SAFE"
5637 # 64 bit file offsets?
5638 if test "$_largefiles" = yes || freebsd ; then
5639 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
5640 if test "$_dvdread" = yes ; then
5641 # dvdread support requires this (for off64_t)
5642 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
5646 echocheck "ftello()"
5647 # if we don't have ftello map it to ftell
5648 cat > $TMPC << EOF
5649 #include <stdio.h>
5650 int main (void) { ftello(stdin); return 0; }
5652 _ftello=no
5653 cc_check && _ftello=yes
5654 if test "$_ftello" = yes ; then
5655 _def_ftello='#define HAVE_FTELLO 1'
5656 else
5657 _def_ftello='#undef HAVE_FTELLO'
5659 echores "$_ftello"
5661 # Determine OS dependent libs
5662 if cygwin ; then
5663 _confcygwin='TARGET_CYGWIN = yes'
5664 _def_confwin32='#define WIN32'
5665 #CFLAGS="$CFLAGS -D__CYGWIN__ -D__CYGWIN_USE_BIG_TYPES__"
5666 # stat.st_size with BIG_TYPES is broken (not set) ::atmos
5667 CFLAGS="$CFLAGS -D__CYGWIN__"
5668 else
5669 _confcygwin="TARGET_CYGWIN = no"
5672 if mingw32 ; then
5673 _confmingw32='TARGET_MINGW32 = yes'
5674 else
5675 _confmingw32='TARGET_MINGW32 = no'
5678 # Dynamic linking flags
5679 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
5680 _ld_dl_dynamic=''
5681 bsd && _ld_dl_dynamic='-rdynamic'
5682 test "$_xanim" = yes && _ld_dl_dynamic='-rdynamic'
5683 test "$_real" = yes && _ld_dl_dynamic='-rdynamic'
5685 _ld_arch="$_ld_arch $_ld_pthread $_ld_dl $_ld_dl_dynamic"
5686 bsdos && _ld_arch="$_ld_arch -ldvd"
5687 if netbsd ; then
5688 x86 && _ld_arch="$_ld_arch -li386"
5691 _def_debug='#undef MP_DEBUG'
5692 test "$_debug" != "" && _def_debug='#define MP_DEBUG 1'
5694 _def_linux='#undef TARGET_LINUX'
5695 linux && _def_linux='#define TARGET_LINUX 1'
5697 # TODO cleanup the VIDIX stuff here
5698 _def_vidix='#define CONFIG_VIDIX 1'
5699 test "$_vidix" = no && _def_vidix='#undef CONFIG_VIDIX'
5700 if test "$_vidix" = yes; then
5701 _vosrc="$_vosrc vo_cvidix.c"
5702 _vomodules="cvidix $_vomodules"
5703 else
5704 _novomodules="cvidix $_novomodules"
5706 if test "$_vidix" = yes && (cygwin || mingw32); then
5707 _vosrc="$_vosrc vo_winvidix.c"
5708 _vomodules="winvidix $_vomodules"
5709 else
5710 _novomodules="winvidix $_novomodules"
5712 if test "$_vidix" = yes && test "$_x11" = yes; then
5713 _vosrc="$_vosrc vo_xvidix.c"
5714 _vomodules="xvidix $_vomodules"
5715 else
5716 _novomodules="xvidix $_novomodules"
5718 echo Checking for VIDIX ... "$_vidix"
5720 _def_joystick='#undef HAVE_JOYSTICK'
5721 if test "$_joystick" = yes ; then
5722 if linux ; then
5723 # TODO add some check
5724 _def_joystick='#define HAVE_JOYSTICK 1'
5725 else
5726 _joystick="no (unsupported under $system_name)"
5729 echo Checking for joystick ... "$_joystick"
5731 echocheck "lirc"
5732 if test "$_lirc" = auto ; then
5733 _lirc=no
5734 if test -c /dev/lirc -o -c /dev/lirc/0 ; then
5735 cat > $TMPC <<EOF
5736 #include <lirc/lirc_client.h>
5737 int main(void) { return 0; }
5739 cc_check -llirc_client && _lirc=yes
5742 if test "$_lirc" = yes ; then
5743 _def_lirc='#define HAVE_LIRC 1'
5744 _ld_lirc='-llirc_client'
5745 else
5746 _def_lirc='#undef HAVE_LIRC'
5748 echores "$_lirc"
5750 echocheck "lircc"
5751 if test "$_lircc" = auto ; then
5752 _lircc=no
5753 cat > $TMPC <<EOF
5754 #include <lirc/lircc.h>
5755 int main(void) { return 0; }
5757 cc_check -llircc && _lircc=yes
5759 if test "$_lircc" = yes ; then
5760 _def_lircc='#define HAVE_LIRCC 1'
5761 _ld_lircc='-llircc'
5762 else
5763 _def_lircc='#undef HAVE_LIRCC'
5765 echores "$_lircc"
5767 #############################################################################
5768 echo "Creating config.mak"
5769 cat > config.mak << EOF
5770 # -------- Generated by configure -----------
5772 LANG = C
5773 LANGUAGES = $LANGUAGES
5774 TARGET_OS = $system_name
5775 DESTDIR =
5776 prefix = \$(DESTDIR)$_prefix
5777 BINDIR = \$(DESTDIR)$_bindir
5778 DATADIR = \$(DESTDIR)$_datadir
5779 MANDIR = \$(DESTDIR)$_mandir
5780 CONFDIR = \$(DESTDIR)$_confdir
5781 LIBDIR = \$(DESTDIR)$_libdir
5782 #AR = ar
5783 CC = $_cc
5784 AWK = $_awk
5785 RANLIB = $_ranlib
5786 INSTALL = $_install
5787 # OPTFLAGS = -O4 $_profile $_debug $_march $_mcpu -pipe -fomit-frame-pointer -ffast-math
5788 EXTRA_INC = $_inc_extra $_inc_gtk
5789 OPTFLAGS = $CFLAGS \$(EXTRA_INC)
5790 STRIPBINARIES = $_stripbinaries
5792 $_live_libs_def
5794 MPLAYER_NETWORK = $_network
5795 STREAMING_LIVE_DOT_COM = $_live
5796 MPLAYER_NETWORK_LIB = $_ld_network $_ld_live
5797 DVBIN = $_dvbin
5798 VIDIX = $_vidix
5799 SHARED_PP = $_shared_pp
5800 CONFIG_PP = yes
5801 CONFIG_RISKY = yes
5802 CONFIG_MP3LAME = $_mp3lame
5803 LIBMENU = $_menu
5804 I18NLIBS = $_i18n_libs
5805 MATROSKA = $_matroska
5806 MATROSKA_LIB = $_ld_matroska
5808 OPENDIVX = $_opendivx
5810 UNRARLIB = $_unrarlib
5811 HAVE_FFPOSTPROCESS = $_def_haveffpostprocess
5812 PNG = $_mkf_png
5813 JPEG = $_mkf_jpg
5814 GIF = $_mkf_gif
5816 EXTRA_LIB = $_ld_extra
5817 Z_LIB = $_ld_static $_ld_zlib
5818 HAVE_MLIB = $_mlib
5819 WIN32_LIB = $_ld_win32libs
5820 STATIC_LIB = $_ld_static
5822 X11_INC = $_inc_x11
5823 X11DIR = $_ld_x11
5825 HAVE_XVMC_ACCEL = $_xvmc
5827 # for libavcodec:
5828 SRC_PATH=.
5829 LIBPREF=lib
5830 LIBSUF=.a
5831 SLIBPREF=lib
5832 SLIBSUF=.so
5834 # video output
5835 X_LIB = $_ld_gl $_ld_dga $_ld_xv $_ld_xvmc $_ld_vm $_ld_xinerama $_ld_x11 $_ld_mad $_ld_sock
5836 GGI_LIB = $_ld_ggi
5837 MLIB_LIB = $_ld_mlib
5838 MLIB_INC = $_inc_mlib
5839 DXR2_INC = $_inc_dxr2
5840 DVB_INC = $_inc_dvb
5841 PNG_LIB = $_ld_png
5842 JPEG_LIB = $_ld_jpg
5843 GIF_LIB = $_ld_gif
5844 SDL_LIB = $_ld_sdl
5845 SVGA_LIB = $_ld_svga
5846 AA_LIB = $_ld_aa
5848 # audio output
5849 ALSA_LIB = $_ld_alsa
5850 NAS_LIB = $_ld_nas
5851 ARTS_LIB = $_ld_arts
5852 ARTS_INC = $_inc_arts
5853 ESD_LIB = $_ld_esd
5854 ESD_INC = $_inc_esd
5855 SGIAUDIO_LIB = $_ld_sgiaudio
5857 # input/demuxer/codecs
5858 TERMCAP_LIB = $_ld_termcap
5859 LIRC_LIB = $_ld_lirc
5860 LIRCC_LIB = $_ld_lircc
5861 CSS_USE = $_css
5862 CSS_LIB = $_ld_css
5863 DVDKIT = $_dvdkit
5864 DVDKIT2 = $_dvdkit2
5865 DVDKIT_SHARED = no
5866 SDL_INC = $_inc_sdl
5867 W32_DEP = $_dep_win32
5868 W32_LIB = $_ld_win32
5869 DS_DEP = $_dep_dshow
5870 DS_LIB = $_ld_dshow
5871 AV_DEP = $_dep_libavcodec
5872 AV_LIB = $_ld_libavcodec
5873 FAME = $_fame
5874 FAME_LIB = $_ld_fame
5875 MP1E_DEP = $_dep_mp1e
5876 MP1E_LIB = $_ld_mp1e
5877 ARCH_LIB = $_ld_arch $_ld_iconv
5878 XVID = $_xvid
5879 XVID_INC = $_inc_xvid
5880 XVID_LIB = $_ld_xvid
5881 DECORE_LIB = $_ld_decore $_ld_mp3lame
5882 MENCODER = $_mencoder
5883 ENCORE_LIB = $_ld_encore $_ld_mp3lame
5884 DIRECTFB_INC = $_inc_directfb
5885 DIRECTFB_LIB = $_ld_directfb
5886 CDPARANOIA_INC = $_inc_cdparanoia
5887 CDPARANOIA_LIB = $_ld_cdparanoia
5888 FREETYPE_INC = $_inc_freetype
5889 FREETYPE_LIB = $_ld_freetype
5890 FRIBIDI_INC = $_inc_fribidi
5891 FRIBIDI_LIB = $_ld_fribidi
5892 LIBLZO_LIB= $_ld_liblzo
5893 MAD_LIB = $_ld_mad
5894 VORBIS_LIB = $_ld_vorbis $_ld_libdv
5895 THEORA_LIB = $_ld_theora
5896 FAAD_LIB = $_ld_faad
5897 INTERNAL_FAAD = $_faad_internal
5898 SMBSUPPORT_LIB = $_ld_smb
5899 XMMS_PLUGINS = $_xmms
5900 XMMS_LIB = $_xmms_lib
5901 MACOSX = $_macosx
5902 MACOSX_FRAMEWORKS = $_macosx_frameworks
5903 FLAC_LIB = $_ld_flac
5904 MPFLAC = $_mpflac
5906 # --- Some stuff for autoconfigure ----
5907 $_target_arch
5908 $_confcygwin
5909 $_confmingw32
5910 TARGET_CPU=$iproc
5911 TARGET_MMX = $_mmx
5912 TARGET_MMX2 = $_mmx2
5913 TARGET_3DNOW = $_3dnow
5914 TARGET_3DNOWEX = $_3dnowex
5915 TARGET_SSE = $_sse
5916 TARGET_ALTIVEC = $_altivec
5918 # --- GUI stuff ---
5919 GTKLIB = $_ld_static $_ld_gtk
5920 GLIBLIB = $_ld_static $_ld_glib
5921 GTK_LIBS = $_ld_static $_ld_gui
5922 GUI = $_gui
5923 DEBUG = -DDEBUG
5927 #############################################################################
5928 echo "Creating config.h"
5929 cat > config.h << EOF
5930 /* -------- This file has been automatically generated by configure ---------
5931 Note: Any changes in it will be lost when you run configure again. */
5933 /* Protect against multiple inclusion */
5934 #ifndef MPLAYER_CONFIG_H
5935 #define MPLAYER_CONFIG_H 1
5937 /* use GNU internationalization */
5938 $_def_i18n
5940 /* missing mmap function on libc5 systems */
5941 #ifndef MAP_FAILED
5942 # define MAP_FAILED ((void *) -1)
5943 #endif
5945 /* use setlocale() function */
5946 $_def_setlocale
5948 /* Runtime CPU detection */
5949 $_def_runtime_cpudetection
5951 /* Dynamic a/v plugins */
5952 $_def_dynamic_plugins
5954 /* "restrict" keyword */
5955 #define restrict $_def_restrict_keyword
5957 #define PREFIX "$_prefix"
5959 /* define this to use simple idct with patched libavcodec */
5960 #define SIMPLE_IDCT 1
5962 #define USE_OSD 1
5963 #define USE_SUB 1
5965 /* enable/disable SIGHANDLER */
5966 $_def_sighandler
5968 /* Toggles debugging informations */
5969 $_def_debug
5971 /* Indicates that Ogle's libdvdread is available for DVD playback */
5972 $_def_dvdread
5974 /* Indicates that dvdread is from libmpdvdkit */
5975 $_def_mpdvdkit
5977 /* Additional options for libmpdvdkit*/
5978 $_def_dvd
5979 $_def_cdrom
5980 $_def_cdio
5981 $_def_dvdio
5982 $_def_bsdi_dvd
5983 $_def_dvd_bsd
5984 $_def_dvd_linux
5985 $_dev_dvd_openbsd
5986 $_def_dvd_darwin
5987 $_def_sol_scsi_h
5988 $_def_hpux_scsi_h
5989 $_def_stddef
5991 /* Common data directory (for fonts, etc) */
5992 #define MPLAYER_DATADIR "$_datadir"
5993 #define MPLAYER_CONFDIR "$_confdir"
5994 #define MPLAYER_LIBDIR "$_libdir"
5996 /* Define this to compile stream-caching support, it can be enabled via
5997 -cache <kilobytes> */
5998 #define USE_STREAM_CACHE 1
6000 /* Define to include support for XviD/Divx4Linux/OpenDivx */
6001 $_def_divx
6003 /* Define to use the new XviD/DivX4Linux library instead of open source OpenDivX */
6004 /* You have to change DECORE_LIBS in config.mak, too! */
6005 $_def_decore
6007 /* Define if you are using DivX5Linux Decore library */
6008 $_def_divx5
6010 /* Define if you are using XviD library */
6011 $_def_xvid3
6012 $_def_xvid4
6013 $_def_decore_xvid
6014 $_def_encore_xvid
6016 /* Define to include support for libdv-0.9.5 */
6017 $_def_libdv
6019 /* If build mencoder */
6020 $_mencoder_flag
6022 /* Indicates if XviD/Divx4linux encore is available
6023 Note: for mencoder */
6024 $_def_encore
6026 /* Indicates if libmp3lame is available
6027 Note: for mencoder */
6028 $_def_mp3lame
6029 $_def_cfg_mp3lame
6031 /* Define libmp1e for realtime mpeg encoding (for DXR3 and DVB cards) */
6032 $_def_mp1e
6034 /* Define this to enable avg. byte/sec-based AVI sync method by default:
6035 (use -bps or -nobps commandline option for run-time method selection)
6036 -bps gives better sync for vbr mp3 audio, it is now default */
6037 #define AVI_SYNC_BPS 1
6039 /* Undefine this if you do not want to select mono audio (left or right)
6040 with a stereo MPEG layer 2/3 audio stream. The command line option
6041 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
6042 right-only), with 0 being the default.
6044 #define USE_FAKE_MONO 1
6046 /* Undefine this if your sound card driver has no working select().
6047 If you have kernel Oops, player hangups, or just no audio, you should
6048 try to recompile MPlayer with this option disabled! */
6049 $_def_select
6051 /* define this to use iconv(3) function to codepage conversions */
6052 $_def_iconv
6054 /* define this to use RTC (/dev/rtc) for video timers (LINUX only) */
6055 $_def_rtc
6057 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
6058 #define MAX_OUTBURST 65536
6060 /* set up audio OUTBURST. Do not change this! */
6061 #define OUTBURST 512
6063 /* Define this if your system has the header file for the OSS sound interface */
6064 $_def_sys_soundcard
6066 /* Define this if your system has the header file for the OSS sound interface
6067 * in /usr/include */
6068 $_def_soundcard
6070 /* Define this if your system has the sysinfo header */
6071 $_def_sys_sysinfo
6073 /* Define this if your system uses ftello() for off_t seeking */
6075 $_def_ftello
6076 #ifndef HAVE_FTELLO
6077 # define ftello(a) ftell(a)
6078 #endif
6080 /* Define this if your system has the "malloc.h" header file */
6081 $_def_malloc
6083 /* memalign is mapped to malloc if unsupported */
6084 $_def_memalign
6085 #ifndef HAVE_MEMALIGN
6086 # define memalign(a,b) malloc(b)
6087 #endif
6089 /* Define this if your system has the "alloca.h" header file */
6090 $_def_alloca
6092 /* Define this if your system has the "sys/mman.h" header file */
6093 $_def_mman
6095 /* Define this if you have the elf dynamic linker -ldl library */
6096 $_def_dl
6098 /* Define this if you have the kstat kernel statistics library */
6099 $_def_kstat
6101 /* Define this if you have zlib */
6102 $_def_zlib
6104 /* Define this if you have shm support */
6105 $_def_shm
6107 /* Define this if your system has scandir & alphasort */
6108 $_def_scandir
6110 /* Define this if your system has strsep */
6111 $_def_strsep
6113 /* Define this if your system has vsscanf */
6114 $_def_vsscanf
6116 /* Define this if your system has no posix select */
6117 $_def_no_posix_select
6119 /* Define this if your system has gettimeofday */
6120 $_def_gettimeofday
6122 /* Define this if your system has glob */
6123 $_def_glob
6125 /* LIRC (remote control, see www.lirc.org) support: */
6126 $_def_lirc
6129 * LIRCCD (LIRC client daemon)
6130 * See http://www.dolda2000.cjb.net/~fredrik/lirccd/
6132 $_def_lircc
6135 * FLAC decoding
6137 $_def_flac
6138 $_def_mpflac
6140 /* DeCSS support using libcss */
6141 $_def_css
6143 /* DVD navigation support using libdvdnav */
6144 $_def_dvdnav
6145 $_def_dvdnav_version
6147 /* Define this to enable MPEG 1/2 image postprocessing (requires a FAST CPU!) */
6148 #define MPEG12_POSTPROC 1
6150 /* Define this to enable image postprocessing in libavcodec (requires a FAST CPU!) */
6151 $_def_ffpostprocess
6153 /* Define to include support for OpenDivx postprocessing */
6154 $_def_odivx_postprocess
6156 /* Win32 DLL support */
6157 $_def_win32
6158 #define WIN32_PATH "$_win32libdir"
6160 /* DirectShow support */
6161 $_def_dshow
6163 /* Mac OS X specific features */
6164 $_def_macosx
6166 /* Build our Win32-loader */
6167 $_def_win32_loader
6169 /* ffmpeg's libavcodec support (requires libavcodec source) */
6170 $_def_libavcodec
6171 $_def_libavcodecso
6173 /* risky codecs */
6174 #define CONFIG_RISKY 1
6176 /* Use libavcodec's decoders */
6177 #define CONFIG_DECODERS 1
6178 /* Use libavcodec's encoders */
6179 #define CONFIG_ENCODERS 1
6181 /* Use codec libs included in mplayer CVS / source dist: */
6182 #define USE_MP3LIB
6183 #define USE_LIBA52
6184 #define USE_LIBMPEG2
6186 /* Use the SVQ1 decoder in libmpcodecs - we don't want/need it with libavcodec */
6187 #ifndef USE_LIBAVCODEC
6188 #define USE_SVQ1
6189 #endif
6191 /* Use libfame encoder filter */
6192 $_def_fame
6194 /* XAnim DLL support */
6195 $_def_xanim
6196 /* Default search path */
6197 $_def_xanim_path
6199 /* RealPlayer DLL support */
6200 $_def_real
6201 /* Default search path */
6202 $_def_real_path
6204 /* LIVE.COM Streaming Media library support */
6205 $_def_live
6207 /* Use 3dnow/mmxext/sse/mmx optimized fast memcpy() [maybe buggy... signal 4]*/
6208 $_def_fastmemcpy
6210 /* Use unrarlib for Vobsubs */
6211 $_def_unrarlib
6213 /* gui support, please do not edit this option */
6214 $_def_gui
6216 /* Audio output drivers */
6217 $_def_ossaudio
6218 $_def_ossaudio_devdsp
6219 $_def_ossaudio_devmixer
6220 $_def_alsa5
6221 $_def_alsa9
6222 $_def_arts
6223 $_def_esd
6224 $_def_esd_latency
6225 $_def_sys_asoundlib_h
6226 $_def_alsa_asoundlib_h
6227 $_def_sunaudio
6228 $_def_sgiaudio
6229 $_def_win32waveout
6230 $_def_nas
6232 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
6233 #undef FAST_OSD
6234 #undef FAST_OSD_TABLE
6236 /* Enable TV Interface support */
6237 $_def_tv
6239 /* Enable EDL support */
6240 $_def_edl
6242 /* Enable Video 4 Linux TV interface support */
6243 $_def_tv_v4l
6245 /* Enable Video 4 Linux 2 TV interface support */
6246 $_def_tv_v4l2
6248 /* Enable *BSD BrookTree TV interface support */
6249 $_def_tv_bsdbt848
6251 /* Define if your processor stores words with the most significant
6252 byte first (like Motorola and SPARC, unlike Intel and VAX). */
6253 $_def_words_endian
6255 $_def_arch
6257 /* libmpeg2 wants ARCH_PPC and the rest of mplayer use ARCH_POWERPC,
6258 * define ARCH_PPC if ARCH_POWERPC is set to cope with that.
6260 #ifdef ARCH_POWERPC
6261 #define ARCH_PPC 1
6262 #endif
6264 /* the same issue as with ARCH_POWERPC but with ffmpeg/libavcodec */
6265 #ifdef ARCH_ARMV4L
6266 #define ARCH_ARM 1
6267 #endif
6269 /* only gcc3 can compile mvi instructions */
6270 $_def_gcc_mvi_support
6272 /* Define this for Cygwin build for win32 */
6273 $_def_confwin32
6275 /* Define this to any prefered value from 386 up to infinity with step 100 */
6276 #define __CPU__ $iproc
6278 $_mp_wordsize
6280 $_def_linux
6282 $_def_vcd
6284 #ifdef sun
6285 #define DEFAULT_CDROM_DEVICE "/vol/dev/aliases/cdrom0"
6286 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
6287 #elif defined(HPUX)
6288 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
6289 #define DEFAULT_DVD_DEVICE "/dev/dvd"
6290 #elif defined(WIN32)
6291 #define DEFAULT_CDROM_DEVICE "D:"
6292 #define DEFAULT_DVD_DEVICE "D:"
6293 #elif defined(SYS_DARWIN)
6294 #define DEFAULT_CDROM_DEVICE "/dev/rdiskN"
6295 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
6296 #else
6297 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
6298 #define DEFAULT_DVD_DEVICE "/dev/dvd"
6299 #endif
6302 /*----------------------------------------------------------------------------
6304 ** NOTE: Instead of modifying these definitions here, use the
6305 ** --enable/--disable options of the ./configure script!
6306 ** See ./configure --help for details.
6308 *---------------------------------------------------------------------------*/
6310 /* C99 lrintf function available */
6311 $_def_lrintf
6313 /* int_fastXY_t emulation */
6314 $_def_fast_inttypes
6316 /* nanosleep support */
6317 $_def_nanosleep
6319 /* SMB support */
6320 $_def_smbsupport
6322 /* termcap flag for getch2.c */
6323 $_def_termcap
6325 /* termios flag for getch2.c */
6326 $_def_termios
6327 $_def_termios_h
6328 $_def_termios_sys_h
6330 /* enable PNG support */
6331 $_def_png
6333 /* enable JPEG support */
6334 $_def_jpg
6336 /* enable GIF support */
6337 $_def_gif
6338 $_def_gif_4
6339 $_def_gif_tvt_hack
6341 /* enable FreeType support */
6342 $_def_freetype
6344 /* enable FriBiDi usage */
6345 $_def_fribidi
6347 /* liblzo support */
6348 $_def_liblzo
6350 /* libmad support */
6351 $_def_mad
6353 /* enable OggVorbis support */
6354 $_def_vorbis
6356 /* enable Tremor as vorbis decoder */
6357 $_def_tremor
6359 /* enable OggTheora support */
6360 $_def_theora
6362 /* enable Matroska support */
6363 $_def_matroska
6365 /* enable FAAD (AAC) support */
6366 $_def_faad
6367 $_def_faad_internal
6368 $_def_faad_version
6370 /* enable network */
6371 $_def_network
6373 /* enable ftp support */
6374 $_def_ftp
6376 /* enable winsock2 instead of Unix functions*/
6377 $_def_winsock2
6379 /* define this to use inet_aton() instead of inet_pton() */
6380 $_def_use_aton
6382 /* enables / disables cdparanoia support */
6383 $_def_cdparanoia
6385 /* enables / disables VIDIX usage */
6386 $_def_vidix
6388 /* enables / disables new input joystick support */
6389 $_def_joystick
6391 /* enables / disables QTX codecs */
6392 $_def_qtx
6394 /* enables / disables osd menu */
6395 $_def_menu
6397 /* enables / disables subtitles sorting */
6398 $_def_sortsub
6400 /* XMMS input plugin support */
6401 $_def_xmms
6402 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
6404 /* enables inet6 support */
6405 $_def_inet6
6407 /* do we have gethostbyname2? */
6408 $_def_gethostbyname2
6410 /* Extension defines */
6411 $_def_3dnow // only define if you have 3DNOW (AMD k6-2, AMD Athlon, iDT WinChip, etc.)
6412 $_def_3dnowex // only define if you have 3DNOWEX (AMD Athlon, etc.)
6413 $_def_mmx // only define if you have MMX (newer x86 chips, not P54C/PPro)
6414 $_def_mmx2 // only define if you have MMX2 (Athlon/PIII/4/CelII)
6415 $_def_sse // only define if you have SSE (Intel Pentium III/4 or Celeron II)
6416 $_def_sse2 // only define if you have SSE2 (Intel Pentium 4)
6417 $_def_altivec // only define if you have Altivec (G4)
6419 #ifdef HAVE_MMX
6420 #define USE_MMX_IDCT 1
6421 #endif
6423 $_def_altivec_h // enables usage of altivec.h
6426 $_def_mlib // Sun mediaLib, available only on solaris
6428 /* libmpeg2 uses a different feature test macro for mediaLib */
6429 #ifdef HAVE_MLIB
6430 #define LIBMPEG2_MLIB 1
6431 #endif
6433 /* libvo options */
6434 #define SCREEN_SIZE_X 1
6435 #define SCREEN_SIZE_Y 1
6436 $_def_x11
6437 $_def_xv
6438 $_def_xvmc
6439 $_def_vm
6440 $_def_xinerama
6441 $_def_gl
6442 $_def_gl_win32
6443 $_def_dga
6444 $_def_dga2
6445 $_def_sdl
6446 /* defined for SDLlib with keyrepeat bugs (before 1.2.1) */
6447 $_def_sdlbuggy
6448 $_def_directx
6449 $_def_ggi
6450 $_def_3dfx
6451 $_def_tdfxfb
6452 $_def_tdfxvid
6453 $_def_directfb
6454 $_def_directfb_version
6455 $_def_zr
6456 $_def_bl
6457 $_def_mga
6458 $_def_xmga
6459 $_def_syncfb
6460 $_def_fbdev
6461 $_def_dxr2
6462 $_def_dxr3
6463 $_def_dvb
6464 $_def_dvb_in
6465 $_def_svga
6466 $_def_vesa
6467 $_def_xdpms
6468 $_def_aa
6469 $_def_tga
6471 /* used by GUI: */
6472 $_def_xshape
6474 #if defined(HAVE_GL) || defined(HAVE_X11) || defined(HAVE_XV)
6475 #define X11_FULLSCREEN 1
6476 #endif
6478 #endif /* MPLAYER_CONFIG_H */
6481 #############################################################################
6483 echo "Creating libvo/config.mak"
6484 _voobj=`echo $_vosrc | sed -e 's/\.c/\.o/g'`
6485 cat > libvo/config.mak << EOF
6486 include ../config.mak
6487 OPTIONAL_SRCS = $_vosrc
6488 OPTIONAL_OBJS = $_voobj
6491 #############################################################################
6493 echo "Creating libao2/config.mak"
6494 _aoobj=`echo $_aosrc | sed -e 's/\.c/\.o/g'`
6495 cat > libao2/config.mak << EOF
6496 include ../config.mak
6497 OPTIONAL_SRCS = $_aosrc
6498 OPTIONAL_OBJS = $_aoobj
6501 #############################################################################
6503 echo "Creating help_mp.h"
6504 cat > help_mp.h << EOF
6506 // WARNING! This is a generated file. Do NOT edit.
6507 // See the help/ subdir for the editable files.
6509 #include "$_mp_help"
6512 if test $_mp_help != "help/help_mp-en.h"; then
6513 echo "Adding untranslated messages to help_mp.h"
6514 echo '// untranslated messages from the english master-file:' >> help_mp.h
6515 help/help_diff.sh $_mp_help <help/help_mp-en.h >> help_mp.h
6518 #############################################################################
6520 cat << EOF
6522 Config files successfully generated by ./configure !
6524 Install prefix: $_prefix
6525 Data directory: $_datadir
6526 Config direct.: $_confdir
6528 Byte order: $_byte_order
6529 Optimizing for: $_optimizing
6531 Languages:
6532 Messages/GUI: $_language
6535 echo -n " Manual pages: $LANGUAGES"
6536 test "$LANGUAGES" = en && echo -n " (no localization selected, use --language=all)"
6537 echo
6539 cat << EOF
6541 Enabled optional drivers:
6542 Input: $_inputmodules
6543 Codecs: $_codecmodules
6544 Audio output: $_aomodules
6545 Video output: $_vomodules
6546 Disabled optional drivers:
6547 Input: $_noinputmodules
6548 Codecs: $_nocodecmodules
6549 Audio output: $_noaomodules
6550 Video output: $_novomodules
6552 'config.h' and 'config.mak' contain your configuration options.
6553 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
6554 compile *** DO NOT REPORT BUGS if you tweak these files ***
6556 'make' will now compile MPlayer and 'make install' will install it.
6557 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
6562 if test "$_mtrr" = yes ; then
6563 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/en/devices.html#mtrr)"
6564 echo
6567 if test "$_sdl" = "outdated" ; then
6568 cat <<EOF
6569 You have an outdated version of libSDL installed (older than v1.1.7) and SDL
6570 support has therefore been disabled.
6572 Please upgrade to a more recent version (version 1.1.8 and above are known to
6573 work). You may get this library from: http://www.libsdl.org
6575 You need to rerun ./configure and recompile after updating SDL. If you are
6576 only interested in the libSDL audio drivers, then an older version might work.
6578 Use --enable-sdl to force usage of libSDL.
6583 if x86; then
6584 if test "$_win32" = no ; then
6585 if test "$_win32libdir" ; then
6586 echo "Failed to find a Win32 codecs dir at $_win32libdir!"
6587 else
6588 echo "Failed to find a Win32 codecs directory! (default: /usr/local/lib/codecs/)"
6590 cat << EOF
6591 Create it and copy the DLL files there! You can download the codecs from our
6592 homepage at http://www.mplayerhq.hu/MPlayer/releases/codecs/
6596 else
6597 cat <<EOF
6598 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
6599 operating system ($system_name). You may encounter a few AVI files that
6600 cannot be played due to missing Open Source video/audio codec support.
6606 cat <<EOF
6608 Check $TMPLOG if you wonder why an autodetection failed (check whether
6609 the development headers/packages are installed).
6611 If you suspect a bug, please read DOCS/HTML/en/bugreports.html.
6615 if test "$_vidix" = no ; then
6616 cat <<EOF
6617 You've disabled VIDIX. Although it would be better to PORT it instead.
6618 Have a look at the documentation for supported cards!
6623 # Last move:
6624 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"