convert some printfs to mp_msg
[mplayer/glamo.git] / configure
blobd47a7783140a31b00392a6fe6f2ee04d8dfaf935
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
23 # libaf/config.mak
25 #############################################################################
27 # Prevent locale nonsense from breaking basic text processing utils
28 LC_ALL=C
29 export LC_ALL
31 # Prefer these macros to full length text !
32 # These macros only return an error code - NO display is done
33 compile_check() {
34 echo >> "$TMPLOG"
35 cat "$1" >> "$TMPLOG"
36 echo >> "$TMPLOG"
37 echo "$_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra -o $TMPO $@" >> "$TMPLOG"
38 rm -f "$TMPO"
39 $_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra -o "$TMPO" "$@" >> "$TMPLOG" 2>&1
40 TMP="$?"
41 echo >> "$TMPLOG"
42 echo "ldd $TMPO" >> "$TMPLOG"
43 $_ldd "$TMPO" >> "$TMPLOG" 2>&1
44 echo >> "$TMPLOG"
45 return "$TMP"
48 cc_check() {
49 compile_check $TMPC $@
52 cxx_check() {
53 compile_check $TMPCPP $@ -lstdc++
56 tmp_run() {
57 "$TMPO" >> "$TMPLOG" 2>&1
60 # Display error message, flushes tempfile, exit
61 die () {
62 echo
63 echo "Error: $@" >&2
64 echo >&2
65 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"
66 echo "Check \"$TMPLOG\" if you do not understand why it failed."
67 exit 1
70 # OS test booleans functions
71 issystem() {
72 test "`echo $system_name | tr A-Z a-z`" = "`echo $1 | tr A-Z a-z`"
74 linux() { issystem "Linux" ; return "$?" ; }
75 sunos() { issystem "SunOS" ; return "$?" ; }
76 hpux() { issystem "HP-UX" ; return "$?" ; }
77 irix() { issystem "IRIX" ; return "$?" ; }
78 aix() { issystem "AIX" ; return "$?" ; }
79 cygwin() { issystem "CYGWIN" ; return "$?" ; }
80 freebsd() { issystem "FreeBSD" ; return "$?" ; }
81 netbsd() { issystem "NetBSD" ; return "$?" ; }
82 bsdos() { issystem "BSD/OS" ; return "$?" ; }
83 openbsd() { issystem "OpenBSD" ; return "$?" ; }
84 bsd() { freebsd || netbsd || bsdos || openbsd ; return "$?" ; }
85 qnx() { issystem "QNX" ; return "$?" ; }
86 darwin() { issystem "Darwin" ; return "$?" ; }
87 gnu() { issystem "GNU" ; return "$?" ; }
88 mingw32() { issystem "MINGW32" ; return "$?" ; }
89 morphos() { issystem "MorphOS" ; return "$?" ; }
90 win32() { cygwin || mingw32 ; return "$?" ; }
91 beos() { issystem "BEOS" ; return "$?" ; }
93 # arch test boolean functions
94 # x86/x86pc is used by QNX
95 x86() {
96 case "$host_arch" in
97 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
98 *) return 1 ;;
99 esac
102 x86_64() {
103 case "$host_arch" in
104 x86_64|amd64) return 0 ;;
105 *) return 1 ;;
106 esac
109 ppc() {
110 case "$host_arch" in
111 ppc) return 0;;
112 *) return 1;;
113 esac
116 alpha() {
117 case "$host_arch" in
118 alpha) return 0;;
119 *) return 1;;
120 esac
123 # not boolean test: implement the posix shell "!" operator for a
124 # non-posix /bin/sh.
125 # usage: not {command}
126 # returns exit status "success" when the execution of "command"
127 # fails.
128 not() {
129 eval "$@"
130 test $? -ne 0
133 # Use this before starting a check
134 echocheck() {
135 echo "============ Checking for $@ ============" >> "$TMPLOG"
136 echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
139 # Use this to echo the results of a check
140 echores() {
141 if test "$_res_comment" ; then
142 _res_comment="($_res_comment)"
144 echo "Result is: $@ $_res_comment" >> "$TMPLOG"
145 echo "##########################################" >> "$TMPLOG"
146 echo "" >> "$TMPLOG"
147 echo "$@ $_res_comment"
148 _res_comment=""
150 #############################################################################
152 # Check how echo works in this /bin/sh
153 case `echo -n` in
154 -n) _echo_n= _echo_c='\c' ;; # SysV echo
155 *) _echo_n='-n ' _echo_c= ;; # BSD echo
156 esac
158 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"`
160 for parm in "$@" ; do
161 if test "$parm" = "--help" || test "$parm" = "-help" || test "$parm" = "-h" ; then
162 cat << EOF
164 Usage: $0 [OPTIONS]...
166 Configuration:
167 -h, --help display this help and exit
169 Installation directories:
170 --prefix=DIR use this prefix for installing mplayer [/usr/local]
171 --bindir=DIR use this prefix for installing mplayer binary
172 [PREFIX/bin]
173 --datadir=DIR use this prefix for installing machine independent
174 data files (fonts, skins) [PREFIX/share/mplayer]
175 --mandir=DIR use this prefix for installing manpages [PREFIX/man]
176 --confdir=DIR use this prefix for installing configuration files
177 [PREFIX/etc/mplayer]
178 --libdir=DIR use this prefix for object code libraries [PREFIX/lib]
180 Optional features:
181 --disable-mencoder disable mencoder (a/v encoder) compilation [enable]
182 --enable-gui enable gmplayer compilation (GTK+ GUI) [disable]
183 --enable-old-gtk force using GTK 1.2 for GUI [disable]
184 --enable-largefiles enable support for files > 2 GBytes [disable]
185 --enable-linux-devfs set default devices to devfs ones [disable]
186 --enable-termcap use termcap database for key codes [autodetect]
187 --enable-termios use termios database for key codes [autodetect]
188 --disable-iconv do not use iconv(3) function [autodetect]
189 --disable-setlocale disable setlocale using in mplayer [autodetect]
190 --disable-langinfo do not use langinfo [autodetect]
191 --enable-lirc enable LIRC (remote control) support [autodetect]
192 --enable-lircc enable LIRCCD (LIRC client daemon) input [autodetect]
193 --enable-joystick enable joystick support [disable]
194 --disable-vm disable support X video mode extensions [autodetect]
195 --disable-xf86keysym disable support for 'multimedia' keys [autodetect]
196 --disable-tv disable TV Interface (tv/dvb grabbers) [enable]
197 --disable-tv-v4l disable Video4Linux TV Interface support [autodetect]
198 --disable-tv-v4l2 disable Video4Linux2 TV Interface support [autodetect]
199 --disable-tv-bsdbt848 disable BSD BT848 Interface support [autodetect]
200 --disable-edl disable EDL (edit decision list) support [enable]
201 --disable-rtc disable RTC (/dev/rtc) on Linux [autodetect]
202 --disable-network disable network support (for: http/mms/rtp) [enable]
203 --enable-winsock2 enable winsock2 usage [autodetect]
204 --enable-smb enable Samba (SMB) input support [autodetect]
205 --enable-live enable LIVE555 Streaming Media support [autodetect]
206 --disable-dvdread Disable libdvdread support [autodetect]
207 --disable-mpdvdkit Disable mpdvdkit/mpdvdkit2 support [autodetect]
208 --disable-cdparanoia Disable cdparanoia support [autodetect]
209 --disable-freetype Disable freetype2 font rendering support [autodetect]
210 --disable-fontconfig Disable fontconfig font lookup support [autodetect]
211 --disable-unrarlib Disable Unique RAR File Library [enabled]
212 --enable-menu Enable OSD menu support (NOT DVD MENU) [disabled]
213 --disable-sortsub Disable subtitles sorting [enabled]
214 --enable-fribidi Enable using the FriBiDi libs [autodetect]
215 --disable-enca Disable using ENCA charset oracle library [autodetect]
216 --disable-macosx Disable Mac OS X specific features [autodetect]
217 --enable-macosx-finder-support Enable Mac OS X Finder invocation parameter parsing [disabled]
218 --enable-macosx-bundle Enable Mac OS X bundle file locations [autodetect]
219 --disable-inet6 Disable IPv6 support [autodetect]
220 --disable-gethostbyname2 gethostbyname() function is not provided by the C
221 library [autodetect]
222 --disable-ftp Disable ftp support [enabled]
223 --disable-vstream Disable tivo vstream client support [autodetect]
224 --disable-pthreads Disable Posix threads support [autodetect]
226 Codecs:
227 --enable-gif enable gif support [autodetect]
228 --enable-png enable png input/output support [autodetect]
229 --enable-jpeg enable jpeg input/output support [autodetect]
230 --enable-libcdio enable external libcdio support [autodetect]
231 --enable-liblzo enable external liblzo support [autodetect]
232 --disable-win32 disable Win32 DLL support [autodetect]
233 --disable-dshow disable Win32/DirectShow support [autodetect]
234 --disable-qtx disable Quicktime codecs [autodetect]
235 --disable-xanim disable XAnim DLL support [autodetect]
236 --disable-real disable RealPlayer DLL support [autodetect]
237 --disable-xvid disable XviD codec [autodetect]
238 --disable-x264 disable H.264 encoder [autodetect]
239 --disable-divx4linux disable DivX4linux/Divx5linux codec [autodetect]
240 --enable-opendivx enable _old_ OpenDivx codec [disable]
241 --disable-libavcodec disable libavcodec [autodetect]
242 --disable-libavformat disable libavformat [autodetect]
243 --enable-libfame enable libfame realtime encoder [autodetect]
244 --disable-internal-tremor do not build internal OggVorbis support [enabled]
245 --enable-tremor-low build with lower accuracy internal tremor [disabled]
246 --enable-external-tremor build with external tremor [disabled]
247 --disable-vorbis disable OggVorbis support entirely [autodetect]
248 --disable-speex disable Speex support [autodetect]
249 --enable-theora build with OggTheora support [autodetect]
250 --disable-internal-matroska disable internal Matroska support [enabled]
251 --enable-external-faad build with external FAAD2 (AAC) support [autodetect]
252 --disable-internal-faad disable internal FAAD2 (AAC) support [autodetect]
253 --disable-faac disable support for FAAC (AAC encoder) [autodetect]
254 --disable-ladspa disable LADSPA plugin support [autodetect]
255 --disable-libdv disable libdv 0.9.5 en/decoding support [autodetect]
256 --disable-mad disable libmad (MPEG audio) support [autodetect]
257 --disable-toolame disable Toolame (MPEG layer 2 audio) support in mencoder [autodetect]
258 --disable-twolame disable Twolame (MPEG layer 2 audio) support in mencoder [autodetect]
259 --enable-xmms build with XMMS inputplugin support [disabled]
260 --disable-mp3lib disable builtin mp3lib [enabled]
261 --disable-liba52 disable builtin liba52 [enabled]
262 --enable-libdts enable libdts support [autodetect]
263 --disable-libmpeg2 disable builtin libmpeg2 [enabled]
264 --disable-musepack disable musepack support [autodetect]
265 --disable-amr_nb disable amr narrowband, floating point [autodetect]
266 --disable-amr_nb-fixed disable amr narrowband, fixed point [autodetect]
267 --disable-amr_wb disable amr wideband, floating point [autodetect]
268 --disable-codec=CODEC disable specified codec
269 --enable-codec=CODEC dnable specified codec
271 Video output:
272 --disable-vidix disable VIDIX [enable on x86 *nix]
273 --enable-gl build with OpenGL render support [autodetect]
274 --enable-dga[=n] build with DGA [n in {1, 2} ] support [autodetect]
275 --enable-vesa build with VESA support [autodetect]
276 --enable-svga build with SVGAlib support [autodetect]
277 --enable-sdl build with SDL render support [autodetect]
278 --enable-aa build with AAlib render support [autodetect]
279 --enable-caca build with CACA render support [autodetect]
280 --enable-ggi build with GGI render support [autodetect]
281 --enable-ggiwmh build with GGI libggiwmh extension [autodetect]
282 --enable-directx build with DirectX support [autodetect]
283 --enable-dxr2 build with DXR2 render support [autodetect]
284 --enable-dxr3 build with DXR3/H+ render support [autodetect]
285 --enable-dvb build with support for output via DVB-Card [autodetect]
286 --enable-dvbhead build with DVB support (HEAD version) [autodetect]
287 --enable-mga build with mga_vid (for Matrox G200/G4x0/G550) support
288 (check for /dev/mga_vid) [autodetect]
289 --enable-xmga build with mga_vid X Window support
290 (check for X & /dev/mga_vid) [autodetect]
291 --enable-xv build with Xv render support for X 4.x [autodetect]
292 --enable-xvmc build with XvMC acceleration for X 4.x [disable]
293 --enable-vm build with XF86VidMode support for X11 [autodetect]
294 --enable-xinerama build with Xinerama support for X11 [autodetect]
295 --enable-x11 build with X11 render support [autodetect]
296 --enable-fbdev build with FBDev render support [autodetect]
297 --enable-mlib build with MLIB support (Solaris only) [autodetect]
298 --enable-3dfx build with obsolete /dev/3dfx support [disable]
299 --enable-tdfxfb build with tdfxfb (Voodoo 3/banshee) support [disable]
300 --enable-directfb build with DirectFB support [autodetect]
301 --enable-zr build with ZR360[56]7/ZR36060 support [autodetect]
302 --enable-bl build with Blinkenlights support [disable]
303 --enable-tdfxvid build with tdfx_vid support [disable]
304 --disable-tga disable targa output support [enable]
305 --disable-pnm disable pnm output support [enable]
306 --disable-md5sum disable md5sum output support [enable]
308 Audio output:
309 --disable-alsa disable ALSA sound support [autodetect]
310 --disable-ossaudio disable OSS sound support [autodetect]
311 --disable-arts disable aRts sound support [autodetect]
312 --disable-esd disable esd sound support [autodetect]
313 --disable-polyp disable Polypaudio sound support [autodetect]
314 --disable-jack disable JACK sound support [autodetect]
315 --disable-nas disable NAS sound support [autodetect]
316 --disable-sgiaudio disable SGI sound support [autodetect]
317 --disable-sunaudio disable Sun sound support [autodetect]
318 --disable-win32waveout disable Windows waveout sound support [autodetect]
319 --disable-select disable using select() on audio device [enable]
321 Miscellaneous options:
322 --enable-runtime-cpudetection Enable runtime CPU detection [disable]
323 --enable-cross-compile Enable cross-compilation [autodetect]
324 --cc=COMPILER use this C compiler to build MPlayer [gcc]
325 --host-cc=COMPILER use this C compiler to build apps needed for the build process [gcc]
326 --as=ASSEMBLER use this assembler to build MPlayer [as]
327 --target=PLATFORM target platform (i386-linux, arm-linux, etc)
328 --enable-static build a statically linked binary. Set further linking
329 options with --enable-static="-lslang -lncurses"
330 --charset convert the help messages to this charset
331 --language=list a white space or comma separated list of languages
332 for translated man pages, the first language is the
333 primary and therefore used for translated messages
334 and GUI (also the environment variable \$LINGUAS is
335 honored) [en]
336 (Available: $LANGUAGES all)
337 --with-install=PATH use a custom install program (useful if your OS uses
338 a GNU-incompatible install utility by default and
339 you want to use GNU version)
340 --install-path=PATH the path to a custom install program
341 this option is obsolete and will be removed soon,
342 use --with-install instead.
344 Advanced options:
345 --enable-mmx build with MMX support [autodetect]
346 --enable-mmx2 build with MMX2 support (PIII, Athlon) [autodetect]
347 --enable-3dnow build with 3DNow! support [autodetect]
348 --enable-3dnowex build with extended 3DNow! support [autodetect]
349 --enable-sse build with SSE support [autodetect]
350 --enable-sse2 build with SSE2 support [autodetect]
351 --enable-shm build with shm support [autodetect]
352 --enable-altivec build with Altivec support (PowerPC) [autodetect]
353 --disable-fastmemcpy disable 3DNow!/SSE/MMX optimized memcpy() [enable]
354 --enable-big-endian Force byte order to big-endian [autodetect]
355 --enable-debug[=1-3] compile debugging information into mplayer [disable]
356 --enable-profile compile profiling information into mplayer [disable]
357 --disable-sighandler disable sighandler for crashes [enable]
358 --enable-crash-debug enable automatic gdb attach on crash [disable]
359 --enable-i18n _experimental_ gnu gettext() support [autodetect]
360 --enable-dynamic-plugins Enable support for dynamic a/v plugins [disable]
362 Hazardous options a.k.a. "DO NOT REPORT ANY BUGS!"
363 --disable-gcc-checking disable gcc version checking [enable]
365 Use these options if autodetection fails (Options marked with (*) accept
366 multiple paths separated by ':'):
367 --with-extraincdir=DIR extra headers (png, mad, sdl, ...) in DIR (*)
368 --with-extralibdir=DIR extra library files (png, mad, sdl, ...) in DIR (*)
369 --with-x11incdir=DIR X headers in DIR (*)
370 --with-x11libdir=DIR X library files in DIR (*)
371 --with-dxr2incdir=DIR DXR2 headers in DIR (*)
372 --with-dvbincdir=DIR DVB headers in DIR (*)
373 --with-madlibdir=DIR libmad (libmad shared library) in DIR (*)
374 --with-mlibdir=DIR libmlib (MLIB support) in DIR (Solaris only)
375 --with-codecsdir=DIR Binary codec files in DIR
376 --with-win32libdir=DIR W*ndows DLL files in DIR
377 --with-xanimlibdir=DIR XAnim DLL files in DIR
378 --with-reallibdir=DIR RealPlayer DLL files in DIR
379 --with-xvidlibdir=DIR libxvidcore (XviD) in DIR (*)
380 --with-xvidincdir=DIR XviD header in DIR (*)
381 --with-x264libdir=DIR libx264 in DIR
382 --with-x264incdir=DIR x264 header in DIR
383 --with-dtslibdir=DIR libdts library in DIR (*)
384 --with-dtsincdir=DIR libdts header in DIR (*)
385 --with-livelibdir=DIR LIVE555 Streaming Media libraries in DIR
386 --with-toolamedir=DIR path to Toolame library and include file
387 --with-xmmsplugindir=DIR XMMS plugins in DIR
388 --with-xmmslibdir=DIR libxmms.so.1 in DIR
389 --with-cdparanoiaincdir=DIR cdparanoia headers in DIR (*)
390 --with-cdparanoialibdir=DIR cdparanoia libraries (libcdda_*) in DIR (*)
391 --with-xvmclib=NAME name of adapter-specific library (e.g. XvMCNVIDIA)
392 --with-termcaplib=NAME name of library with termcap functionality
393 name should be given without leading "lib"
394 checks for "termcap" and "tinfo"
396 --with-freetype-config=PATH path to freetype-config
397 (e.g. /opt/bin/freetype-config)
398 --with-fribidi-config=PATH path to fribidi-config
399 (e.g. /opt/bin/fribidi-config)
400 --with-glib-config=PATH path to glib*-config (e.g. /opt/bin/glib-config)
401 --with-gtk-config=PATH path to gtk*-config (e.g. /opt/bin/gtk-config)
402 --with-sdl-config=PATH path to sdl*-config (e.g. /opt/bin/sdl-config)
404 This configure script is NOT autoconf-based, even though its output is similar.
405 It will try to autodetect all configuration options. If you --enable an option
406 it will be forcefully turned on, skipping autodetection. This can break
407 compilation, so you need to know what you are doing.
409 exit 0
411 done # for parm in ...
414 # 1st pass checking for vital options
415 _install=install
416 _ranlib=ranlib
417 _cc=cc
418 test "$CC" && _cc="$CC"
419 _as=auto
420 _runtime_cpudetection=no
421 _cross_compile=auto
422 for ac_option do
423 case "$ac_option" in
424 --target=*)
425 _target=`echo $ac_option | cut -d '=' -f 2`
427 --cc=*)
428 _cc=`echo $ac_option | cut -d '=' -f 2`
430 --host-cc=*)
431 _host_cc=`echo $ac_option | cut -d '=' -f 2`
433 --as=*)
434 _as=`echo $ac_option | cut -d '=' -f 2`
436 --enable-gcc-checking)
437 _skip_cc_check=no
439 --disable-gcc-checking)
440 _skip_cc_check=yes
442 --enable-static)
443 _ld_static='-static'
445 --disable-static)
446 _ld_static=''
448 --enable-static=*)
449 _ld_static="-static `echo $ac_option | cut -d '=' -f 2`"
451 --with-extraincdir=*)
452 _inc_extra=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
454 --with-extralibdir=*)
455 _ld_extra=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
457 --enable-runtime-cpudetection)
458 _runtime_cpudetection=yes
460 --disable-runtime-cpudetection)
461 _runtime_cpudetection=no
463 --enable-cross-compile)
464 _cross_compile=yes
466 --disable-cross-compile)
467 _cross_compile=no
469 --install-path=*)
470 _install=`echo $ac_option | cut -d '=' -f 2 | sed 's/\/$//'`"/install"
472 --with-install=*)
473 _install=`echo $ac_option | cut -d '=' -f 2 `
475 esac
476 done
478 # Determine our OS name and CPU architecture
479 if test -z "$_target" ; then
480 # OS name
481 system_name=`uname -s 2>&1`
482 case "$system_name" in
483 Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS|MorphOS|AIX)
485 IRIX*)
486 system_name=IRIX
488 HP-UX*)
489 system_name=HP-UX
491 [cC][yY][gG][wW][iI][nN]*)
492 system_name=CYGWIN
494 MINGW32*)
495 system_name=MINGW32
498 system_name="$system_name-UNKNOWN"
500 esac
503 # host's CPU/instruction set
504 host_arch=`uname -p 2>&1`
505 case "$host_arch" in
506 i386|sparc|ppc|alpha|arm|mips|vax)
508 powerpc) # Darwin returns 'powerpc'
509 host_arch=ppc
511 *) # uname -p on Linux returns 'unknown' for the processor type,
512 # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
514 # Maybe uname -m (machine hardware name) returns something we
515 # recognize.
517 # x86/x86pc is used by QNX
518 case "`uname -m 2>&1`" in
519 i[3-9]86*|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686|BePC) host_arch=i386 ;;
520 ia64) host_arch=ia64 ;;
521 x86_64|amd64)
522 if [ -n "`$_cc -dumpmachine | sed -n '/^x86_64-/p;/^amd64-/p'`" -a \
523 -z "`echo $CFLAGS | grep -- -m32`" ]; then
524 host_arch=x86_64
525 else
526 host_arch=i386
529 macppc|ppc|ppc64) host_arch=ppc ;;
530 alpha) host_arch=alpha ;;
531 sparc) host_arch=sparc ;;
532 sparc64) host_arch=sparc64 ;;
533 parisc*|hppa*|9000*) host_arch=hppa ;;
534 arm*) host_arch=arm ;;
535 s390) host_arch=s390 ;;
536 s390x) host_arch=s390x ;;
537 mips*) host_arch=mips ;;
538 vax) host_arch=vax ;;
539 *) host_arch=UNKNOWN ;;
540 esac
542 esac
543 else # if test -z "$_target"
544 system_name=`echo $_target | cut -d '-' -f 2`
545 case "`echo $system_name | tr A-Z a-z`" in
546 linux) system_name=Linux ;;
547 freebsd) system_name=FreeBSD ;;
548 netbsd) system_name=NetBSD ;;
549 bsd/os) system_name=BSD/OS ;;
550 openbsd) system_name=OpenBSD ;;
551 sunos) system_name=SunOS ;;
552 qnx) system_name=QNX ;;
553 morphos) system_name=MorphOS ;;
554 mingw32msvc) system_name=MINGW32 ;;
555 esac
556 # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
557 host_arch=`echo $_target | cut -d '-' -f 1 | tr '_' '-'`
560 echo "Detected operating system: $system_name"
561 echo "Detected host architecture: $host_arch"
563 # LGB: temporary files
564 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
565 test "$I" && break
566 done
568 TMPLOG="configure.log"
569 rm -f "$TMPLOG"
570 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
571 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
572 TMPO="$I/mplayer-conf-$RANDOM-$$.o"
573 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
575 # config files
577 # FIXME: A lot of stuff is installed under /usr/local
578 # NK: But we should never use this stuff implicitly since we call compiler
579 # from /usr we should be sure that there no effects from other compilers
580 # (libraries) which might be installed into /usr/local. Let users use this
581 # stuff explicitly as command line argument. In other words: It would be
582 # resonable to have only /usr/include or only /usr/local/include.
584 if freebsd ; then
585 _ld_extra="$_ld_extra -L/usr/local/lib"
586 _inc_extra="$_inc_extra -I/usr/local/include"
589 if netbsd ; then
590 for I in `echo $_ld_extra | sed 's/-L//g'` ; do
591 tmp="$tmp ` echo $I | sed 's/.*/ -L& -Wl,-R&/'`"
592 done
593 _ld_extra=$tmp
596 _ldd=ldd
597 if darwin; then
598 _ldd="otool -L"
601 if aix ; then
602 _ld_libC="-lC"
603 else
604 _ld_libC=""
607 # Check how to call 'head' and 'tail'. Newer versions spit out warnings
608 # if used as 'head -1' instead of 'head -n 1', but older versions don't
609 # know about '-n'.
610 if test "`(echo line1 ; echo line2) | head -1 2>/dev/null`" = "line1" ; then
611 _head() { head -$1 2>/dev/null ; }
612 else
613 _head() { head -n $1 2>/dev/null ; }
615 if test "`(echo line1 ; echo line2) | tail -1 2>/dev/null`" = "line2" ; then
616 _tail() { tail -$1 2>/dev/null ; }
617 else
618 _tail() { tail -n $1 2>/dev/null ; }
621 # Checking CC version...
622 if test "$_skip_cc_check" != yes ; then
623 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
624 if test "`basename $_cc`" = "icc" || test "`basename $_cc`" = "ecc"; then
625 echocheck "$_cc version"
626 cc_vendor=intel
627 cc_name=`$_cc -V 2>&1 | _head 1 | cut -d ',' -f 1`
628 cc_version=`$_cc -V 2>&1 | _head 1 | cut -d ',' -f 2 | cut -d ' ' -f 3`
629 _cc_major=`echo $cc_version | cut -d '.' -f 1`
630 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
631 # TODO verify older icc/ecc compatibility
632 case $cc_version in
634 cc_version="v. ?.??, bad"
635 cc_verc_fail=yes
637 8.0)
638 cc_version="$cc_version, ok"
639 cc_verc_fail=no
642 cc_version="$cc_version, bad"
643 cc_verc_fail=yes
645 esac
646 echores "$cc_version"
647 else
648 for _cc in "$_cc" gcc gcc-3.4 gcc-3.3 gcc-3.2 gcc-3.1 gcc3 gcc-3.0 cc ; do
649 echocheck "$_cc version"
650 cc_vendor=gnu
651 cc_name=`$_cc -v 2>&1 | _tail 1 | cut -d ' ' -f 1`
652 cc_version=`$_cc -dumpversion 2>&1`
653 if test "$?" -gt 0; then
654 cc_version="not found"
656 case $cc_version in
658 cc_version="v. ?.??, bad"
659 cc_verc_fail=yes
661 2.95.[2-9]|2.95.[2-9][-.]*|[3-4].*)
662 _cc_major=`echo $cc_version | cut -d '.' -f 1`
663 _cc_minor=`echo $cc_version | cut -d '.' -f 2`
664 _cc_mini=`echo $cc_version | cut -d '.' -f 3`
665 cc_version="$cc_version, ok"
666 cc_verc_fail=no
668 'not found')
669 cc_verc_fail=yes
672 cc_version="$cc_version, bad"
673 cc_verc_fail=yes
675 esac
676 echores "$cc_version"
677 test "$cc_verc_fail" = "no" && break
678 done
679 fi # icc
680 if test "$cc_verc_fail" = yes ; then
681 cat <<EOF
683 *** Please downgrade/upgrade C compiler to version gcc-2.95.x or gcc-3.x! ***
685 You are not using a supported compiler. We do not have the time to make sure
686 everything works with compilers other than the ones we use. Use either the
687 same compiler as we do, or use --disable-gcc-checking but DO *NOT* REPORT BUGS
688 unless you can reproduce them after recompiling with a 2.95.x or 3.x version!
690 Note for gcc 2.96 users: Some versions of this compiler are known to miscompile
691 mplayer and lame (which is used for mencoder). If you get compile errors,
692 first upgrade to the latest 2.96 release (minimum 2.96-85) and try again.
693 If the problem still exists, try with gcc 3.x (or 2.95.x) *BEFORE* reporting
694 bugs!
696 GCC 2.96 IS NOT AND WILL NOT BE SUPPORTED BY US !
698 *** For details please read DOCS/HTML/en/users-vs-dev.html ***
701 die "Bad gcc version"
703 else
704 cat <<EOF
706 ******************************************************************************
708 Hmm. You really want to compile MPlayer with an *UNSUPPORTED* C compiler?
709 Ok. You know. Do it. Did you read DOCS/HTML/en/users-vs-dev.html???
711 DO NOT SEND BUGREPORTS OR COMPLAIN, it's *YOUR* compiler's fault!
712 Get ready for mysterious crashes, no-picture bugs, strange noises... REALLY!
713 Lame which is used by mencoder produces weird errors, too.
715 If you have any problem, install a GCC 2.95.x or 3.x version and try again.
716 If the problem _still_ exists, then read DOCS/HTML/en/bugreports.html !
718 *** DO NOT SEND BUG REPORTS OR COMPLAIN it's *YOUR* compiler's fault! ***
720 ******************************************************************************
724 read _answer
727 echocheck "host cc"
728 test "$_host_cc" || _host_cc=$_cc
729 echores $_host_cc
731 echocheck "cross compilation"
732 if test $_cross_compile = auto ; then
733 cat > $TMPC << EOF
734 int main() { return 0; }
736 _cross_compile=yes
737 cc_check && "$TMPO" && _cross_compile=no
739 echores $_cross_compile
741 if test $_cross_compile = yes; then
742 tmp_run() {
743 return 0
747 # ---
749 # now that we know what compiler should be used for compilation, try to find
750 # out which assembler is used by the $_cc compiler
751 if test "$_as" = auto ; then
752 _as=`$_cc -print-prog-name=as`
753 test -z "$_as" && _as=as
756 # XXX: this should be ok..
757 _cpuinfo="echo"
758 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
759 # FIXME: Remove the cygwin check once AMD CPUs are supported
760 if test -r /proc/cpuinfo && not cygwin; then
761 # Linux with /proc mounted, extract CPU information from it
762 _cpuinfo="cat /proc/cpuinfo"
763 elif test -r /compat/linux/proc/cpuinfo && not x86 ; then
764 # FreeBSD with Linux emulation /proc mounted,
765 # extract CPU information from it
766 _cpuinfo="cat /compat/linux/proc/cpuinfo"
767 elif darwin ; then
768 # use hostinfo on Darwin
769 _cpuinfo="hostinfo"
770 elif aix; then
771 # use 'lsattr' on AIX
772 _cpuinfo="lsattr -E -l proc0"
773 elif x86; then
774 # all other OSes try to extract CPU information from a small helper
775 # program TOOLS/cpuinfo instead
776 $_cc -o TOOLS/cpuinfo TOOLS/cpuinfo.c
777 _cpuinfo="TOOLS/cpuinfo"
780 x86_exts_check()
782 pparam=`$_cpuinfo | grep 'features' | cut -d ':' -f 2 | _head 1`
783 if test -z "$pparam" ; then
784 pparam=`$_cpuinfo | grep 'flags' | cut -d ':' -f 2 | _head 1`
787 _mmx=no
788 _3dnow=no
789 _3dnowex=no
790 _mmx2=no
791 _sse=no
792 _sse2=no
793 _mtrr=no
795 for i in $pparam ; do
796 case "$i" in
797 3dnow) _3dnow=yes ;;
798 3dnowext) _3dnow=yes _3dnowex=yes ;;
799 mmx) _mmx=yes ;;
800 mmxext) _mmx2=yes ;;
801 mtrr|k6_mtrr|cyrix_arr) _mtrr=yes ;;
802 xmm|sse|kni) _sse=yes _mmx2=yes ;;
803 sse2) _sse2=yes ;;
804 esac
805 done
808 if x86 || x86_64 ; then
809 # gather more CPU information
810 pname=`$_cpuinfo | grep 'model name' | cut -d ':' -f 2 | _head 1`
811 pvendor=`$_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
812 pfamily=`$_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
813 pmodel=`$_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
814 pstepping=`$_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
816 x86_exts_check
818 echocheck "CPU vendor"
819 echores "$pvendor ($pfamily:$pmodel:$pstepping)"
821 echocheck "CPU type"
822 echores "$pname"
825 case "$host_arch" in
826 i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
827 _def_arch="#define ARCH_X86 1"
828 _target_arch="TARGET_ARCH_X86 = yes"
831 case "$pvendor" in
832 AuthenticAMD)
833 case "$pfamily" in
834 3) proc=i386 iproc=386 ;;
835 4) proc=i486 iproc=486 ;;
836 5) iproc=586 # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
837 # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
838 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
839 proc=k6-3
840 elif test "$pmodel" -ge 8; then
841 proc=k6-2
842 elif test "$pmodel" -ge 6; then
843 proc=k6
844 else
845 proc=i586
846 iproc=586
849 6) iproc=686
850 # It's a bit difficult to determine the correct type of Family 6
851 # AMD CPUs just from their signature. Instead, we check directly
852 # whether it supports SSE.
853 if test "$_sse" = yes; then
854 # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
855 proc=athlon-xp
856 else
857 # Again, gcc treats athlon and athlon-tbird similarly.
858 proc=athlon
861 15) iproc=686
862 # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
863 # caught and remedied in the optimization tests below.
864 proc=k8
867 *) proc=k8 iproc=686 ;;
868 esac
870 GenuineIntel)
871 case "$pfamily" in
872 3) proc=i386 iproc=386 ;;
873 4) proc=i486 iproc=486 ;;
874 5) iproc=586
875 if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
876 proc=pentium-mmx # 4 is desktop, 8 is mobile
877 else
878 proc=i586
881 6) iproc=686
882 if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
883 proc=pentium-m
884 elif test "$pmodel" -ge 7; then
885 proc=pentium3
886 elif test "$pmodel" -ge 3; then
887 proc=pentium2
888 else
889 proc=i686
892 15) iproc=686
893 # A nocona in 32-bit mode has no more capabilities than a prescott.
894 if test "$pmodel" -ge 3; then
895 proc=prescott
896 else
897 proc=pentium4
900 *) proc=prescott iproc=686 ;;
901 esac
903 CentaurHauls)
904 case "$pfamily" in
905 5) iproc=586
906 if test "$pmodel" -ge 8; then
907 proc=winchip2
908 elif test "$pmodel" -ge 4; then
909 proc=winchip-c6
910 else
911 proc=i586
914 6) iproc=686
915 if test "$pmodel" -ge 9; then
916 proc=c3-2
917 else
918 proc=c3
919 iproc=586
922 *) proc=i686 iproc=i686 ;;
923 esac
925 unknown)
926 case "$pfamily" in
927 3) proc=i386 iproc=386 ;;
928 4) proc=i486 iproc=486 ;;
929 *) proc=i586 iproc=586 ;;
930 esac
933 proc=i586 iproc=586 ;;
934 esac
936 # check that gcc supports our CPU, if not, fall back to earlier ones
937 # LGB: check -mcpu and -march swithing step by step with enabling
938 # to fall back till 386.
940 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
942 if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
943 cpuopt=-mtune
944 else
945 cpuopt=-mcpu
948 echocheck "GCC & CPU optimization abilities"
949 cat > $TMPC << EOF
950 int main(void) { return 0; }
952 if test "$_runtime_cpudetection" = no ; then
953 if test "$proc" = "k8" -o "$proc" = "opteron" -o "$proc" = "athlon64" -o "$proc" = "athlon-fx" ; then
954 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
956 if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" || test "$proc" = "athlon-tbird"; then
957 cc_check -march=$proc $cpuopt=$proc || proc=athlon
959 if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
960 cc_check -march=$proc $cpuopt=$proc || proc=k6
962 if test "$proc" = "k6" || test "$proc" = "c3"; then
963 if not cc_check -march=$proc $cpuopt=$proc; then
964 if cc_check -march=i586 $cpuopt=i686; then
965 proc=i586-i686
966 else
967 proc=i586
971 if test "$proc" = "pentium4" || test "$proc" = "pentium-m" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon" || test "$proc" = "c3-2"; then
972 cc_check -march=$proc $cpuopt=$proc || proc=i686
974 if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
975 cc_check -march=$proc $cpuopt=$proc || proc=i586
977 if test "$proc" = "i586"; then
978 cc_check -march=$proc $cpuopt=$proc || proc=i486
980 if test "$proc" = "i486" ; then
981 cc_check -march=$proc $cpuopt=$proc || proc=i386
983 if test "$proc" = "i386" ; then
984 cc_check -march=$proc $cpuopt=$proc || proc=error
986 if test "$proc" = "error" ; then
987 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
988 _mcpu=""
989 _march=""
990 _optimizing=""
991 elif test "$proc" = "i586-i686"; then
992 _march="-march=i586"
993 _mcpu="$cpuopt=i686"
994 _optimizing="$proc"
995 else
996 _march="-march=$proc"
997 _mcpu="$cpuopt=$proc"
998 _optimizing="$proc"
1000 else # if test "$_runtime_cpudetection" = no
1001 # i686 is probably the most common CPU - optimize for it
1002 _mcpu="$cpuopt=i686"
1003 # at least i486 required, for bswap instruction
1004 _march="-march=i486"
1005 cc_check $_mcpu || _mcpu=""
1006 cc_check $_march $_mcpu || _march=""
1009 ## Gabucino : --target takes effect here (hopefully...) by overwriting
1010 ## autodetected mcpu/march parameters
1011 if test "$_target" ; then
1012 # TODO: it may be a good idea to check GCC and fall back in all cases
1013 if test "$host_arch" = "i586-i686"; then
1014 _march="-march=i586"
1015 _mcpu="$cpuopt=i686"
1016 else
1017 _march="-march=$host_arch"
1018 _mcpu="$cpuopt=$host_arch"
1021 proc="$host_arch"
1023 case "$proc" in
1024 i386) iproc=386 ;;
1025 i486) iproc=486 ;;
1026 i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
1027 i686|athlon*|pentium*) iproc=686 ;;
1028 *) iproc=586 ;;
1029 esac
1032 echores "$proc"
1035 ia64)
1036 _def_arch='#define ARCH_IA64 1'
1037 _target_arch='TARGET_ARCH_IA64 = yes'
1038 iproc='ia64'
1039 proc=''
1040 _march=''
1041 _mcpu=''
1042 _optimizing=''
1045 x86_64|amd64)
1046 _def_arch='#define ARCH_X86_64 1'
1047 _target_arch='TARGET_ARCH_X86_64 = yes'
1048 iproc='x86_64'
1050 # gcc >= 3.4.0 doesn't support -mcpu, we have to use -mtune instead
1051 if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
1052 cpuopt=-mtune
1053 else
1054 cpuopt=-mcpu
1056 case "$pvendor" in
1057 AuthenticAMD)
1058 proc=k8;;
1059 GenuineIntel)
1060 # 64-bit prescotts exist, but as far as GCC is concerned they have the
1061 # same capabilities as a nocona.
1062 proc=nocona;;
1064 proc=error;;
1065 esac
1067 echocheck "GCC & CPU optimization abilities"
1068 cat > $TMPC << EOF
1069 int main(void) { return 0; }
1071 # This is a stripped-down version of the i386 fallback.
1072 if test "$_runtime_cpudetection" = no ; then
1073 # --- AMD processors ---
1074 if test "$proc" = "k8" -o "$proc" = "opteron" -o "$proc" = "athlon64" -o "$proc" = "athlon-fx" ; then
1075 cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
1077 # This will fail if gcc version < 3.3, which is ok because earlier
1078 # versions don't really support 64-bit on amd64.
1079 # Is this a valid assumption? -Corey
1080 if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" ; then
1081 cc_check -march=$proc $cpuopt=$proc || proc=error
1083 # --- Intel processors ---
1084 if test "$proc" = "nocona" || test "$proc" = "prescott" ; then
1085 cc_check -march=$proc $cpuopt=$proc || proc=pentium4
1087 if test "$proc" = "pentium4" || test "$proc" = "pentium4m" ; then
1088 cc_check -march=$proc $cpuopt=$proc || proc=error
1091 _march="-march=$proc"
1092 _mcpu="$cpuopt=$proc"
1093 if test "$proc" = "error" ; then
1094 echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
1095 _mcpu=""
1096 _march=""
1098 else
1099 _march=""
1100 _mcpu=""
1103 _optimizing=""
1105 echores "$proc"
1107 x86_exts_check
1110 sparc)
1111 _def_arch='#define ARCH_SPARC 1'
1112 _target_arch='TARGET_ARCH_SPARC = yes'
1113 iproc='sparc'
1114 if sunos ; then
1115 echocheck "CPU type"
1116 karch=`uname -m`
1117 case "`echo $karch`" in
1118 sun4) proc=v7 ;;
1119 sun4c) proc=v7 ;;
1120 sun4d) proc=v8 ;;
1121 sun4m) proc=v8 ;;
1122 sun4u) proc=v9 _vis='yes' _def_vis='#define HAVE_VIS = yes' ;;
1123 *) ;;
1124 esac
1125 echores "$proc"
1126 else
1127 proc=v8
1129 _march=''
1130 _mcpu="-mcpu=$proc"
1131 _optimizing="$proc"
1134 sparc64)
1135 _def_arch='#define ARCH_SPARC 1'
1136 _target_arch='TARGET_ARCH_SPARC = yes'
1137 _vis='yes'
1138 _def_vis='#define HAVE_VIS = yes'
1139 iproc='sparc'
1140 proc='v9'
1141 _march=''
1142 _mcpu="-mcpu=$proc"
1143 _optimizing="$proc"
1146 arm|armv4l|armv5tel)
1147 _def_arch='#define ARCH_ARMV4L 1'
1148 _target_arch='TARGET_ARCH_ARMV4L = yes'
1149 iproc='arm'
1150 proc=''
1151 _march=''
1152 _mcpu=''
1153 _optimizing=''
1156 ppc)
1157 _def_arch='#define ARCH_POWERPC 1'
1158 _def_dcbzl='#define NO_DCBZL 1'
1159 _target_arch='TARGET_ARCH_POWERPC = yes'
1160 iproc='ppc'
1161 proc=''
1162 _march=''
1163 _mcpu=''
1164 _optimizing=''
1165 _altivec=no
1167 echocheck "CPU type"
1168 case $system_name in
1169 Linux)
1170 proc=`$_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | _head 1`
1171 if test -n "`$_cpuinfo | grep altivec`"; then
1172 _altivec=yes
1175 Darwin)
1176 proc=`$_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//'`
1177 if [ `sysctl -n hw.vectorunit` -eq 1 -o \
1178 "`sysctl -n hw.optional.altivec 2>/dev/null`" -eq 1 ]; then
1179 _altivec=yes
1182 NetBSD)
1183 # only gcc 3.4 works reliably with AltiVec code under NetBSD
1184 case $cc_version in
1185 2*|3.0*|3.1*|3.2*|3.3*)
1188 if [ `sysctl -n machdep.altivec` -eq 1 ]; then
1189 _altivec=yes
1192 esac
1194 AIX)
1195 proc=`$_cpuinfo | grep 'type' | cut -f 7 -d ' ' | sed 's/PowerPC_//'`
1197 esac
1198 if test "$_altivec" = yes; then
1199 echores "$proc altivec"
1200 else
1201 echores "$proc"
1204 echocheck "GCC & CPU optimization abilities"
1206 if test -n "$proc"; then
1207 case "$proc" in
1208 601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
1209 603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
1210 603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
1211 604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
1212 740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
1213 750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
1214 POWER) _march='-mcpu=power' _mcpu='-mtune=power' ;;
1215 POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
1216 POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
1217 *) ;;
1218 esac
1219 # gcc 3.1(.1) and up supports 7400 and 7450
1220 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
1221 case "$proc" in
1222 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
1223 7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
1224 *) ;;
1225 esac
1227 # gcc 3.2 and up supports 970
1228 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
1229 case "$proc" in
1230 970*) _march='-mcpu=970' _mcpu='-mtune=970'
1231 _def_dcbzl='#undef NO_DCBZL' ;;
1232 *) ;;
1233 esac
1235 # gcc 3.3 and up supports POWER4
1236 if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
1237 case "$proc" in
1238 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4'
1239 _def_dcbzl='#undef NO_DCBZL' ;;
1240 *) ;;
1241 esac
1245 if test -n "$_mcpu"; then
1246 _optimizing=`echo $_mcpu | cut -c 8-`
1247 echores "$_optimizing"
1248 else
1249 echores "none"
1254 alpha)
1255 _def_arch='#define ARCH_ALPHA 1'
1256 _target_arch='TARGET_ARCH_ALPHA = yes'
1257 iproc='alpha'
1258 _march=''
1260 echocheck "CPU type"
1261 cat > $TMPC << EOF
1262 int main() {
1263 unsigned long ver, mask;
1264 asm ("implver %0" : "=r" (ver));
1265 asm ("amask %1, %0" : "=r" (mask) : "r" (-1));
1266 printf("%ld-%x\n", ver, ~mask);
1267 return 0;
1270 $_cc -o "$TMPO" "$TMPC"
1271 case `"$TMPO"` in
1273 0-0) proc="ev4"; cpu_understands_mvi="0";;
1274 1-0) proc="ev5"; cpu_understands_mvi="0";;
1275 1-1) proc="ev56"; cpu_understands_mvi="0";;
1276 1-101) proc="pca56"; cpu_understands_mvi="1";;
1277 2-303) proc="ev6"; cpu_understands_mvi="1";;
1278 2-307) proc="ev67"; cpu_understands_mvi="1";;
1279 2-1307) proc="ev68"; cpu_understands_mvi="1";;
1280 esac
1281 echores "$proc"
1283 echocheck "GCC & CPU optimization abilities"
1284 if test "$proc" = "ev68" ; then
1285 cc_check -mcpu=$proc || proc=ev67
1287 if test "$proc" = "ev67" ; then
1288 cc_check -mcpu=$proc || proc=ev6
1290 _mcpu="-mcpu=$proc"
1291 echores "$proc"
1293 _optimizing="$proc"
1295 echocheck "MVI instruction support in GCC"
1296 if test "$_cc_major" -ge "3" && test "$cpu_understands_mvi" = "1" ; then
1297 _def_gcc_mvi_support="#define CAN_COMPILE_ALPHA_MVI 1"
1298 echores "yes"
1299 else
1300 _def_gcc_mvi_support="#undef CAN_COMPILE_ALPHA_MVI"
1301 echores "no, GCC = `$_cc -dumpversion 2>&1` (must be >= 3), CPU = $proc (must be pca56 or later)"
1305 mips)
1306 _def_arch='#define ARCH_SGI_MIPS 1'
1307 _target_arch='TARGET_ARCH_SGI_MIPS = yes'
1308 iproc='sgi-mips'
1309 proc=''
1310 _march=''
1311 _mcpu=''
1312 _optimizing=''
1314 if irix ; then
1315 echocheck "CPU type"
1316 proc=`hinv -c processor | grep CPU | cut -d " " -f3`
1317 case "`echo $proc`" in
1318 R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
1319 R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
1320 R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
1321 R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
1322 R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
1323 R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
1324 esac
1325 echores "$proc"
1330 hppa)
1331 _def_arch='#define ARCH_PA_RISC 1'
1332 _target_arch='TARGET_ARCH_PA_RISC = yes'
1333 iproc='PA-RISC'
1334 proc=''
1335 _march=''
1336 _mcpu=''
1337 _optimizing=''
1340 s390)
1341 _def_arch='#define ARCH_S390 1'
1342 _target_arch='TARGET_ARCH_S390 = yes'
1343 iproc='390'
1344 proc=''
1345 _march=''
1346 _mcpu=''
1347 _optimizing=''
1350 s390x)
1351 _def_arch='#define ARCH_S390X 1'
1352 _target_arch='TARGET_ARCH_S390X = yes'
1353 iproc='390x'
1354 proc=''
1355 _march=''
1356 _mcpu=''
1357 _optimizing=''
1360 vax)
1361 _def_arch='#define ARCH_VAX 1'
1362 _target_arch='TARGET_ARCH_VAX = yes'
1363 iproc='vax'
1364 proc=''
1365 _march=''
1366 _mcpu=''
1367 _optimizing=''
1371 echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
1372 echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
1373 die "unsupported architecture $host_arch"
1375 esac # case "$host_arch" in
1377 if test "$_runtime_cpudetection" = yes ; then
1378 if x86; then
1379 _mmx=yes
1380 _3dnow=yes
1381 _3dnowex=yes
1382 _mmx2=yes
1383 _sse=yes
1384 _sse2=yes
1385 _mtrr=yes
1387 if ppc; then
1388 _altivec=yes
1392 if x86 && test "$_runtime_cpudetection" = no ; then
1393 extcheck() {
1394 if test "$1" = yes ; then
1395 echocheck "kernel support of $2"
1396 cat > $TMPC <<EOF
1397 #include <signal.h>
1398 void catch() { exit(1); }
1399 int main(void){
1400 signal(SIGILL, catch);
1401 __asm__ __volatile__ ("$3":::"memory");return(0);
1405 if cc_check && tmp_run ; then
1406 echores "yes"
1407 _optimizing="$_optimizing $2"
1408 return 0
1409 else
1410 echores "failed"
1411 echo "It seems that your kernel does not correctly support $2."
1412 echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1413 return 1
1416 return 0
1419 extcheck $_mmx "mmx" "emms" || _mmx=no
1420 extcheck $_mmx2 "mmx2" "sfence" || _mmx2=no
1421 extcheck $_3dnow "3dnow" "femms" || _3dnow=no
1422 extcheck $_3dnowex "3dnowex" "pswapd %%mm0, %%mm0" || _3dnowex=no
1423 extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _sse=no _gcc3_ext="$_gcc3_ext -mno-sse"
1424 extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _sse2=no _gcc3_ext="$_gcc3_ext -mno-sse2"
1425 echocheck "mtrr support"
1426 echores "$_mtrr"
1428 if test "$_mtrr" = yes ; then
1429 _optimizing="$_optimizing mtrr"
1432 if test "$_gcc3_ext" != ""; then
1433 # if we had to disable sse/sse2 because the active kernel does not
1434 # support this instruction set extension, we also have to tell
1435 # gcc3 to not generate sse/sse2 instructions for normal C code
1436 cat > $TMPC << EOF
1437 int main(void) { return 0; }
1439 cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1444 echocheck "assembler support of -pipe option"
1445 cat > $TMPC << EOF
1446 int main(void) { return 0; }
1448 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
1450 _prefix="/usr/local"
1451 _xvmclib="XvMCNVIDIA"
1453 # GOTCHA: the variables below defines the default behavior for autodetection
1454 # and have - unless stated otherwise - at least 2 states : yes no
1455 # If autodetection is available then the third state is: auto
1456 _libavcodec=auto
1457 _amr_nb=auto
1458 _amr_nb_fixed=auto
1459 _amr_wb=auto
1460 _libavcodecs=`grep 'register_avcodec(&[a-z]' libavcodec/allcodecs.c | sed 's/.*&\(.*\)).*/\1/'`
1461 _libavcodecso=auto
1462 _libavformat=auto
1463 _libavformat_so=auto
1464 _fame=auto
1465 _mp1e=no
1466 _mencoder=yes
1467 _x11=auto
1468 _dga=auto # 1 2 no auto
1469 _xv=auto
1470 _xvmc=no #auto when complete
1471 _sdl=auto
1472 _directx=auto
1473 _win32waveout=auto
1474 _nas=auto
1475 _png=auto
1476 _jpg=auto
1477 _pnm=yes
1478 _md5sum=yes
1479 _gif=auto
1480 _gl=auto
1481 _ggi=auto
1482 _ggiwmh=auto
1483 _aa=auto
1484 _caca=auto
1485 _svga=auto
1486 _vesa=auto
1487 _fbdev=auto
1488 _dvb=auto
1489 _dvbhead=auto
1490 _dxr2=auto
1491 _dxr3=auto
1492 _iconv=auto
1493 _langinfo=auto
1494 _rtc=auto
1495 _ossaudio=auto
1496 _arts=auto
1497 _esd=auto
1498 _polyp=auto
1499 _jack=auto
1500 _libcdio=auto
1501 _liblzo=auto
1502 _mad=auto
1503 _toolame=auto
1504 _twolame=auto
1505 _tremor_internal=yes
1506 _tremor_low=no
1507 _vorbis=auto
1508 _speex=auto
1509 _theora=auto
1510 _mp3lib=yes
1511 _liba52=yes
1512 _libdts=auto
1513 _libmpeg2=yes
1514 _matroska_internal=yes
1515 _tremor=no
1516 _faad_internal=auto
1517 _faad_external=auto
1518 _faac=auto
1519 _ladspa=auto
1520 _xmms=no
1521 _have_dvd=no
1522 # dvdnav disabled, it does not work
1523 #_dvdnav=no
1524 _dvdread=auto
1525 _dvdkit=auto
1526 _xanim=auto
1527 _real=auto
1528 _live=auto
1529 _xinerama=auto
1530 _mga=auto
1531 _xmga=auto
1532 _vm=auto
1533 _xf86keysym=auto
1534 _mlib=auto
1535 _sgiaudio=auto
1536 _sunaudio=auto
1537 _alsa=auto
1538 _fastmemcpy=yes
1539 _unrarlib=yes
1540 _win32=auto
1541 _dshow=yes
1542 _select=yes
1543 _tv=yes
1544 _tv_v4l=auto
1545 _tv_v4l2=auto
1546 _tv_bsdbt848=auto
1547 _edl=yes
1548 _network=yes
1549 _winsock2=auto
1550 _smbsupport=auto
1551 _vidix=auto
1552 _joystick=no
1553 _xvid=auto
1554 _x264=auto
1555 _divx4linux=auto
1556 _opendivx=no
1557 _lirc=auto
1558 _lircc=auto
1559 _gui=no
1560 _gtk1=no
1561 _termcap=auto
1562 _termios=auto
1563 _3dfx=no
1564 _tdfxfb=no
1565 _tdfxvid=no
1566 _tga=yes
1567 _directfb=auto
1568 _zr=auto
1569 _bl=no
1570 _largefiles=no
1571 #_language=en
1572 _shm=auto
1573 _linux_devfs=no
1574 #_charset=utf8
1575 _i18n=auto
1576 _dynamic_plugins=no
1577 _crash_debug=auto
1578 _sighandler=yes
1579 _libdv=auto
1580 _cdparanoia=auto
1581 _big_endian=auto
1582 _freetype=auto
1583 _fontconfig=auto
1584 _menu=no
1585 _qtx=auto
1586 _macosx=auto
1587 _macosx_finder_support=no
1588 _macosx_bundle=auto
1589 _sortsub=yes
1590 _freetypeconfig='freetype-config'
1591 _fribidi=auto
1592 _fribidiconfig='fribidi-config'
1593 _enca=auto
1594 _inet6=auto
1595 _gethostbyname2=auto
1596 _ftp=yes
1597 _musepack=auto
1598 _vstream=auto
1599 _pthreads=yes
1600 for ac_option do
1601 case "$ac_option" in
1602 # Skip 1st pass
1603 --target=*) ;;
1604 --cc=*) ;;
1605 --host-cc=*) ;;
1606 --as=*) ;;
1607 --enable-gcc-checking) ;;
1608 --disable-gcc-checking) ;;
1609 --enable-static*) ;;
1610 --disable-static*) ;;
1611 --with-extraincdir=*) ;;
1612 --with-extralibdir=*) ;;
1613 --enable-runtime-cpudetection) ;;
1614 --disable-runtime-cpudetection) ;;
1615 --enable-cross-compile) ;;
1616 --disable-cross-compile) ;;
1617 --install-path=*) ;;
1618 --with-install=*) ;;
1620 # Real 2nd pass
1621 --enable-mencoder) _mencoder=yes ;;
1622 --disable-mencoder) _mencoder=no ;;
1623 --enable-i18n) _i18n=yes ;;
1624 --disable-i18n) _i18n=no ;;
1625 --enable-dynamic-plugins) _dynamic_plugins=yes ;;
1626 --disable-dynamic-plugins) _dynamic_plugins=no ;;
1627 --enable-x11) _x11=yes ;;
1628 --disable-x11) _x11=no ;;
1629 --enable-xv) _xv=yes ;;
1630 --disable-xv) _xv=no ;;
1631 --enable-xvmc) _xvmc=yes ;;
1632 --disable-xvmc) _xvmc=no ;;
1633 --enable-sdl) _sdl=yes ;;
1634 --disable-sdl) _sdl=no ;;
1635 --enable-directx) _directx=yes ;;
1636 --disable-directx) _directx=no ;;
1637 --enable-win32waveout) _win32waveout=yes ;;
1638 --disable-win32waveout) _win32waveout=no ;;
1639 --enable-nas) _nas=yes ;;
1640 --disable-nas) _nas=no ;;
1641 --enable-png) _png=yes ;;
1642 --disable-png) _png=no ;;
1643 --enable-jpeg) _jpg=yes ;;
1644 --disable-jpeg) _jpg=no ;;
1645 --enable-pnm) _pnm=yes ;;
1646 --disable-pnm) _pnm=no ;;
1647 --enable-md5sum) _md5sum=yes ;;
1648 --disable-md5sum) _md5sum=no ;;
1649 --enable-gif) _gif=yes ;;
1650 --disable-gif) _gif=no ;;
1651 --enable-gl) _gl=yes ;;
1652 --disable-gl) _gl=no ;;
1653 --enable-ggi) _ggi=yes ;;
1654 --disable-ggi) _ggi=no ;;
1655 --enable-ggiwmh) _ggiwmh=yes ;;
1656 --disable-ggiwmh) _ggiwmh=no ;;
1657 --enable-aa) _aa=yes ;;
1658 --disable-aa) _aa=no ;;
1659 --enable-caca) _caca=yes ;;
1660 --disable-caca) _caca=no ;;
1661 --enable-svga) _svga=yes ;;
1662 --disable-svga) _svga=no ;;
1663 --enable-vesa) _vesa=yes ;;
1664 --disable-vesa) _vesa=no ;;
1665 --enable-fbdev) _fbdev=yes ;;
1666 --disable-fbdev) _fbdev=no ;;
1667 --enable-dvb) _dvb=yes ;;
1668 --disable-dvb) _dvb=no ;;
1669 --enable-dvbhead) _dvbhead=yes ;;
1670 --disable-dvbhead) _dvbhead=no ;;
1671 --enable-dxr2) _dxr2=yes ;;
1672 --disable-dxr2) _dxr2=no ;;
1673 --enable-dxr3) _dxr3=yes ;;
1674 --disable-dxr3) _dxr3=no ;;
1675 --enable-iconv) _iconv=yes ;;
1676 --disable-iconv) _iconv=no ;;
1677 --enable-langinfo) _langinfo=yes ;;
1678 --disable-langinfo) _langinfo=no ;;
1679 --enable-rtc) _rtc=yes ;;
1680 --disable-rtc) _rtc=no ;;
1681 --enable-mp1e) _mp1e=yes ;;
1682 --disable-mp1e) _mp1e=no ;;
1683 --enable-libdv) _libdv=yes ;;
1684 --disable-libdv) _libdv=no ;;
1685 --enable-ossaudio) _ossaudio=yes ;;
1686 --disable-ossaudio) _ossaudio=no ;;
1687 --enable-arts) _arts=yes ;;
1688 --disable-arts) _arts=no ;;
1689 --enable-esd) _esd=yes ;;
1690 --disable-esd) _esd=no ;;
1691 --enable-polyp) _polyp=yes ;;
1692 --disable-polyp) _polyp=no ;;
1693 --enable-jack) _jack=yes ;;
1694 --disable-jack) _jack=no ;;
1695 --enable-mad) _mad=yes ;;
1696 --disable-mad) _mad=no ;;
1697 --disable-toolame) _toolame=no ;;
1698 --disable-twolame) _twolame=no ;;
1699 --enable-libcdio) _libcdio=yes ;;
1700 --disable-libcdio) _libcdio=no ;;
1701 --enable-liblzo) _liblzo=yes ;;
1702 --disable-liblzo) _liblzo=no ;;
1703 --enable-vorbis) _vorbis=yes ;;
1704 --disable-vorbis) _vorbis=no ;;
1705 --enable-speex) _speex=yes ;;
1706 --disable-speex) _speex=no ;;
1707 --enable-internal-tremor) _tremor_internal=yes ;;
1708 --disable-internal-tremor) _tremor_internal=no ;;
1709 --enable-tremor-low) _tremor_low=yes ;;
1710 --disable-tremor-low) _tremor_low=no ;;
1711 --enable-external-tremor) _tremor=yes ;;
1712 --disable-external-tremor) _tremor=no ;;
1713 --enable-theora) _theora=yes ;;
1714 --disable-theora) _theora=no ;;
1715 --enable-mp3lib) _mp3lib=yes ;;
1716 --disable-mp3lib) _mp3lib=no ;;
1717 --enable-liba52) _liba52=yes ;;
1718 --disable-liba52) _liba52=no ;;
1719 --enable-libdts) _libdts=yes ;;
1720 --disable-libdts) _libdts=no ;;
1721 --enable-libmpeg2) _libmpeg2=yes ;;
1722 --disable-libmpeg2) _libmpeg2=no ;;
1723 --enable-musepack) _musepack=yes ;;
1724 --disable-musepack) _musepack=no ;;
1725 --enable-internal-matroska) _matroska_internal=yes ;;
1726 --disable-internal-matroska) _matroska_internal=no ;;
1727 --enable-internal-faad) _faad_internal=yes _faad_external=no ;;
1728 --disable-internal-faad) _faad_internal=no ;;
1729 --enable-external-faad) _faad_external=yes _faad_internal=no ;;
1730 --disable-external-faad) _faad_external=no ;;
1731 --enable-faac) _faac=yes ;;
1732 --disable-faac) _faac=no ;;
1733 --enable-ladspa) _ladspa=yes ;;
1734 --disable-ladspa) _ladspa=no ;;
1735 --enable-xmms) _xmms=yes ;;
1736 --disable-xmms) _xmms=no ;;
1737 --enable-dvdread) _dvdread=yes ;;
1738 --disable-dvdread) _dvdread=no ;;
1739 --enable-mpdvdkit) _dvdkit=yes ;;
1740 --disable-mpdvdkit) _dvdkit=no ;;
1741 # dvdnav disabled, it does not work
1742 # --enable-dvdnav) _dvdnav=yes ;;
1743 # --disable-dvdnav) _dvdnav=no ;;
1744 --enable-xanim) _xanim=yes ;;
1745 --disable-xanim) _xanim=no ;;
1746 --enable-real) _real=yes ;;
1747 --disable-real) _real=no ;;
1748 --enable-live) _live=yes ;;
1749 --disable-live) _live=no ;;
1750 --enable-xinerama) _xinerama=yes ;;
1751 --disable-xinerama) _xinerama=no ;;
1752 --enable-mga) _mga=yes ;;
1753 --disable-mga) _mga=no ;;
1754 --enable-xmga) _xmga=yes ;;
1755 --disable-xmga) _xmga=no ;;
1756 --enable-vm) _vm=yes ;;
1757 --disable-vm) _vm=no ;;
1758 --enable-xf86keysym) _xf86keysym=yes ;;
1759 --disable-xf86keysym) _xf86keysym=no ;;
1760 --enable-mlib) _mlib=yes ;;
1761 --disable-mlib) _mlib=no ;;
1762 --enable-sunaudio) _sunaudio=yes ;;
1763 --disable-sunaudio) _sunaudio=no ;;
1764 --enable-sgiaudio) _sgiaudio=yes ;;
1765 --disable-sgiaudio) _sgiaudio=no ;;
1766 --enable-alsa) _alsa=yes ;;
1767 --disable-alsa) _alsa=no ;;
1768 --enable-tv) _tv=yes ;;
1769 --disable-tv) _tv=no ;;
1770 --enable-edl) _edl=yes ;;
1771 --disable-edl) _edl=no ;;
1772 --enable-tv-bsdbt848) _tv_bsdbt848=yes ;;
1773 --disable-tv-bsdbt848) _tv_bsdbt848=no ;;
1774 --enable-tv-v4l) _tv_v4l=yes ;;
1775 --disable-tv-v4l) _tv_v4l=no ;;
1776 --enable-tv-v4l2) _tv_v4l2=yes ;;
1777 --disable-tv-v4l2) _tv_v4l2=no ;;
1778 --enable-fastmemcpy) _fastmemcpy=yes ;;
1779 --disable-fastmemcpy) _fastmemcpy=no ;;
1780 --enable-network) _network=yes ;;
1781 --disable-network) _network=no ;;
1782 --enable-winsock2) _winsock2=yes ;;
1783 --disable-winsock2) _winsock2=no ;;
1784 --enable-smb) _smbsupport=yes ;;
1785 --disable-smb) _smbsupport=no ;;
1786 --enable-vidix) _vidix=yes ;;
1787 --disable-vidix) _vidix=no ;;
1788 --enable-joystick) _joystick=yes ;;
1789 --disable-joystick) _joystick=no ;;
1790 --enable-xvid) _xvid=yes ;;
1791 --disable-xvid) _xvid=no ;;
1792 --enable-x264) _x264=yes ;;
1793 --disable-x264) _x264=no ;;
1794 --enable-divx4linux) _divx4linux=yes ;;
1795 --disable-divx4linux) _divx4linux=no ;;
1796 --enable-opendivx) _opendivx=yes ;;
1797 --disable-opendivx) _opendivx=no ;;
1798 --enable-libavcodec) _libavcodec=yes ;;
1799 --disable-libavcodec) _libavcodec=no ;;
1800 --enable-amr_nb) _amr_nb=yes ;;
1801 --disable-amr_nb) _amr_nb=no ;;
1802 --enable-amr_nb-fixed) _amr_nb_fixed=yes ;;
1803 --disable-amr_nb-fixed) _amr_nb_fixed=no ;;
1804 --enable-amr_wb) _amr_wb=yes ;;
1805 --disable-amr_wb) _amr_wb=no ;;
1806 --enable-codec=*) _libavcodecs="$_libavcodecs `echo $ac_option | cut -d '=' -f 2`" ;;
1807 --disable-codec=*) _libavcodecs=`echo $_libavcodecs | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1808 --enable-libavformat) _libavformat=yes;;
1809 --disable-libavformat) _libavformat=no ;;
1810 --enable-libfame) _fame=yes ;;
1811 --disable-libfame) _fame=no ;;
1812 --enable-lirc) _lirc=yes ;;
1813 --disable-lirc) _lirc=no ;;
1814 --enable-lircc) _lircc=yes ;;
1815 --disable-lircc) _lircc=no ;;
1816 --enable-gui) _gui=yes ;;
1817 --disable-gui) _gui=no ;;
1818 --enable-old-gtk) _gtk1=yes ;;
1819 --enable-termcap) _termcap=yes ;;
1820 --disable-termcap) _termcap=no ;;
1821 --enable-termios) _termios=yes ;;
1822 --disable-termios) _termios=no ;;
1823 --enable-3dfx) _3dfx=yes ;;
1824 --disable-3dfx) _3dfx=no ;;
1825 --enable-tdfxfb) _tdfxfb=yes ;;
1826 --disable-tdfxvid) _tdfxvid=no ;;
1827 --enable-tdfxvid) _tdfxvid=yes ;;
1828 --disable-tga) _tga=no ;;
1829 --enable-tga) _tga=yes ;;
1830 --disable-tdfxfb) _tdfxfb=no ;;
1831 --enable-directfb) _directfb=yes ;;
1832 --disable-directfb) _directfb=no ;;
1833 --enable-zr) _zr=yes ;;
1834 --disable-zr) _zr=no ;;
1835 --enable-bl) _bl=yes ;;
1836 --disable-bl) _bl=no ;;
1837 --enable-mtrr) _mtrr=yes ;;
1838 --disable-mtrr) _mtrr=no ;;
1839 --enable-largefiles) _largefiles=yes ;;
1840 --disable-largefiles) _largefiles=no ;;
1841 --enable-shm) _shm=yes ;;
1842 --disable-shm) _shm=no ;;
1843 --enable-select) _select=yes ;;
1844 --disable-select) _select=no ;;
1845 --enable-linux-devfs) _linux_devfs=yes ;;
1846 --disable-linux-devfs) _linux_devfs=no ;;
1847 --enable-cdparanoia) _cdparanoia=yes ;;
1848 --disable-cdparanoia) _cdparanoia=no ;;
1849 --enable-big-endian) _big_endian=yes ;;
1850 --disable-big-endian) _big_endian=no ;;
1851 --enable-freetype) _freetype=yes ;;
1852 --disable-freetype) _freetype=no ;;
1853 --enable-fontconfig) _fontconfig=yes ;;
1854 --disable-fontconfig) _fontconfig=no ;;
1855 --enable-unrarlib) _unrarlib=yes ;;
1856 --disable-unrarlib) _unrarlib=no ;;
1857 --enable-ftp) _ftp=yes ;;
1858 --disable-ftp) _ftp=no ;;
1859 --enable-vstream) _vstream=yes ;;
1860 --disable-vstream) _vstream=no ;;
1861 --enable-pthreads) _pthreads=yes ;;
1862 --disable-pthreads) _pthreads=no ;;
1864 --enable-fribidi) _fribidi=yes ;;
1865 --disable-fribidi) _fribidi=no ;;
1867 --enable-enca) _enca=yes ;;
1868 --disable-enca) _enca=no ;;
1870 --enable-inet6) _inet6=yes ;;
1871 --disable-inet6) _inet6=no ;;
1873 --enable-gethostbyname2) _gethostbyname2=yes ;;
1874 --disable-gethostbyname2) _gethostbyname2=no ;;
1876 --enable-dga) _dga=auto ;; # as we don't know if it's 1 or 2
1877 --enable-dga=*) _dga=`echo $ac_option | cut -d '=' -f 2` ;;
1878 --disable-dga) _dga=no ;;
1880 --enable-menu) _menu=yes ;;
1881 --disable-menu) _menu=no ;;
1883 --enable-qtx) _qtx=yes ;;
1884 --disable-qtx) _qtx=no ;;
1886 --enable-macosx) _macosx=yes ;;
1887 --disable-macosx) _macosx=no ;;
1888 --enable-macosx-finder-support) _macosx_finder_support=yes ;;
1889 --disable-macosx-finder-support) _macosx_finder_support=no ;;
1890 --enable-macosx-bundle) _macosx_bundle=yes;;
1891 --disable-macosx-bundle) _macosx_bundle=no;;
1893 --enable-sortsub) _sortsub=yes ;;
1894 --disable-sortsub) _sortsub=no ;;
1896 --charset=*)
1897 _charset=`echo $ac_option | cut -d '=' -f 2`
1899 --language=*)
1900 _language=`echo $ac_option | cut -d '=' -f 2`
1902 # dvdnav disabled, it does not work
1903 # --with-libdvdnav=*)
1904 # _dvdnavdir=`echo $ac_option | cut -d '=' -f 2`
1905 # _dvdnav=yes
1906 # ;;
1908 --with-codecsdir=*)
1909 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1910 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1911 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1913 --with-win32libdir=*)
1914 _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1915 _win32=yes
1917 --with-xanimlibdir=*)
1918 _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1919 _xanim=yes
1921 --with-reallibdir=*)
1922 _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1923 _real=yes
1925 --with-livelibdir=*)
1926 _livelibdir=`echo $ac_option | cut -d '=' -f 2`
1928 --with-toolamedir=*)
1929 _toolamedir=`echo $ac_option | cut -d '=' -f 2`
1931 --with-mlibdir=*)
1932 _mlibdir=`echo $ac_option | cut -d '=' -f 2`
1933 _mlib=yes
1936 --with-xmmslibdir=*)
1937 _xmmslibdir=`echo $ac_option | cut -d '=' -f 2`
1940 --with-xmmsplugindir=*)
1941 _xmmsplugindir=`echo $ac_option | cut -d '=' -f 2`
1944 --enable-profile)
1945 _profile='-p'
1947 --disable-profile)
1948 _profile=
1950 --enable-debug)
1951 _debug='-g'
1953 --enable-debug=*)
1954 _debug=`echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2`
1956 --disable-debug)
1957 _debug=
1959 --enable-crash-debug)
1960 _crash_debug=yes
1962 --disable-crash-debug)
1963 _crash_debug=no
1965 --enable-sighandler)
1966 _sighandler=yes
1968 --disable-sighandler)
1969 _sighandler=no
1972 --enable-sse) _sse=yes ;;
1973 --disable-sse) _sse=no ;;
1974 --enable-sse2) _sse2=yes ;;
1975 --disable-sse2) _sse2=no ;;
1976 --enable-mmx2) _mmx2=yes ;;
1977 --disable-mmx2) _mmx2=no ;;
1978 --enable-3dnow) _3dnow=yes ;;
1979 --disable-3dnow) _3dnow=no _3dnowex=no ;;
1980 --enable-3dnowex) _3dnow=yes _3dnowex=yes ;;
1981 --disable-3dnowex) _3dnowex=no ;;
1982 --enable-altivec) _altivec=yes ;;
1983 --disable-altivec) _altivec=no ;;
1984 --enable-mmx) _mmx=yes ;;
1985 --disable-mmx) # 3Dnow! and MMX2 require MMX
1986 _3dnow=no _3dnowex=no _mmx=no _mmx2=no ;;
1988 --enable-win32) _win32=yes ;;
1989 --disable-win32) _win32=no _dshow=no ;;
1990 --enable-dshow) _win32=yes _dshow=yes ;;
1991 --disable-dshow) _dshow=no ;;
1993 --with-x11incdir=*)
1994 _inc_x11=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1996 --with-x11libdir=*)
1997 _x11_paths=`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1999 --with-dxr2incdir=*)
2000 _inc_dxr2=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
2002 --with-xvmclib=*)
2003 _xvmclib=`echo $ac_option | cut -d '=' -f 2`
2005 --with-dvbincdir=*)
2006 _inc_dvb=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
2008 --with-xvidlibdir=*)
2009 _ld_xvid=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2011 --with-xvidincdir=*)
2012 _inc_xvid=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
2014 --with-dtslibdir=*)
2015 _ld_libdts=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2017 --with-dtsincdir=*)
2018 _inc_libdts=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
2020 --with-x264libdir=*)
2021 _ld_x264=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2023 --with-x264incdir=*)
2024 _inc_x264=-I`echo $ac_option | cut -d '=' -f 2 |sed 's,:, -I,g'`
2026 --with-sdl-config=*)
2027 _sdlconfig=`echo $ac_option | cut -d '=' -f 2`
2029 --with-freetype-config=*)
2030 _freetypeconfig=`echo $ac_option | cut -d '=' -f 2`
2032 --with-fribidi-config=*)
2033 _fribidiconfig=`echo $ac_option | cut -d '=' -f 2`
2035 --with-gtk-config=*)
2036 _gtkconfig=`echo $ac_option | cut -d '=' -f 2`
2038 --with-glib-config=*)
2039 _glibconfig=`echo $ac_option | cut -d '=' -f 2`
2041 # dvdnav disabled, it does not work
2042 # --with-dvdnav-config=*)
2043 # _dvdnavconfig=`echo $ac_option | cut -d '=' -f 2`
2044 # ;;
2045 --with-madlibdir=*)
2046 _ld_mad=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2048 --with-cdparanoiaincdir=*)
2049 _inc_cdparanoia=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
2051 --with-cdparanoialibdir=*)
2052 _ld_cdparanoia=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
2054 --with-termcaplib=*)
2055 _ld_termcap=-l`echo $ac_option | cut -d '=' -f 2`
2056 _termcap=yes
2058 --prefix=*)
2059 _prefix=`echo $ac_option | cut -d '=' -f 2`
2061 --bindir=*)
2062 _bindir=`echo $ac_option | cut -d '=' -f 2`
2064 --datadir=*)
2065 _datadir=`echo $ac_option | cut -d '=' -f 2`
2067 --mandir=*)
2068 _mandir=`echo $ac_option | cut -d '=' -f 2`
2070 --confdir=*)
2071 _confdir=`echo $ac_option | cut -d '=' -f 2`
2073 --libdir=*)
2074 _libdir=`echo $ac_option | cut -d '=' -f 2`
2078 echo "Unknown parameter: $ac_option"
2079 exit 1
2082 esac
2083 done
2085 # Atmos: moved this here, to be correct, if --prefix is specified
2086 test -z "$_bindir" && _bindir="$_prefix/bin"
2087 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
2088 test -z "$_mandir" && _mandir="$_prefix/man"
2089 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
2090 test -z "$_libdir" && _libdir="$_prefix/lib"
2091 test -z "$_mlibdir" && _mlibdir="$MLIBHOME"
2093 if x86 ; then
2094 # Checking assembler (_as) compatibility...
2095 # Added workaround for older as that reads from stdin by default - atmos
2096 as_version=`echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p'`
2097 echocheck "assembler ($_as $as_version)"
2099 _pref_as_version='2.9.1'
2100 echo 'nop' > $TMPS
2101 if test "$_mmx" = yes ; then
2102 echo 'emms' >> $TMPS
2104 if test "$_3dnow" = yes ; then
2105 _pref_as_version='2.10.1'
2106 echo 'femms' >> $TMPS
2108 if test "$_3dnowex" = yes ; then
2109 _pref_as_version='2.10.1'
2110 echo 'pswapd %mm0, %mm0' >> $TMPS
2112 if test "$_mmx2" = yes ; then
2113 _pref_as_version='2.10.1'
2114 echo 'movntq %mm0, (%eax)' >> $TMPS
2116 if test "$_sse" = yes ; then
2117 _pref_as_version='2.10.1'
2118 echo 'xorps %xmm0, %xmm0' >> $TMPS
2120 #if test "$_sse2" = yes ; then
2121 # _pref_as_version='2.11'
2122 # echo 'xorpd %xmm0, %xmm0' >> $TMPS
2124 $_as $TMPS -o $TMPO > /dev/null 2>&1 || as_verc_fail=yes
2126 if test "$as_verc_fail" != yes ; then
2127 echores "ok"
2128 else
2129 echores "failed"
2130 echo "Upgrade binutils to ${_pref_as_version} ..."
2131 die "obsolete binutils version"
2135 if ppc ; then
2137 # check if altivec is supported by the compiler, and how to enable it
2139 _altivec_gcc_flags=''
2141 if test "$_altivec" = yes -o "$_runtime_cpudetection" = yes ; then
2142 echocheck "GCC altivec support"
2144 p=''
2145 cat > $TMPC << EOF
2146 int main() {
2147 return 0;
2150 FSF_flags='-maltivec -mabi=altivec'
2151 Darwin_flags='-faltivec -D__APPLE_ALTIVEC__'
2153 # check for Darwin-style flags first, since
2154 # gcc-3.3 (August Update from Apple) on MacOS 10.2.8
2155 # accepts but ignores FSF-style flags...
2157 if test -z "$p"; then
2158 cc_check $Darwin_flags && p='Darwin'
2160 if test -z "$p"; then
2161 cc_check $FSF_flags && p='FSF'
2164 case $p in
2165 FSF) _altivec_gcc_flags="$FSF_flags" _altivec=yes ;;
2166 Darwin) _altivec_gcc_flags="$Darwin_flags" _altivec=yes ;;
2167 *) _altivec=no ;;
2168 esac
2170 if test -z "$p"; then
2171 p=none
2172 else
2173 p="$p-style ($_altivec_gcc_flags)"
2176 echores "$p"
2179 # check if <altivec.h> should be included
2181 _def_altivec_h='#undef HAVE_ALTIVEC_H'
2183 if test "$_altivec" = yes ; then
2184 echocheck "altivec.h"
2185 cat > $TMPC << EOF
2186 #include <altivec.h>
2187 int main(void) { return 0; }
2189 _have_altivec_h=no
2190 cc_check $_altivec_gcc_flags && _have_altivec_h=yes
2191 if test "$_have_altivec_h" = yes ; then
2192 _def_altivec_h='#define HAVE_ALTIVEC_H 1'
2194 echores "$_have_altivec_h"
2197 # disable runtime cpudetection if
2198 # - we cannot generate altivec code
2199 # - altivec is disabled by the user
2201 if test "$_runtime_cpudetection" = yes -a "$_altivec" = no ; then
2202 _runtime_cpudetection=no
2205 # show that we are optimizing for altivec (if enabled and supported)
2207 if test "$_runtime_cpudetection" = no -a "$_altivec" = yes ; then
2208 _optimizing="$_optimizing altivec"
2211 # if altivec is enabled, make sure the correct flags turn up in CFLAGS
2213 if test "$_altivec" = yes ; then
2214 _mcpu="$_mcpu $_altivec_gcc_flags"
2217 # setup _def_altivec correctly
2219 if test "$_altivec" = yes ; then
2220 _def_altivec='#define HAVE_ALTIVEC 1'
2221 else
2222 _def_altivec='#undef HAVE_ALTIVEC'
2226 _def_mmx='#undef HAVE_MMX'
2227 test "$_mmx" = yes && _def_mmx='#define HAVE_MMX 1'
2228 _def_mmx2='#undef HAVE_MMX2'
2229 test "$_mmx2" = yes && _def_mmx2='#define HAVE_MMX2 1'
2230 _def_3dnow='#undef HAVE_3DNOW'
2231 test "$_3dnow" = yes && _def_3dnow='#define HAVE_3DNOW 1'
2232 _def_3dnowex='#undef HAVE_3DNOWEX'
2233 test "$_3dnowex" = yes && _def_3dnowex='#define HAVE_3DNOWEX 1'
2234 _def_sse='#undef HAVE_SSE'
2235 test "$_sse" = yes && _def_sse='#define HAVE_SSE 1'
2236 _def_sse2='#undef HAVE_SSE2'
2237 test "$_sse2" = yes && _def_sse2='#define HAVE_SSE2 1'
2239 # Checking kernel version...
2240 if x86 && linux ; then
2241 _k_verc_problem=no
2242 kernel_version=`uname -r 2>&1`
2243 echocheck "$system_name kernel version"
2244 case "$kernel_version" in
2245 '') kernel_version="?.??"; _k_verc_fail=yes;;
2246 [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2247 _k_verc_problem=yes;;
2248 esac
2249 if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2250 _k_verc_fail=yes
2252 if test "$_k_verc_fail" ; then
2253 echores "$kernel_version, fail"
2254 echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2255 echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2256 echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2257 echo "supports SSE, but you have been warned! If you are using a kernel older than"
2258 echo "2.2.x you must upgrade it to get SSE support!"
2259 # die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2260 else
2261 echores "$kernel_version, ok"
2265 if test "$_vidix" = auto ; then
2266 _vidix=no
2267 # should check for x86 systems supporting VIDIX (does QNX have VIDIX?)
2268 x86 && _vidix=yes
2269 x86_64 && _vidix=yes
2270 ppc && linux && _vidix=yes
2271 alpha && linux && _vidix=yes
2272 qnx && _vidix=no
2273 sunos && _vidix=no
2274 beos && _vidix=no
2277 echocheck "mplayer binary name"
2278 if win32 ; then
2279 _prg="mplayer.exe"
2280 _prg_mencoder="mencoder.exe"
2281 else
2282 _prg="mplayer"
2283 _prg_mencoder="mencoder"
2285 echores $_prg
2288 # On QNX we must link to libph - Gabucino
2289 if qnx ; then
2290 _ld_arch="$_ld_arch -lph"
2293 # checking for a working awk, I'm using mawk first, because it's fastest - atmos
2294 _awk=
2295 if test "$_vidix" = yes ; then
2296 _awk_verc_fail=yes
2297 echocheck "awk"
2298 for _awk in mawk gawk nawk awk; do
2299 if ( $_awk 'BEGIN{testme();}function testme(){print"";}' ) >> "$TMPLOG" 2>&1; then
2300 _awk_verc_fail=no
2301 break
2303 done
2304 test "$_awk_verc_fail" = yes && _awk=no
2305 echores "$_awk"
2306 if test "$_awk_verc_fail" = yes; then
2307 echo "VIDIX needs awk, but no working implementation was found!"
2308 echo "Try the GNU version, which can be downloaded from:"
2309 echo "ftp://ftp.gnu.org/gnu/gawk/"
2310 echo "If you don't need VIDIX, you can use configure --disable-vidix instead."
2311 die "no awk"
2315 # If IRIX we must use ar instead of ranlib (not present on IRIX systems)
2316 if irix ; then
2317 _ranlib='ar -r'
2318 elif linux ; then
2319 _ranlib='true'
2322 ######################
2323 # MAIN TESTS GO HERE #
2324 ######################
2327 echocheck "extra headers"
2328 if test "$_inc_extra" ; then
2329 echores "$_inc_extra"
2330 else
2331 echores "none"
2335 echocheck "extra libs"
2336 if test "$_ld_extra" ; then
2337 echores "$_ld_extra"
2338 else
2339 echores "none"
2342 echocheck "-lposix"
2343 cat > $TMPC <<EOF
2344 int main(void) { return 0; }
2346 if cc_check -lposix ; then
2347 _ld_arch="$_ld_arch -lposix"
2348 echores "yes"
2349 else
2350 echores "no"
2353 echocheck "-lm"
2354 cat > $TMPC <<EOF
2355 int main(void) { return 0; }
2357 if cc_check -lm ; then
2358 _ld_lm="-lm"
2359 echores "yes"
2360 else
2361 _ld_lm=""
2362 echores "no"
2365 # Checking for localization ...
2366 # CSAK EGY MARADHAT - A HEGYLAKO
2367 echocheck "i18n"
2368 if test "$_i18n" != no ; then
2369 cat > $TMPC <<EOF
2370 #include <libintl.h>
2371 int main(void) { gettext("test"); return 0; }
2373 _i18n=no
2374 _i18n_libs=""
2375 if test "$_i18n" = auto ; then
2376 cc_check && _i18n=yes
2377 else
2378 for i18n_lib in "" "-lintl"; do
2379 cc_check $i18n_lib && _i18n=yes && _i18n_libs=$i18n_lib && break
2380 done
2383 if test "$_i18n" = yes ; then
2384 _def_i18n='#define USE_I18N 1'
2385 else
2386 _def_i18n='#undef USE_I18N'
2388 if test "$_i18n_libs" ; then
2389 _res_comment="using $_i18n_libs"
2391 echores "$_i18n"
2394 echocheck "langinfo"
2395 if test "$_langinfo" = auto ; then
2396 cat > $TMPC <<EOF
2397 #include <langinfo.h>
2398 int main(void) { nl_langinfo(CODESET); return 0; }
2400 _langinfo=no
2401 cc_check && _langinfo=yes
2403 if test "$_langinfo" = yes ; then
2404 _def_langinfo='#define USE_LANGINFO 1'
2405 else
2406 _def_langinfo='#undef USE_LANGINFO'
2408 echores "$_langinfo"
2411 echocheck "language"
2412 test -z "$_language" && _language=$LINGUAS
2413 _language=`echo $_language | sed 's/,/ /g'`
2414 echo $_language | grep all > /dev/null || LANGUAGES="$_language en"
2415 for lang in $_language ; do
2416 test "$lang" = all && lang=en
2417 if test -f "help/help_mp-${lang}.h" ; then
2418 _language=$lang
2419 break
2420 else
2421 echo -n "$lang not found, "
2422 _language=`echo $_language | sed "s/$lang *//"`
2424 done
2425 test -z "$_language" && _language=en
2426 _mp_help="help/help_mp-${_language}.h"
2427 test -f $_mp_help || die "$_mp_help not found"
2428 for lang in $LANGUAGES ; do
2429 if test -f "DOCS/man/$lang/mplayer.1" ; then
2430 MAN_LANG="$MAN_LANG $lang"
2432 done
2433 _doc_lang=$_language
2434 test -d DOCS/xml/$_doc_lang || _doc_lang=en
2435 echores "using $_language (man pages: $MAN_LANG)"
2438 echocheck "enable sighandler"
2439 if test "$_sighandler" = yes ; then
2440 _def_sighandler='#define ENABLE_SIGHANDLER 1'
2441 else
2442 _def_sighandler='#undef ENABLE_SIGHANDLER'
2444 echores "$_sighandler"
2446 echocheck "runtime cpudetection"
2447 if test "$_runtime_cpudetection" = yes ; then
2448 _optimizing="Runtime CPU-Detection enabled"
2449 _def_runtime_cpudetection='#define RUNTIME_CPUDETECT 1'
2450 else
2451 _def_runtime_cpudetection='#undef RUNTIME_CPUDETECT'
2453 echores "$_runtime_cpudetection"
2456 echocheck "restrict keyword"
2457 for restrict_keyword in restrict __restrict __restrict__ ; do
2458 echo "void foo(char * $restrict_keyword p); int main(){}" > $TMPC
2459 if cc_check; then
2460 _def_restrict_keyword=$restrict_keyword
2461 break;
2463 done
2464 if [ -n "$_def_restrict_keyword" ]; then
2465 echores "$_def_restrict_keyword"
2466 else
2467 echores "none"
2469 # Avoid infinite recursion loop ("#define restrict restrict")
2470 if [ "$_def_restrict_keyword" != "restrict" ]; then
2471 _def_restrict_keyword="#define restrict $_def_restrict_keyword"
2472 else
2473 _def_restrict_keyword=""
2477 echocheck "__builtin_expect"
2478 # GCC branch prediction hint
2479 cat > $TMPC << EOF
2480 int foo (int a) {
2481 a = __builtin_expect (a, 10);
2482 return a == 10 ? 0 : 1;
2484 int main() { return foo(10) && foo(0); }
2486 _builtin_expect=no
2487 cc_check && _builtin_expect=yes
2488 if test "$_builtin_expect" = yes ; then
2489 _def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2490 else
2491 _def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2493 echores "$_builtin_expect"
2496 echocheck "kstat"
2497 cat > $TMPC << EOF
2498 #include <kstat.h>
2499 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2501 _kstat=no
2502 cc_check -lkstat && _kstat=yes
2503 if test "$_kstat" = yes ; then
2504 _def_kstat="#define HAVE_LIBKSTAT 1"
2505 _ld_arch="-lkstat $_ld_arch"
2506 else
2507 _def_kstat="#undef HAVE_LIBKSTAT"
2509 echores "$_kstat"
2512 echocheck "posix4"
2513 # required for nanosleep on some systems
2514 cat > $TMPC << EOF
2515 #include <time.h>
2516 int main(void) { (void) nanosleep(0, 0); return 0; }
2518 _posix4=no
2519 cc_check -lposix4 && _posix4=yes
2520 if test "$_posix4" = yes ; then
2521 _ld_arch="-lposix4 $_ld_arch"
2523 echores "$_posix4"
2525 echocheck "lrintf"
2526 cat > $TMPC << EOF
2527 #include <math.h>
2528 int main(void) { long (*foo)(float); foo = lrintf; (void)(*foo)(0.0); return 0; }
2530 _lrintf=no
2531 cc_check -D_GNU_SOURCE $_ld_lm && _lrintf=yes
2532 if test "$_lrintf" = yes ; then
2533 _def_lrintf="#define HAVE_LRINTF 1"
2534 else
2535 _def_lrintf="#undef HAVE_LRINTF"
2537 echores "$_lrintf"
2539 echocheck "round"
2540 cat > $TMPC << EOF
2541 #include <math.h>
2542 int main(void) { (void) round(0.0); return 0; }
2544 _round=no
2545 cc_check $_ld_lm && _round=yes
2546 if test "$_round" = yes ; then
2547 _def_round="#define HAVE_ROUND 1"
2548 else
2549 _def_round="#undef HAVE_ROUND"
2551 echores "$_round"
2553 echocheck "nanosleep"
2554 # also check for nanosleep
2555 cat > $TMPC << EOF
2556 #include <time.h>
2557 int main(void) { (void) nanosleep(0, 0); return 0; }
2559 _nanosleep=no
2560 cc_check $_ld_arch && _nanosleep=yes
2561 if test "$_nanosleep" = yes ; then
2562 _def_nanosleep='#define HAVE_NANOSLEEP 1'
2563 else
2564 _def_nanosleep='#undef HAVE_NANOSLEEP'
2566 echores "$_nanosleep"
2569 echocheck "socklib"
2570 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2571 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2572 cat > $TMPC << EOF
2573 #include <netdb.h>
2574 #include <sys/socket.h>
2575 int main(void) { (void) gethostbyname(0); (void) socket(AF_INET, SOCK_STREAM, 0); return 0; }
2577 for _ld_tmp in "-lsocket -lbind" "-lsocket -ldnet" "-lsocket -lnsl" "-lnsl" "-lsocket" ; do
2578 cc_check $_ld_tmp && _ld_sock="$_ld_tmp" && break
2579 done
2580 if test $_winsock2 = auto && not cygwin ; then
2581 _winsock2=no
2582 cat > $TMPC << EOF
2583 #include <winsock2.h>
2584 int main(void) { (void) gethostbyname(0); return 0; }
2586 cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2=yes
2588 if test "$_ld_sock" ; then
2589 echores "yes (using $_ld_sock)"
2590 else
2591 echores "no"
2595 if test $_winsock2 = yes ; then
2596 _ld_sock="-lws2_32"
2597 _def_winsock2='#define HAVE_WINSOCK2 1'
2598 else
2599 _def_winsock2='#undef HAVE_WINSOCK2'
2603 _use_aton=no
2604 echocheck "inet_pton()"
2605 cat > $TMPC << EOF
2606 #include <sys/types.h>
2607 #include <sys/socket.h>
2608 #include <arpa/inet.h>
2609 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
2611 if test "$_winsock2" = yes ; then
2612 echores "not needed (using winsock2 functions)"
2613 elif cc_check $_ld_sock ; then
2614 # NOTE: Linux has libresolv but does not need it
2616 echores "yes (using $_ld_sock)"
2617 elif cc_check $_ld_sock -lresolv ; then
2618 # NOTE: needed for SunOS at least
2619 _ld_sock="$_ld_sock -lresolv"
2620 echores "yes (using $_ld_sock)"
2621 else
2622 echores "no (=> i'll try inet_aton next)"
2624 echocheck "inet_aton()"
2625 cat > $TMPC << EOF
2626 #include <sys/types.h>
2627 #include <sys/socket.h>
2628 #include <arpa/inet.h>
2629 int main(void) { (void) inet_aton(0, 0); return 0; }
2631 _use_aton=yes
2632 if cc_check $_ld_sock ; then
2633 # NOTE: Linux has libresolv but does not need it
2635 echores "yes (using $_ld_sock)"
2636 elif cc_check $_ld_sock -lresolv ; then
2637 # NOTE: needed for SunOS at least
2638 _ld_sock="$_ld_sock -lresolv"
2639 echores "yes (using $_ld_sock)"
2640 else
2641 _use_aton=no
2642 _network=no
2643 echores "no (=> network support disabled)"
2647 _def_use_aton='#undef USE_ATON'
2648 if test "$_use_aton" != no; then
2649 _def_use_aton='#define USE_ATON 1'
2653 echocheck "inttypes.h (required)"
2654 cat > $TMPC << EOF
2655 #include <inttypes.h>
2656 int main(void) { return 0; }
2658 _inttypes=no
2659 cc_check && _inttypes=yes
2660 if test "$_inttypes" = yes ; then
2661 # nothing to do
2663 else
2664 echores "no"
2665 echocheck "bitypes.h (inttypes.h predecessor)"
2666 cat > $TMPC << EOF
2667 #include <sys/bitypes.h>
2668 int main(void) { return 0; }
2670 _inttypes=no
2671 cc_check && _inttypes=yes
2672 if test "$_inttypes" = yes ; then
2673 die "You don't have inttypes.h, but sys/bitypes.h is present. Please copy etc/inttypes.h into the include path, and re-run configure."
2674 else
2675 die "Cannot find header either inttypes.h or bitypes.h (see DOCS/HTML/$_doc_lang/faq.html)."
2678 echores "$_inttypes"
2681 echocheck "int_fastXY_t in inttypes.h"
2682 cat > $TMPC << EOF
2683 #include <inttypes.h>
2684 int main(void) {
2685 volatile int_fast16_t v= 0;
2686 return v; }
2688 _fast_inttypes=no
2689 cc_check && _fast_inttypes=yes
2690 if test "$_fast_inttypes" = yes ; then
2691 # nothing to do
2693 else
2694 _def_fast_inttypes='
2695 typedef signed char int_fast8_t;
2696 typedef signed int int_fast16_t;
2697 typedef signed int int_fast32_t;
2698 typedef unsigned char uint_fast8_t;
2699 typedef unsigned int uint_fast16_t;
2700 typedef unsigned int uint_fast32_t;'
2702 echores "$_fast_inttypes"
2705 echocheck "word size"
2706 _mp_wordsize="#undef MP_WORDSIZE"
2707 cat > $TMPC << EOF
2708 #include <stdio.h>
2709 #include <sys/types.h>
2710 int main(void) { printf("%d\n", sizeof(size_t)*8); return 0; }
2712 cc_check && _wordsize=`$TMPO` && _mp_wordsize="#define MP_WORDSIZE $_wordsize"
2713 echores "$_wordsize"
2716 echocheck "stddef.h"
2717 cat > $TMPC << EOF
2718 #include <stddef.h>
2719 int main(void) { return 0; }
2721 _stddef=no
2722 cc_check && _stddef=yes
2723 if test "$_stddef" = yes ; then
2724 _def_stddef='#define HAVE_STDDEF_H 1'
2725 else
2726 _def_stddef='#undef HAVE_STDDEF_H'
2728 echores "$_stddef"
2731 echocheck "malloc.h"
2732 cat > $TMPC << EOF
2733 #include <malloc.h>
2734 int main(void) { (void) malloc(0); return 0; }
2736 _malloc=no
2737 cc_check && _malloc=yes
2738 if test "$_malloc" = yes ; then
2739 _def_malloc='#define HAVE_MALLOC_H 1'
2740 else
2741 _def_malloc='#undef HAVE_MALLOC_H'
2743 # malloc.h emits a warning in FreeBSD and OpenBSD
2744 freebsd || openbsd && _def_malloc='#undef HAVE_MALLOC_H'
2745 echores "$_malloc"
2748 echocheck "memalign()"
2749 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
2750 cat > $TMPC << EOF
2751 #include <malloc.h>
2752 int main (void) { (void) memalign(64, sizeof(char)); return 0; }
2754 _memalign=no
2755 cc_check && _memalign=yes
2756 if test "$_memalign" = yes ; then
2757 _def_memalign='#define HAVE_MEMALIGN 1'
2758 else
2759 _def_memalign='#undef HAVE_MEMALIGN'
2761 echores "$_memalign"
2764 echocheck "alloca.h"
2765 cat > $TMPC << EOF
2766 #include <alloca.h>
2767 int main(void) { (void) alloca(0); return 0; }
2769 _alloca=no
2770 cc_check && _alloca=yes
2771 if cc_check ; then
2772 _def_alloca='#define HAVE_ALLOCA_H 1'
2773 else
2774 _def_alloca='#undef HAVE_ALLOCA_H'
2776 echores "$_alloca"
2779 echocheck "mman.h"
2780 cat > $TMPC << EOF
2781 #include <sys/types.h>
2782 #include <sys/mman.h>
2783 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
2785 _mman=no
2786 cc_check && _mman=yes
2787 if test "$_mman" = yes ; then
2788 _def_mman='#define HAVE_SYS_MMAN_H 1'
2789 else
2790 _def_mman='#undef HAVE_SYS_MMAN_H'
2792 echores "$_mman"
2794 cat > $TMPC << EOF
2795 #include <sys/types.h>
2796 #include <sys/mman.h>
2797 int main(void) { void *p = MAP_FAILED; return 0; }
2799 _mman_has_map_failed=no
2800 cc_check && _mman_has_map_failed=yes
2801 if test "$_mman_has_map_failed" = yes ; then
2802 _def_mman_has_map_failed=''
2803 else
2804 _def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
2807 echocheck "dynamic loader"
2808 cat > $TMPC << EOF
2809 #include <dlfcn.h>
2810 int main(void) { dlopen(0, 0); dlclose(0); dlsym(0, 0); return 0; }
2812 _dl=no
2813 for _ld_tmp in "" "-ldl" ; do
2814 cc_check $_ld_tmp && _ld_dl="$_ld_tmp" && _dl=yes && break
2815 done
2816 if test "$_dl" = yes ; then
2817 _def_dl='#define HAVE_LIBDL 1'
2818 else
2819 _def_dl='#undef HAVE_LIBDL'
2821 echores "$_dl"
2824 echocheck "dynamic a/v plugins support"
2825 if test "$_dl" = no ; then
2826 _dynamic_plugins=no
2828 if test "$_dynamic_plugins" = yes ; then
2829 _def_dynamic_plugins='#define DYNAMIC_PLUGINS 1'
2830 else
2831 _def_dynamic_plugins='#undef DYNAMIC_PLUGINS'
2833 echores "$_dynamic_plugins"
2836 #echocheck "dynamic linking"
2837 # FIXME !! make this dynamic detection work and modify at the end (search _ld_dl_dynamic)
2838 # also gcc flags are different, but ld flags aren't (-Bdynamic/-Bstatic/-Bsymbolic)
2839 #cat > $TMPC << EOF
2840 #int main(void) { return 0; }
2841 #EOF
2842 #if cc_check -rdynamic ; then
2843 # _ld_dl_dynamic='-rdynamic'
2844 #elif cc_check -Bdynamic ; then
2845 # _ld_dl_dynamic='-Bdynamic'
2846 #elif cc_check ; then
2847 # _ld_dl_dynamic=''
2849 #echores "using $_ld_dl_dynamic"
2851 _def_threads='#undef HAVE_THREADS'
2853 echocheck "pthread"
2854 if test "$_pthreads" != no ; then
2855 cat > $TMPC << EOF
2856 #include <pthread.h>
2857 void* func(void *arg) { return arg; }
2858 int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }
2860 _pthreads=no
2861 if not hpux ; then
2862 for _ld_tmp in "-lpthreadGC2" "" "-lpthread" "-pthread" ; do
2863 # for crosscompilation, we cannot execute the program, be happy if we can link statically
2864 cc_check $_ld_tmp && (tmp_run || test "$_ld_static") && _ld_pthread="$_ld_tmp" && _pthreads=yes && break
2865 done
2868 if test "$_pthreads" = yes ; then
2869 echores "yes (using $_ld_pthread)"
2870 _pthreads='yes'
2871 _def_pthreads='#define HAVE_PTHREADS 1'
2872 _def_threads='#define HAVE_THREADS 1'
2873 else
2874 echores "no (v4l, vo_gl, ao_alsa, ao_nas, ao_macosx, win32 loader disabled)"
2875 _pthreads=''
2876 _def_pthreads='#undef HAVE_PTHREADS'
2877 _nas=no ; _tv_v4l=no ; _macosx=no
2878 if not mingw32 ; then
2879 _win32=no
2884 echocheck "iconv"
2885 if test "$_iconv" = auto ; then
2886 _iconv_tmp='#include <iconv.h>'
2888 cat > $TMPC << EOF
2889 #include <stdio.h>
2890 #include <unistd.h>
2891 $_iconv_tmp
2892 #define INBUFSIZE 1024
2893 #define OUTBUFSIZE 4096
2895 char inbuffer[INBUFSIZE];
2896 char outbuffer[OUTBUFSIZE];
2898 int main(void) {
2899 size_t numread;
2900 iconv_t icdsc;
2901 char *tocode="UTF-8";
2902 char *fromcode="cp1250";
2903 if ((icdsc = iconv_open (tocode, fromcode)) != (iconv_t)(-1)) {
2904 while ((numread = read (0, inbuffer, INBUFSIZE))) {
2905 char *iptr=inbuffer;
2906 char *optr=outbuffer;
2907 size_t inleft=numread;
2908 size_t outleft=OUTBUFSIZE;
2909 if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
2910 != (size_t)(-1)) {
2911 write (1, outbuffer, OUTBUFSIZE - outleft);
2914 if (iconv_close(icdsc) == -1)
2919 _iconv=no
2920 for _ld_tmp in "" "-liconv" "-liconv $_ld_dl" ; do
2921 cc_check $_ld_lm $_ld_tmp && _ld_iconv="$_ld_tmp" && _iconv=yes && break
2922 done
2924 if test "$_iconv" = yes ; then
2925 _def_iconv='#define USE_ICONV 1'
2926 else
2927 _def_iconv='#undef USE_ICONV'
2929 echores "$_iconv"
2932 echocheck "sys/soundcard.h"
2933 cat > $TMPC << EOF
2934 #include <sys/soundcard.h>
2935 int main(void) { return 0; }
2937 _sys_soundcard=no
2938 cc_check && _sys_soundcard=yes
2939 if test "$_sys_soundcard" = yes ; then
2940 _def_sys_soundcard='#define HAVE_SYS_SOUNDCARD_H 1'
2941 _inc_soundcard='#include <sys/soundcard.h>'
2942 else
2943 _def_sys_soundcard='#undef HAVE_SYS_SOUNDCARD_H'
2945 echores "$_sys_soundcard"
2947 if test "$_sys_soundcard" != yes ; then
2948 echocheck "soundcard.h"
2949 cat > $TMPC << EOF
2950 #include <soundcard.h>
2951 int main(void) { return 0; }
2953 _soundcard=no
2954 cc_check && _soundcard=yes
2955 if linux || test "$_ossaudio" != no ; then
2956 # use soundcard.h on Linux, or when OSS support is enabled
2957 echores "$_soundcard"
2958 else
2959 # we don't want to use soundcard.h on non-Linux if OSS support not enabled!
2960 echores "$_soundcard, but ignored!"
2961 _soundcard=no
2963 if test "$_soundcard" = yes ; then
2964 _def_soundcard='#define HAVE_SOUNDCARD_H 1'
2965 _inc_soundcard='#include <soundcard.h>'
2966 else
2967 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2969 else
2970 _def_soundcard='#undef HAVE_SOUNDCARD_H'
2974 echocheck "sys/dvdio.h"
2975 cat > $TMPC << EOF
2976 #include <unistd.h>
2977 #include <sys/dvdio.h>
2978 int main(void) { return 0; }
2980 _dvdio=no
2981 cc_check && _dvdio=yes
2982 if test "$_dvdio" = yes ; then
2983 _def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
2984 else
2985 _def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
2987 echores "$_dvdio"
2990 echocheck "sys/cdio.h"
2991 cat > $TMPC << EOF
2992 #include <unistd.h>
2993 #include <sys/cdio.h>
2994 int main(void) { return 0; }
2996 _cdio=no
2997 cc_check && _cdio=yes
2998 if test "$_cdio" = yes ; then
2999 _def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
3000 else
3001 _def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
3003 echores "$_cdio"
3006 echocheck "linux/cdrom.h"
3007 cat > $TMPC << EOF
3008 #include <sys/types.h>
3009 #include <linux/cdrom.h>
3010 int main(void) { return 0; }
3012 _cdrom=no
3013 cc_check && _cdrom=yes
3014 if test "$_cdrom" = yes ; then
3015 _def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
3016 else
3017 _def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
3019 echores "$_cdrom"
3022 echocheck "dvd.h"
3023 cat > $TMPC << EOF
3024 #include <dvd.h>
3025 int main(void) { return 0; }
3027 _dvd=no
3028 cc_check && _dvd=yes
3029 if test "$_dvd" = yes ; then
3030 _def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
3031 else
3032 _def_dvd='#undef DVD_STRUCT_IN_DVD_H'
3034 echores "$_dvd"
3037 echocheck "BSDI dvd.h"
3038 cat > $TMPC << EOF
3039 #include <dvd.h>
3040 int main(void) { return 0; }
3042 _bsdi_dvd=no
3043 cc_check && _bsdi_dvd=yes
3044 if test "$_bsdi_dvd" = yes ; then
3045 _def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
3046 else
3047 _def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
3049 echores "$_bsdi_dvd"
3052 echocheck "HPUX SCSI header"
3053 cat > $TMPC << EOF
3054 #include <sys/scsi.h>
3055 int main(void) { return 0; }
3057 _hpux_scsi_h=no
3058 cc_check && _hpux_scsi_h=yes
3059 if test "$_hpux_scsi_h" = yes ; then
3060 _def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
3061 else
3062 _def_hpux_scsi_h='#undef HPUX_SCTL_IO'
3064 echores "$_hpux_scsi_h"
3067 echocheck "userspace SCSI headers (Solaris)"
3068 cat > $TMPC << EOF
3069 # include <unistd.h>
3070 # include <stropts.h>
3071 # include <sys/scsi/scsi_types.h>
3072 # include <sys/scsi/impl/uscsi.h>
3073 int main(void) { return 0; }
3075 _sol_scsi_h=no
3076 cc_check && _sol_scsi_h=yes
3077 if test "$_sol_scsi_h" = yes ; then
3078 _def_sol_scsi_h='#define SOLARIS_USCSI 1'
3079 else
3080 _def_sol_scsi_h='#undef SOLARIS_USCSI'
3082 echores "$_sol_scsi_h"
3085 echocheck "termcap"
3086 if test "$_termcap" = auto ; then
3087 cat > $TMPC <<EOF
3088 int main(void) { tgetent(); return 0; }
3090 _termcap=no
3091 for _ld_tmp in "-lncurses" "-ltinfo" "-ltermcap"; do
3092 cc_check $_ld_tmp && _ld_termcap="$_ld_tmp" && _termcap=yes && break
3093 done
3095 if test "$_termcap" = yes ; then
3096 _def_termcap='#define USE_TERMCAP 1'
3097 _res_comment="using $_ld_termcap"
3098 else
3099 _def_termcap='#undef USE_TERMCAP'
3101 echores "$_termcap"
3104 echocheck "termios"
3105 if test "$_termios" = auto ; then
3106 cat > $TMPC <<EOF
3107 #include <sys/termios.h>
3108 int main(void) { return 0; }
3110 _termios=auto
3111 cc_check && _termios=yes
3112 _def_termios_h_name='sys/termios.h'
3114 # second test:
3115 if test "$_termios" = auto ; then
3116 cat > $TMPC <<EOF
3117 #include <termios.h>
3118 int main(void) { return 0; }
3120 _termios=no
3121 cc_check && _termios=yes
3122 _def_termios_h_name='termios.h'
3125 if test "$_termios" = yes ; then
3126 _def_termios='#define HAVE_TERMIOS 1'
3127 _def_termios_h='#undef HAVE_TERMIOS_H'
3128 _def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3130 if test "$_def_termios_h_name" = 'sys/termios.h' ; then
3131 _def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3132 elif test "$_def_termios_h_name" = 'termios.h' ; then
3133 _def_termios_h='#define HAVE_TERMIOS_H 1'
3135 _res_comment="using $_def_termios_h_name"
3136 else
3137 _def_termios='#undef HAVE_TERMIOS'
3138 _def_termios_h_name=''
3139 _termios=no
3141 echores "$_termios"
3144 echocheck "shm"
3145 if test "$_shm" = auto ; then
3146 cat > $TMPC << EOF
3147 #include <sys/types.h>
3148 #include <sys/shm.h>
3149 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3151 _shm=no
3152 cc_check && _shm=yes
3154 if test "$_shm" = yes ; then
3155 _def_shm='#define HAVE_SHM 1'
3156 else
3157 _def_shm='#undef HAVE_SHM'
3159 echores "$_shm"
3162 # XXX: FIXME, add runtime checking
3163 echocheck "linux devfs"
3164 echores "$_linux_devfs"
3167 echocheck "scandir()"
3168 cat > $TMPC << EOF
3169 int main (void) { scandir("", 0, 0, 0); alphasort(0, 0); return 0; }
3171 _scandir=no
3172 cc_check && _scandir=yes
3173 if test "$_scandir" = yes ; then
3174 _def_scandir='#define HAVE_SCANDIR 1'
3175 else
3176 _def_scandir='#undef HAVE_SCANDIR'
3178 echores "$_scandir"
3181 echocheck "strsep()"
3182 cat > $TMPC << EOF
3183 #include <string.h>
3184 int main (void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3186 _strsep=no
3187 cc_check && _strsep=yes
3188 if test "$_strsep" = yes ; then
3189 _def_strsep='#define HAVE_STRSEP 1'
3190 else
3191 _def_strsep='#undef HAVE_STRSEP'
3193 echores "$_strsep"
3195 echocheck "strlcpy()"
3196 cat > $TMPC << EOF
3197 #include <string.h>
3198 int main (void) { char *s = "Hello, world!", t[20]; (void) strlcpy(t, s, sizeof( t )); return 0; }
3200 _strlcpy=no
3201 cc_check && _strlcpy=yes
3202 if test "$_strlcpy" = yes ; then
3203 _def_strlcpy='#define HAVE_STRLCPY 1'
3204 else
3205 _def_strlcpy='#undef HAVE_STRLCPY'
3207 echores "$_strlcpy"
3209 echocheck "strlcat()"
3210 cat > $TMPC << EOF
3211 #include <string.h>
3212 int main (void) { char *s = "Hello, world!", t[20]; (void) strlcat(t, s, sizeof( t )); return 0; }
3214 _strlcat=no
3215 cc_check && _strlcat=yes
3216 if test "$_strlcat" = yes ; then
3217 _def_strlcat='#define HAVE_STRLCAT 1'
3218 else
3219 _def_strlcat='#undef HAVE_STRLCAT'
3221 echores "$_strlcat"
3223 echocheck "fseeko()"
3224 cat > $TMPC << EOF
3225 #include <stdio.h>
3226 int main (void) { int i; i = fseeko(stdin, 0, 0); return 0; }
3228 _fseeko=no
3229 cc_check && _fseeko=yes
3230 if test "$_fseeko" = yes ; then
3231 _def_fseeko='#define HAVE_FSEEKO 1'
3232 else
3233 _def_fseeko='#undef HAVE_FSEEKO'
3235 echores "$_fseeko"
3237 echocheck "localtime_r()"
3238 cat > $TMPC << EOF
3239 #include <time.h>
3240 int main( void ) { localtime_r(NULL, NULL); }
3242 _localtime_r=no
3243 cc_check && _localtime_r=yes
3244 if test "$_localtime_r" = yes ; then
3245 _def_localtime_r='#define HAVE_LOCALTIME_R 1'
3246 else
3247 _def_localtime_r='#undef HAVE_LOCALTIME_R'
3249 echores "$_localtime_r"
3251 echocheck "vsscanf()"
3252 cat > $TMPC << EOF
3253 #include <stdarg.h>
3254 int main(void) { vsscanf(0, 0, 0); return 0; }
3256 _vsscanf=no
3257 cc_check && _vsscanf=yes
3258 if test "$_vsscanf" = yes ; then
3259 _def_vsscanf='#define HAVE_VSSCANF 1'
3260 else
3261 _def_vsscanf='#undef HAVE_VSSCANF'
3263 echores "$_vsscanf"
3266 echocheck "swab()"
3267 cat > $TMPC << EOF
3268 #include <unistd.h>
3269 int main(void) { swab(0, 0, 0); return 0; }
3271 _swab=no
3272 cc_check && _swab=yes
3273 if test "$_swab" = yes ; then
3274 _def_swab='#define HAVE_SWAB 1'
3275 else
3276 _def_swab='#undef HAVE_SWAB'
3278 echores "$_swab"
3280 echocheck "posix select()"
3281 cat > $TMPC << EOF
3282 #include <stdio.h>
3283 #include <stdlib.h>
3284 #include <sys/types.h>
3285 #include <string.h>
3286 #include <sys/time.h>
3287 #include <unistd.h>
3288 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3290 _posix_select=no
3291 cc_check && _posix_select=yes
3292 if test "$_posix_select" = no ; then
3293 _def_no_posix_select='#define HAVE_NO_POSIX_SELECT 1'
3294 else
3295 _def_no_posix_select='#undef HAVE_NO_POSIX_SELECT'
3297 echores "$_posix_select"
3300 echocheck "gettimeofday()"
3301 cat > $TMPC << EOF
3302 #include <stdio.h>
3303 #include <sys/time.h>
3304 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3306 _gettimeofday=no
3307 cc_check && _gettimeofday=yes
3308 if test "$_gettimeofday" = yes ; then
3309 _def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3310 else
3311 _def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3313 echores "$_gettimeofday"
3316 echocheck "glob()"
3317 cat > $TMPC << EOF
3318 #include <stdio.h>
3319 #include <glob.h>
3320 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3322 _glob=no
3323 cc_check && _glob=yes
3324 if test "$_glob" = yes ; then
3325 _def_glob='#define HAVE_GLOB 1'
3326 else
3327 _def_glob='#undef HAVE_GLOB'
3329 echores "$_glob"
3332 echocheck "setenv()"
3333 cat > $TMPC << EOF
3334 #include <stdlib.h>
3335 int main (void){ setenv("","",0); return 0; }
3337 _setenv=no
3338 cc_check && _setenv=yes
3339 if test "$_setenv" = yes ; then
3340 _def_setenv='#define HAVE_SETENV 1'
3341 else
3342 _def_setenv='#undef HAVE_SETENV'
3344 echores "$_setenv"
3347 echocheck "sys/sysinfo.h"
3348 cat > $TMPC << EOF
3349 #include <sys/sysinfo.h>
3350 int main(void) {
3351 struct sysinfo s_info;
3352 sysinfo(&s_info);
3353 return 0;
3356 _sys_sysinfo=no
3357 cc_check && _sys_sysinfo=yes
3358 if test "$_sys_sysinfo" = yes ; then
3359 _def_sys_sysinfo='#define HAVE_SYS_SYSINFO_H 1'
3360 _inc_sysinfo='#include <sys/sysinfo.h>'
3361 else
3362 _def_sys_sysinfo='#undef HAVE_SYS_SYSINFO_H'
3364 echores "$_sys_sysinfo"
3367 echocheck "Mac OS X APIs"
3368 if test "$_macosx" = auto && darwin ; then
3369 productName=`/usr/bin/sw_vers -productName`
3370 if test "$productName" = "Mac OS X" ; then
3371 _macosx=yes
3372 else
3373 _macosx=no
3374 _def_macosx='#undef MACOSX'
3375 _noaomodules="macosx $_noaomodules"
3376 _novomodules="quartz $_novomodules"
3379 if test "$_macosx" = yes ; then
3380 cat > $TMPC <<EOF
3381 #include <Carbon/Carbon.h>
3382 #include <QuickTime/QuickTime.h>
3383 #include <CoreAudio/CoreAudio.h>
3384 int main(void) {
3385 EnterMovies();
3386 ExitMovies();
3387 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
3390 if cc_check -framework Carbon -framework QuickTime -framework CoreAudio; then
3391 _macosx=yes
3392 _macosx_frameworks="-framework Carbon -framework QuickTime -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
3393 _def_macosx='#define MACOSX 1'
3394 _aosrc="$_aosrc ao_macosx.c"
3395 _aomodules="macosx $_aomodules"
3396 _vosrc="$_vosrc vo_quartz.c"
3397 _vomodules="quartz $_vomodules"
3398 else
3399 _macosx=no
3400 _def_macosx='#undef MACOSX'
3401 _noaomodules="macosx $_noaomodules"
3402 _novomodules="quartz $_novomodules"
3404 cat > $TMPC <<EOF
3405 #include <Carbon/Carbon.h>
3406 #include <QuartzCore/CoreVideo.h>
3407 int main(void) {}
3409 if cc_check -framework Carbon -framework QuartzCore -framework OpenGL; then
3410 _vosrc="$_vosrc vo_macosx.m"
3411 _vomodules="macosx $_vomodules"
3412 _macosx_frameworks="$_macosx_frameworks -framework Cocoa -framework QuartzCore -framework OpenGL"
3413 _def_macosx_corevideo='#define MACOSX_COREVIDEO 1'
3414 _macosx_corevideo=yes
3415 else
3416 _novomodules="macosx $_novomodules"
3417 _def_macosx_corevideo='#undef MACOSX_COREVIDEO'
3418 _macosx_corevideo=no
3421 echores "$_macosx"
3423 echocheck "Mac OS X Finder Support"
3424 if test "$_macosx_finder_support" = auto ; then
3425 _macosx_finder_support=$_macosx
3427 if test "$_macosx_finder_support" = yes; then
3428 _def_macosx_finder_support='#define MACOSX_FINDER_SUPPORT 1'
3429 _macosx_finder_support=yes
3430 else
3431 _def_macosx_finder_support='#undef MACOSX_FINDER_SUPPORT'
3432 _macosx_finder_support=no
3434 echores "$_macosx_finder_support"
3436 echocheck "Mac OS X Bundle file locations"
3437 if test "$_macosx_bundle" = auto ; then
3438 _macosx_bundle=$_macosx_finder_support
3440 if test "$_macosx_bundle" = yes; then
3441 _def_macosx_bundle='#define MACOSX_BUNDLE 1'
3442 else
3443 _def_macosx_bundle='#undef MACOSX_BUNDLE'
3444 _macosx_bundle=no
3446 echores "$_macosx_bundle"
3448 echocheck "Samba support (libsmbclient)"
3449 if test "$_smbsupport" = yes; then
3450 _ld_smb="-lsmbclient"
3452 if test "$_smbsupport" = auto; then
3453 _smbsupport=no
3454 cat > $TMPC << EOF
3455 #include <libsmbclient.h>
3456 int main(void) { smbc_opendir("smb://"); return 0; }
3458 for _ld_tmp in "-lsmbclient" "-lsmbclient $_ld_dl" "-lsmbclient $_ld_dl -lnsl" "-lsmbclient $_ld_dl -lssl -lnsl" ; do
3459 cc_check $_ld_tmp && _ld_smb="$_ld_tmp" && _smbsupport=yes && break
3460 done
3463 if test "$_smbsupport" = yes; then
3464 _def_smbsupport="#define LIBSMBCLIENT"
3465 _inputmodules="smb $_inputmodules"
3466 else
3467 _def_smbsupport="#undef LIBSMBCLIENT"
3468 _noinputmodules="smb $_noinputmodules"
3470 echores "$_smbsupport"
3473 #########
3474 # VIDEO #
3475 #########
3478 echocheck "3dfx"
3479 if test "$_3dfx" = yes ; then
3480 _def_3dfx='#define HAVE_3DFX 1'
3481 _vosrc="$_vosrc vo_3dfx.c"
3482 _vomodules="3dfx $_vomodules"
3483 else
3484 _def_3dfx='#undef HAVE_3DFX'
3485 _novomodules="3dfx $_novomodules"
3487 echores "$_3dfx"
3490 echocheck "tdfxfb"
3491 if test "$_tdfxfb" = yes ; then
3492 _def_tdfxfb='#define HAVE_TDFXFB 1'
3493 _vosrc="$_vosrc vo_tdfxfb.c"
3494 _vomodules="tdfxfb $_vomodules"
3495 else
3496 _def_tdfxfb='#undef HAVE_TDFXFB'
3497 _novomodules="tdfxfb $_novomodules"
3499 echores "$_tdfxfb"
3501 echocheck "tdfxvid"
3502 if test "$_tdfxvid" = yes ; then
3503 _def_tdfxvid='#define HAVE_TDFX_VID 1'
3504 _vosrc="$_vosrc vo_tdfx_vid.c"
3505 _vomodules="tdfx_vid $_vomodules"
3506 else
3507 _def_tdfxvid='#undef HAVE_TDFX_VID'
3508 _novomodules="tdfx_vid $_novomodules"
3510 echores "$_tdfxfb"
3512 echocheck "tga"
3513 if test "$_tga" = yes ; then
3514 _def_tga='#define HAVE_TGA 1'
3515 _vosrc="$_vosrc vo_tga.c"
3516 _vomodules="tga $_vomodules"
3517 else
3518 _def_tga='#undef HAVE_TGA'
3519 _novomodules="tga $_novomodules"
3521 echores "$_tga"
3523 echocheck "DirectFB headers presence"
3524 if test -z "$_inc_directfb" ; then
3525 for I in /usr/include /usr/local/include `echo $_inc_extra | sed s/-I//g`; do
3526 if test -d "$I/directfb" && test -f "$I/directfb/directfb.h" ; then
3527 _inc_directfb="-I$I/directfb"
3528 echores "yes (using $_inc_directfb)"
3529 break
3531 if test -d "$I" && test -f "$I/directfb.h" ; then
3532 _inc_directfb="-I$I"
3533 echores "yes (using $_inc_directfb)"
3534 break
3536 done
3537 if test -z "$_inc_directfb" ; then
3538 _directfb=no
3539 echores "not found"
3541 else
3542 echores "yes (using $_inc_directfb)"
3544 if test "$_inc_directfb" = "-I/usr/include" ; then
3545 _inc_directfb=""
3548 echocheck "DirectFB"
3549 if test "$_directfb" = auto ; then
3550 _directfb=no
3551 cat > $TMPC <<EOF
3552 #include <directfb.h>
3553 int main(void) { IDirectFB *foo; DirectFBInit(0,0); return 0; }
3555 linux && test -c /dev/fb0 && cc_check $_inc_directfb -ldirectfb && _directfb=yes
3558 if test "$_directfb" = yes; then
3559 cat > $TMPC << EOF
3560 #include <directfb_version.h>
3562 dfb_ver = DIRECTFB_MAJOR_VERSION DIRECTFB_MINOR_VERSION DIRECTFB_MICRO_VERSION
3565 if $_cc -E $TMPC $_inc_directfb > "$TMPO"; then
3566 _directfb_version=`sed -n 's/^dfb_ver[^1-9]*\(.*\)/\1/p' "$TMPO" | tr -d '() '`
3567 _def_directfb_version="#define DIRECTFBVERSION $_directfb_version"
3568 if test "$_directfb_version" -ge 913; then
3569 _res_comment="$_directfb_version"
3570 else
3571 _def_directfb_version='#undef DIRECTFBVERSION'
3572 _directfb=no
3573 _res_comment="version >=0.9.13 required"
3575 else
3576 _directfb=no
3577 _res_comment="failed to get version"
3580 echores "$_directfb"
3582 if test "$_directfb" = yes ; then
3583 _def_directfb='#define HAVE_DIRECTFB 1'
3584 if test "$_directfb_version" -ge 913; then
3585 _vosrc="$_vosrc vo_directfb2.c"
3586 _vomodules="directfb $_vomodules"
3587 _ld_directfb='-ldirectfb'
3590 if test "$_directfb_version" -ge 915; then
3591 _vosrc="$_vosrc vo_dfbmga.c"
3592 _vomodules="dfbmga $_vomodules"
3594 else
3595 _def_directfb='#undef HAVE_DIRECTFB'
3596 _novomodules="directfb $_novomodules"
3597 _inc_directfb=""
3601 echocheck "X11 headers presence"
3602 if test -z "$_inc_x11" ; then
3603 for I in /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/include /usr/openwin/include ; do
3604 if test -d "$I/X11" && test -f "$I/X11/Xlib.h" ; then
3605 _inc_x11="-I$I"
3606 echores "yes (using $I)"
3607 break
3609 done
3610 if test -z "$_inc_x11" ; then
3611 _x11=no
3612 echores "not found (check if the dev(el) packages are installed)"
3614 else
3615 echores "yes (using $_inc_x11)"
3617 if test "$_inc_x11" = "-I/usr/include" ; then
3618 _inc_x11=""
3622 echocheck "X11"
3623 if test "$_x11" != no ; then
3624 cat > $TMPC <<EOF
3625 #include <X11/Xlib.h>
3626 #include <X11/Xutil.h>
3627 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
3629 if test -z "$_x11_paths" ; then
3630 _x11_paths="/usr/X11R6/lib /usr/lib/X11R6 /usr/X11/lib /usr/lib32 /usr/openwin/lib /usr/X11R6/lib64 /usr/lib"
3632 for I in $_x11_paths ; do
3633 _ld_x11="-L$I -lXext -lX11 $_ld_sock $_ld_pthread"
3634 if netbsd; then
3635 _ld_x11="$_ld_x11 -Wl,-R$I"
3637 if test -d "$I" && cc_check $_inc_x11 $_ld_x11 ; then
3638 _x11=yes
3639 break
3641 done
3643 if test "$_x11" = yes ; then
3644 _def_x11='#define HAVE_X11 1'
3645 _vosrc="$_vosrc x11_common.c vo_x11.c vo_xover.c"
3646 _vomodules="x11 xover $_vomodules"
3647 _res_comment="using $I"
3648 else
3649 _x11=no
3650 _def_x11='#undef HAVE_X11'
3651 _inc_x11=''
3652 _ld_x11=''
3653 _novomodules="x11 $_novomodules"
3654 _res_comment="check if the dev(el) packages are installed"
3656 echores "$_x11"
3659 echocheck "DPMS"
3660 _xdpms3=no
3661 _xdpms4=no
3662 if test "$_x11" = yes ; then
3663 cat > $TMPC <<EOF
3664 #include <X11/Xmd.h>
3665 #include <X11/Xlib.h>
3666 #include <X11/Xutil.h>
3667 #include <X11/Xatom.h>
3668 #include <X11/extensions/dpms.h>
3669 int main(void) {
3670 (void) DPMSQueryExtension(0, 0, 0);
3673 cc_check $_inc_x11 -lXdpms $_ld_x11 && _xdpms3=yes
3674 cat > $TMPC <<EOF
3675 #include <X11/Xlib.h>
3676 #include <X11/extensions/dpms.h>
3677 int main(void) {
3678 (void) DPMSQueryExtension(0, 0, 0);
3681 cc_check $_inc_x11 $_ld_x11 && _xdpms4=yes
3683 if test "$_xdpms4" = yes ; then
3684 _def_xdpms='#define HAVE_XDPMS 1'
3685 echores "yes (using Xdpms 4)"
3686 elif test "$_xdpms3" = yes ; then
3687 _def_xdpms='#define HAVE_XDPMS 1'
3688 _ld_x11="-lXdpms $_ld_x11"
3689 echores "yes (using Xdpms 3)"
3690 else
3691 _def_xdpms='#undef HAVE_XDPMS'
3692 echores "no"
3696 echocheck "Xv"
3697 if test "$_x11" = yes && test "$_xv" != no ; then
3698 cat > $TMPC <<EOF
3699 #include <X11/Xlib.h>
3700 #include <X11/extensions/Xvlib.h>
3701 int main(void) {
3702 (void) XvGetPortAttribute(0, 0, 0, 0);
3703 (void) XvQueryPortAttributes(0, 0, 0);
3704 return 0; }
3706 _xv=no
3707 cc_check $_inc_x11 -lXv $_ld_x11 && _xv=yes
3708 else
3709 _xv=no
3711 if test "$_xv" = yes ; then
3712 _def_xv='#define HAVE_XV 1'
3713 _ld_xv='-lXv'
3714 _vosrc="$_vosrc vo_xv.c"
3715 _vomodules="xv $_vomodules"
3716 else
3717 _def_xv='#undef HAVE_XV'
3718 _novomodules="xv $_novomodules"
3720 echores "$_xv"
3723 echocheck "XvMC"
3724 if test "$_x11" = yes && test "$_xv" = yes && test "$_xvmc" != no ; then
3725 _xvmc=no
3726 cat > $TMPC <<EOF
3727 #include <X11/Xlib.h>
3728 #include <X11/extensions/Xvlib.h>
3729 #include <X11/extensions/XvMClib.h>
3730 int main(void) {
3731 (void) XvMCQueryExtension(0,0,0);
3732 (void) XvMCCreateContext(0,0,0,0,0,0,0);
3733 return 0; }
3735 cc_check $_inc_x11 -lXvMC -l$_xvmclib $_ld_xv $_ld_x11 && _xvmc=yes
3737 if test "$_xvmc" = yes ; then
3738 _def_xvmc='#define HAVE_XVMC 1'
3739 _ld_xvmc="-lXvMC -l$_xvmclib"
3740 _vosrc="$_vosrc vo_xvmc.c"
3741 _vomodules="xvmc $_vomodules"
3742 else
3743 _def_xvmc='#undef HAVE_XVMC'
3744 _novomodules="xvmc $_novomodules"
3746 echores "$_xvmc"
3749 echocheck "Xinerama"
3750 if test "$_x11" = yes && test "$_xinerama" != no ; then
3751 cat > $TMPC <<EOF
3752 #include <X11/Xlib.h>
3753 #include <X11/extensions/Xinerama.h>
3754 int main(void) { (void) XineramaIsActive(0); return 0; }
3756 _xinerama=no
3757 cc_check $_inc_x11 -lXinerama $_ld_x11 && _xinerama=yes
3758 else
3759 _xinerama=no
3761 if test "$_xinerama" = yes ; then
3762 _def_xinerama='#define HAVE_XINERAMA 1'
3763 _ld_xinerama='-lXinerama'
3764 else
3765 _def_xinerama='#undef HAVE_XINERAMA'
3767 echores "$_xinerama"
3770 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3771 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3772 # named 'X extensions' or something similar.
3773 # This check may be useful for future mplayer versions (to change resolution)
3774 # If you run into problems, remove '-lXxf86vm'.
3775 echocheck "Xxf86vm"
3776 if test "$_x11" = yes && test "$_vm" = auto ; then
3777 cat > $TMPC <<EOF
3778 #include <X11/Xlib.h>
3779 #include <X11/extensions/xf86vmode.h>
3780 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
3782 _vm=no
3783 cc_check $_inc_x11 -lXxf86vm $_ld_x11 && _vm=yes
3785 if test "$_vm" = yes ; then
3786 _def_vm='#define HAVE_XF86VM 1'
3787 _ld_vm='-lXxf86vm'
3788 else
3789 _def_vm='#undef HAVE_XF86VM'
3791 echores "$_vm"
3793 # Check for the presence of special keycodes, like audio control buttons
3794 # that XFree86 might have. Used to be bundled with the xf86vm check, but
3795 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
3796 # have these new keycodes.
3797 echocheck "XF86keysym"
3798 if test "$_xf86keysym" = auto; then
3799 _xf86keysym=no
3800 if test "$_x11" = yes ; then
3801 cat > $TMPC <<EOF
3802 #include <X11/Xlib.h>
3803 #include <X11/XF86keysym.h>
3804 int main(void) { return XF86XK_AudioPause; }
3806 cc_check $_inc_x11 $_ld_x11 && _xf86keysym=yes
3809 if test "$_xf86keysym" = yes ; then
3810 _def_xf86keysym='#define HAVE_XF86XK 1'
3811 else
3812 _def_xf86keysym='#undef HAVE_XF86XK'
3814 echores "$_xf86keysym"
3816 echocheck "DGA"
3817 if test "$_x11" = no ; then
3818 _dga=no
3820 # Version 2 is preferred to version 1 if available
3821 if test "$_dga" = auto ; then
3822 cat > $TMPC << EOF
3823 #include <X11/Xlib.h>
3824 #include <X11/extensions/xf86dga.h>
3825 int main (void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
3827 _dga=no
3828 cc_check $_inc_x11 -lXxf86dga -lXxf86vm $_ld_x11 && _dga=1
3830 cat > $TMPC << EOF
3831 #include <X11/Xlib.h>
3832 #include <X11/extensions/xf86dga.h>
3833 int main (void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
3835 cc_check $_inc_x11 -lXxf86dga $_ld_x11 && _dga=2
3838 _def_dga='#undef HAVE_DGA'
3839 _def_dga2='#undef HAVE_DGA2'
3840 if test "$_dga" = 1 ; then
3841 _def_dga='#define HAVE_DGA 1'
3842 _ld_dga='-lXxf86dga'
3843 _vosrc="$_vosrc vo_dga.c"
3844 _vomodules="dga $_vomodules"
3845 echores "yes (using DGA 1.0)"
3846 elif test "$_dga" = 2 ; then
3847 _def_dga='#define HAVE_DGA 1'
3848 _def_dga2='#define HAVE_DGA2 1'
3849 _ld_dga='-lXxf86dga'
3850 _vosrc="$_vosrc vo_dga.c"
3851 _vomodules="dga $_vomodules"
3852 echores "yes (using DGA 2.0)"
3853 elif test "$_dga" = no ; then
3854 echores "no"
3855 _novomodules="dga $_novomodules"
3856 else
3857 die "DGA version must be 1 or 2"
3861 echocheck "OpenGL"
3862 #Note: this test is run even with --enable-gl since we autodetect $_ld_gl
3863 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
3864 cat > $TMPC << EOF
3865 #include <GL/gl.h>
3866 int main(void) { return 0; }
3868 _gl=no
3869 if cc_check $_inc_x11 $_ld_x11 -lGL $_ld_lm ; then
3870 _gl=yes
3871 _ld_gl="-lGL $_ld_dl"
3872 elif cc_check $_inc_x11 $_ld_x11 -lGL $_ld_lm $_ld_pthread ; then
3873 _gl=yes
3874 _ld_gl="-lGL $_ld_pthread $_ld_dl"
3875 elif cc_check -lopengl32 ; then
3876 _gl=yes
3877 _gl_win32=yes
3878 _ld_gl="-lopengl32 -lgdi32"
3880 else
3881 _gl=no
3883 if test "$_gl" = yes ; then
3884 _def_gl='#define HAVE_GL 1'
3885 _vosrc="$_vosrc vo_gl.c vo_gl2.c gl_common.c"
3886 if test "$_gl_win32" = yes ; then
3887 _def_gl_win32='#define GL_WIN32 1'
3888 _vosrc="$_vosrc w32_common.c"
3889 _res_comment="win32 version"
3891 _vomodules="opengl $_vomodules"
3892 else
3893 _def_gl='#undef HAVE_GL'
3894 _def_gl_win32='#undef GL_WIN32'
3895 _novomodules="opengl $_novomodules"
3897 echores "$_gl"
3900 echocheck "/dev/mga_vid"
3901 if test "$_mga" = auto ; then
3902 _mga=no
3903 test -c /dev/mga_vid && _mga=yes
3905 if test "$_mga" = yes ; then
3906 _def_mga='#define HAVE_MGA 1'
3907 _vosrc="$_vosrc vo_mga.c"
3908 _vomodules="mga $_vomodules"
3909 else
3910 _def_mga='#undef HAVE_MGA'
3911 _novomodules="mga $_novomodules"
3913 echores "$_mga"
3916 # echocheck "syncfb"
3917 # _syncfb=no
3918 # test "$_mga" = yes && _syncfb=yes
3919 # if test "$_syncfb" = yes ; then
3920 # _def_syncfb='#define HAVE_SYNCFB 1'
3921 # _vosrc="$_vosrc vo_syncfb.c"
3922 # else
3923 # _def_syncfb='#undef HAVE_SYNCFB'
3924 # fi
3925 # echores "$_syncfb"
3928 echocheck "xmga"
3929 if test "$_xmga" = auto ; then
3930 _xmga=no
3931 test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
3933 if test "$_xmga" = yes ; then
3934 _def_xmga='#define HAVE_XMGA 1'
3935 _vosrc="$_vosrc vo_xmga.c"
3936 _vomodules="xmga $_vomodules"
3937 else
3938 _def_xmga='#undef HAVE_XMGA'
3939 _novomodules="xmga $_novomodules"
3941 echores "$_xmga"
3944 echocheck "GGI"
3945 if test "$_ggi" = auto ; then
3946 cat > $TMPC << EOF
3947 #include <ggi/ggi.h>
3948 int main(void) { return 0; }
3950 _ggi=no
3951 cc_check -lggi && _ggi=yes
3953 if test "$_ggi" = yes ; then
3954 _def_ggi='#define HAVE_GGI 1'
3955 _ld_ggi='-lggi'
3956 _vosrc="$_vosrc vo_ggi.c"
3957 _vomodules="ggi $_vomodules"
3958 else
3959 _def_ggi='#undef HAVE_GGI'
3960 _novomodules="ggi $_novomodules"
3962 echores "$_ggi"
3964 echocheck "GGI extension: libggiwmh"
3965 if test "$_ggiwmh" = auto ; then
3966 _ggiwmh=no
3967 cat > $TMPC << EOF
3968 #include <ggi/ggi.h>
3969 #include <ggi/wmh.h>
3970 int main(void) { return 0; }
3972 cc_check -lggi -lggiwmh && _ggiwmh=yes
3974 # needed to get right output on obscure combination
3975 # like --disable-ggi --enable-ggiwmh
3976 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
3977 _def_ggiwmh='#define HAVE_GGIWMH 1'
3978 _ld_ggi="$_ld_ggi -lggiwmh"
3979 else
3980 _ggiwmh=no
3981 _def_ggiwmh='#undef HAVE_GGIWMH'
3983 echores "$_ggiwmh"
3986 echocheck "AA"
3987 if test "$_aa" = auto ; then
3988 cat > $TMPC << EOF
3989 #include <aalib.h>
3990 extern struct aa_hardware_params aa_defparams;
3991 extern struct aa_renderparams aa_defrenderparams;
3992 int main(void) {
3993 aa_context *c;
3994 aa_renderparams *p;
3995 (void) aa_init(0, 0, 0);
3996 c = aa_autoinit(&aa_defparams);
3997 p = aa_getrenderparams();
3998 aa_autoinitkbd(c,0);
3999 return 0; }
4001 _aa=no
4002 for _ld_tmp in "-laa" "$_ld_x11 -laa" ; do
4003 cc_check $_ld_tmp && _ld_aa=$_ld_tmp && _aa=yes && break
4004 done
4006 if test "$_aa" = yes ; then
4007 _def_aa='#define HAVE_AA 1'
4008 if cygwin ; then
4009 _ld_aa=`aalib-config --libs | cut -d " " -f 2,5,6`
4011 _vosrc="$_vosrc vo_aa.c"
4012 _vomodules="aa $_vomodules"
4013 else
4014 _def_aa='#undef HAVE_AA'
4015 _novomodules="aa $_novomodules"
4017 echores "$_aa"
4020 echocheck "CACA"
4021 if test "$_caca" = auto ; then
4022 _caca=no
4023 if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
4024 cat > $TMPC << EOF
4025 #include <caca.h>
4026 int main(void) { (void) caca_init(); return 0; }
4028 cc_check `caca-config --libs` && _caca=yes
4031 if test "$_caca" = yes ; then
4032 _def_caca='#define HAVE_CACA 1'
4033 _inc_caca=`caca-config --cflags`
4034 _ld_caca=`caca-config --libs`
4035 _vosrc="$_vosrc vo_caca.c"
4036 _vomodules="caca $_vomodules"
4037 else
4038 _def_caca='#undef HAVE_CACA'
4039 _novomodules="caca $_novomodules"
4041 echores "$_caca"
4044 echocheck "SVGAlib"
4045 if test "$_svga" = auto ; then
4046 cat > $TMPC << EOF
4047 #include <vga.h>
4048 int main(void) { return 0; }
4050 _svga=no
4051 cc_check -lvga $_ld_lm && _svga=yes
4053 if test "$_svga" = yes ; then
4054 _def_svga='#define HAVE_SVGALIB 1'
4055 _ld_svga="-lvga"
4056 _vosrc="$_vosrc vo_svga.c"
4057 _vomodules="svga $_vomodules"
4058 else
4059 _def_svga='#undef HAVE_SVGALIB'
4060 _novomodules="svga $_novomodules"
4062 echores "$_svga"
4065 echocheck "FBDev"
4066 if test "$_fbdev" = auto ; then
4067 _fbdev=no
4068 linux && test -c /dev/fb0 && _fbdev=yes
4070 if test "$_fbdev" = yes ; then
4071 _def_fbdev='#define HAVE_FBDEV 1'
4072 _vosrc="$_vosrc vo_fbdev.c vo_fbdev2.c"
4073 _vomodules="fbdev $_vomodules"
4074 else
4075 _def_fbdev='#undef HAVE_FBDEV'
4076 _novomodules="fbdev $_novomodules"
4078 echores "$_fbdev"
4082 echocheck "DVB"
4083 if test "$_dvb" != no ; then
4084 _dvb=no
4085 cat >$TMPC << EOF
4086 #include <sys/poll.h>
4087 #include <sys/ioctl.h>
4088 #include <stdio.h>
4089 #include <time.h>
4090 #include <unistd.h>
4092 #include <ost/dmx.h>
4093 #include <ost/frontend.h>
4094 #include <ost/sec.h>
4095 #include <ost/video.h>
4096 #include <ost/audio.h>
4097 int main(void) {return 0;}
4099 if cc_check ; then
4100 _dvb=yes
4101 else
4102 for I in "$_inc_dvb" "-I/usr/src/DVB/ost/include" ; do
4103 if cc_check "$I" ; then
4104 _dvb=yes
4105 _inc_dvb="$I"
4106 _res_comment="using $_inc_dvb"
4107 break
4109 done
4110 test "$_dvb" = no && _res_comment="specify path to DVB/ost/include with --with-dvbincdir=DIR"
4113 echores "$_dvb"
4114 if test "$_dvb" = yes ; then
4115 _def_dvb='#define HAVE_DVB 1'
4116 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4117 _aomodules="mpegpes(dvb) $_aomodules"
4118 _vomodules="mpegpes(dvb) $_vomodules"
4120 if test "$_dvbhead" != no ; then
4121 echocheck "DVB HEAD"
4122 if test "$_dvbhead" != no ; then
4123 _dvbhead=no
4125 cat >$TMPC << EOF
4126 #include <sys/poll.h>
4127 #include <sys/ioctl.h>
4128 #include <stdio.h>
4129 #include <time.h>
4130 #include <unistd.h>
4132 #include <linux/dvb/dmx.h>
4133 #include <linux/dvb/frontend.h>
4134 #include <linux/dvb/video.h>
4135 #include <linux/dvb/audio.h>
4136 int main(void) {return 0;}
4138 if cc_check ; then
4139 _dvbhead=yes
4140 else
4141 for I in "$_inc_dvb" "-I/usr/src/DVB/include" ; do
4142 if cc_check "$I" ; then
4143 _dvbhead=yes
4144 _inc_dvb="$I"
4145 _res_comment="using $_inc_dvb"
4146 break
4148 done
4149 test "$_dvbhead" = no && _res_comment="specify path to DVB/include (HEAD Version) with --with-dvbincdir=DIR"
4152 echores "$_dvbhead"
4153 if test "$_dvbhead" = yes ; then
4154 _def_dvb='#define HAVE_DVB_HEAD 1'
4155 _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4156 _aomodules="mpegpes(dvb) $_aomodules"
4157 _vomodules="mpegpes(dvb) $_vomodules"
4160 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4161 _def_dvb='#undef HAVE_DVB'
4162 _def_dvb_in='#undef HAS_DVBIN_SUPPORT '
4163 _aomodules="mpegpes(file) $_aomodules"
4164 _vomodules="mpegpes(file) $_vomodules"
4167 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4168 _dvbin=yes
4169 _inputmodules="dvb $_inputmodules"
4170 else
4171 _dvbin=no
4172 _noinputmodules="dvb $_noinputmodules"
4175 echocheck "PNG support"
4176 if test "$_png" = auto ; then
4177 _png=no
4178 if irix ; then
4179 # Don't check for -lpng on irix since it has its own libpng
4180 # incompatible with the GNU libpng
4181 _res_comment="disabled on irix (not GNU libpng)"
4182 else
4183 cat > $TMPC << EOF
4184 #include <png.h>
4185 #include <string.h>
4186 int main(void) {
4187 printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4188 printf("libpng: %s\n", png_libpng_ver);
4189 return (strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver));
4192 if cc_check -lpng -lz $_ld_lm ; then
4193 if tmp_run ; then
4194 _png=yes
4195 else
4196 _res_comment="mismatch of library and header versions"
4201 echores "$_png"
4202 if test "$_png" = yes ; then
4203 _def_png='#define HAVE_PNG 1'
4204 _ld_png='-lpng -lz'
4205 _vosrc="$_vosrc vo_png.c"
4206 _vomodules="png $_vomodules"
4207 _mkf_png="yes"
4208 else
4209 _def_png='#undef HAVE_PNG'
4210 _novomodules="png $_novomodules"
4211 _mkf_png="no"
4214 echocheck "JPEG support"
4215 if test "$_jpg" = auto ; then
4216 _jpg=no
4217 cat > $TMPC << EOF
4218 #include <stdio.h>
4219 #include <stdlib.h>
4220 #include <setjmp.h>
4221 #include <string.h>
4222 #include <jpeglib.h>
4223 int main(void) {
4224 return 0;
4227 if cc_check -ljpeg $_ld_lm ; then
4228 if tmp_run ; then
4229 _jpg=yes
4233 echores "$_jpg"
4235 if test "$_jpg" = yes ; then
4236 _def_jpg='#define HAVE_JPEG 1'
4237 _vosrc="$_vosrc vo_jpeg.c"
4238 _vomodules="jpeg $_vomodules"
4239 _ld_jpg="-ljpeg"
4240 _mkf_jpg="yes"
4241 else
4242 _def_jpg='#undef HAVE_JPEG'
4243 _novomodules="jpeg $_novomodules"
4244 _mkf_jpg="no"
4249 echocheck "PNM support"
4250 if test "$_pnm" = yes; then
4251 _def_pnm="#define HAVE_PNM"
4252 _vosrc="$_vosrc vo_pnm.c"
4253 _vomodules="pnm $_vomodules"
4254 else
4255 _def_pnm="#undef HAVE_PNM"
4256 _novomodules="pnm $_novomodules"
4258 echores "$_pnm"
4262 echocheck "md5sum support"
4263 if test "$_md5sum" = yes; then
4264 _def_md5sum="#define HAVE_MD5SUM"
4265 _vosrc="$_vosrc vo_md5sum.c md5sum.c"
4266 _vomodules="md5sum $_vomodules"
4267 else
4268 _def_md5sum="#undef HAVE_MD5SUM"
4269 _novomodules="md5sum $_novomodules"
4271 echores "$_md5sum"
4275 echocheck "GIF support"
4276 # This is to appease people who want to force gif support.
4277 # If it is forced to yes, then we still do checks to determine
4278 # which gif library to use.
4279 if test "$_gif" = yes ; then
4280 _force_gif=yes
4281 _gif=auto
4284 if test "$_gif" = auto ; then
4285 _gif=no
4286 cat > $TMPC << EOF
4287 #include <gif_lib.h>
4288 int main(void) {
4289 return 0;
4292 for _ld_tmp in "-lungif" "-lungif $_ld_x11" "-lgif" "-lgif $_ld_x11" ; do
4293 cc_check $_ld_tmp && tmp_run && _ld_gif="$_ld_tmp" && _gif=yes && break
4294 done
4297 # If no library was found, and the user wants support forced,
4298 # then we force it on with libgif, as this is the safest
4299 # assumption IMHO. (libungif & libregif both create symbolic
4300 # links to libgif. We also assume that no x11 support is needed,
4301 # because if you are forcing this, then you _should_ know what
4302 # you are doing. [ Besides, package maintainers should never
4303 # have compiled x11 deps into libungif in the first place. ] )
4304 # </rant>
4305 # --Joey
4306 if test "$_force_gif" = yes && test "$_gif" = no ; then
4307 _gif=yes
4308 _ld_gif="-lgif"
4311 if test "$_gif" = yes ; then
4312 _def_gif='#define HAVE_GIF 1'
4313 _vosrc="$_vosrc vo_gif89a.c"
4314 _codecmodules="gif $_codecmodules"
4315 _vomodules="gif89a $_vomodules"
4316 _mkf_gif="yes"
4317 _gif="yes (old version, some encoding functions disabled)"
4318 _def_gif_4='#undef HAVE_GIF_4'
4320 cat > $TMPC << EOF
4321 #include <signal.h>
4322 #include <gif_lib.h>
4323 void catch() { exit(1); }
4324 int main(void) {
4325 signal(SIGSEGV, catch); // catch segfault
4326 printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4327 EGifSetGifVersion("89a"); // this will segfault a buggy gif lib.
4328 return 0;
4331 if cc_check "$_ld_gif" && tmp_run ; then
4332 _def_gif_4='#define HAVE_GIF_4 1'
4333 _gif="yes"
4335 else
4336 _def_gif='#undef HAVE_GIF'
4337 _def_gif_4='#undef HAVE_GIF_4'
4338 _novomodules="gif89a $_novomodules"
4339 _nocodecmodules="gif $_nocodecmodules"
4340 _mkf_gif="no"
4342 echores "$_gif"
4345 case "$_gif" in yes*)
4346 echocheck "broken giflib workaround"
4347 _def_gif_tvt_hack='#define HAVE_GIF_TVT_HACK 1'
4349 cat > $TMPC << EOF
4350 #include <gif_lib.h>
4351 int main(void) {
4352 GifFileType gif;
4353 printf("UserData is at address %p\n", gif.UserData);
4354 return 0;
4357 if cc_check "$_ld_gif" && tmp_run ; then
4358 _def_gif_tvt_hack='#undef HAVE_GIF_TVT_HACK'
4359 echores "disabled"
4360 else
4361 echores "enabled"
4364 esac
4367 echocheck "VESA support"
4368 if test "$_vesa" = auto ; then
4369 cat > $TMPC << EOF
4370 #include <vbe.h>
4371 int main(void) { vbeVersion(); return 0; }
4373 _vesa=no
4374 cc_check -lvbe -llrmi && _vesa=yes
4376 if test "$_vesa" = yes ; then
4377 _def_vesa='#define HAVE_VESA 1'
4378 _ld_vesa="-lvbe -llrmi"
4379 _vosrc="$_vosrc vo_vesa.c vesa_lvo.c gtf.c"
4380 _vomodules="vesa $_vomodules"
4381 else
4382 _def_vesa='#undef HAVE_VESA'
4383 _novomodules="vesa $_novomodules"
4385 echores "$_vesa"
4387 #################
4388 # VIDEO + AUDIO #
4389 #################
4392 echocheck "SDL"
4393 if test -z "$_sdlconfig" ; then
4394 if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4395 _sdlconfig="sdl-config"
4396 elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4397 _sdlconfig="sdl11-config"
4398 else
4399 _sdlconfig=false
4402 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4403 cat > $TMPC << EOF
4404 #include <SDL.h>
4405 int main(int argc, char *argv[]) { return 0; }
4407 _sdl=no
4408 if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4409 if cc_check `$_sdlconfig --cflags` `$_sdlconfig --libs` >>"$TMPLOG" 2>&1 ; then
4410 _sdlversion=`$_sdlconfig --version | sed 's/[^0-9]//g'`
4411 if test "$_sdlversion" -gt 116 ; then
4412 if test "$_sdlversion" -lt 121 ; then
4413 _def_sdlbuggy='#define BUGGY_SDL'
4414 else
4415 _def_sdlbuggy='#undef BUGGY_SDL'
4417 _sdl=yes
4418 else
4419 _res_comment=outdated
4424 if test "$_sdl" = yes ; then
4425 _def_sdl='#define HAVE_SDL 1'
4426 if cygwin ; then
4427 _ld_sdl=`$_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/`
4428 _inc_sdl=`$_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/`
4429 elif mingw32 ; then
4430 _ld_sdl=`$_sdlconfig --libs | sed s/-mwindows//`
4431 _inc_sdl=`$_sdlconfig --cflags | sed s/-Dmain=SDL_main//`
4432 else
4433 _ld_sdl=`$_sdlconfig --libs`
4434 _inc_sdl=`$_sdlconfig --cflags`
4436 _vosrc="$_vosrc vo_sdl.c"
4437 _vomodules="sdl $_vomodules"
4438 _aosrc="$_aosrc ao_sdl.c"
4439 _aomodules="sdl $_aomodules"
4440 _res_comment="using $_sdlconfig"
4441 else
4442 _def_sdl='#undef HAVE_SDL'
4443 _novomodules="sdl $_novomodules"
4444 _noaomodules="sdl $_noaomodules"
4446 echores "$_sdl"
4448 echocheck "Windows waveout"
4449 if test "$_win32waveout" = auto ; then
4450 cat > $TMPC << EOF
4451 #include <windows.h>
4452 #include <mmsystem.h>
4453 int main(void) { return 0; }
4455 _win32waveout=no
4456 cc_check -lwinmm && _win32waveout=yes
4458 if test "$_win32waveout" = yes ; then
4459 _def_win32waveout='#define HAVE_WIN32WAVEOUT 1'
4460 _ld_win32libs="-lwinmm $_ld_win32libs"
4461 _aosrc="$_aosrc ao_win32.c"
4462 _aomodules="win32 $_aomodules"
4463 else
4464 _def_win32waveout='#undef HAVE_WIN32WAVEOUT'
4465 _noaomodules="win32 $_noaomodules"
4467 echores "$_win32waveout"
4469 echocheck "Directx"
4470 if test "$_directx" = auto ; then
4471 cat > $TMPC << EOF
4472 #include <windows.h>
4473 #include <ddraw.h>
4474 #include <dsound.h>
4475 int main(void) { return 0; }
4477 _directx=no
4478 cc_check -lgdi32 && _directx=yes
4480 if test "$_directx" = yes ; then
4481 _def_directx='#define HAVE_DIRECTX 1'
4482 _ld_win32libs="-lgdi32 $_ld_win32libs"
4483 _vosrc="$_vosrc vo_directx.c"
4484 _vomodules="directx $_vomodules"
4485 _aosrc="$_aosrc ao_dsound.c"
4486 _aomodules="dsound $_aomodules"
4487 else
4488 _def_directx='#undef HAVE_DIRECTX'
4489 _novomodules="directx $_novomodules"
4490 _noaomodules="dsound $_noaomodules"
4492 echores "$_directx"
4494 echocheck "NAS"
4495 if test "$_nas" = auto ; then
4496 cat > $TMPC << EOF
4497 #include <audio/audiolib.h>
4498 int main(void) { return 0; }
4500 _nas=no
4501 cc_check -laudio $_inc_x11 -lXt $_ld_x11 $_ld_lm && _nas=yes
4503 if test "$_nas" = yes ; then
4504 _def_nas='#define HAVE_NAS 1'
4505 _ld_nas="-laudio -lXt $_ld_x11"
4506 _aosrc="$_aosrc ao_nas.c"
4507 _aomodules="nas $_aomodules"
4508 else
4509 _noaomodules="nas $_noaomodules"
4510 _def_nas='#undef HAVE_NAS'
4512 echores "$_nas"
4514 echocheck "DXR2"
4515 if test "$_dxr2" = auto; then
4516 _dxr2=no
4517 cat > $TMPC << EOF
4518 #include <dxr2ioctl.h>
4519 int main(void) { return 0; }
4521 for _inc_dxr2 in "$_inc_dxr2" \
4522 "-I/usr/local/include/dxr2" \
4523 "-I/usr/include/dxr2"; do
4524 cc_check $_inc_dxr2 && _dxr2=yes && break
4525 done
4527 if test "$_dxr2" = yes; then
4528 _def_dxr2='#define HAVE_DXR2 1'
4529 _vosrc="$_vosrc vo_dxr2.c"
4530 _aosrc="$_aosrc ao_dxr2.c"
4531 _aomodules="dxr2 $_aomodules"
4532 _vomodules="dxr2 $_vomodules"
4533 _res_comment="using $_inc_dxr2"
4534 else
4535 _def_dxr2='#undef HAVE_DXR2'
4536 _noaomodules="dxr2 $_noaomodules"
4537 _novomodules="dxr2 $_novomodules"
4538 _inc_dxr2=""
4540 echores "$_dxr2"
4542 echocheck "DXR3/H+"
4543 if test "$_dxr3" = auto ; then
4544 cat > $TMPC << EOF
4545 #include <linux/em8300.h>
4546 int main(void) { return 0; }
4548 _dxr3=no
4549 cc_check && _dxr3=yes
4551 if test "$_dxr3" = yes ; then
4552 _def_dxr3='#define HAVE_DXR3 1'
4553 _vosrc="$_vosrc vo_dxr3.c"
4554 _vomodules="dxr3 $_vomodules"
4555 else
4556 _def_dxr3='#undef HAVE_DXR3'
4557 _novomodules="dxr3 $_novomodules"
4558 if test "$_mp1e" = auto ; then
4559 # we don't need mp1e
4560 _mp1e=no
4563 echores "$_dxr3"
4565 echocheck "libmp1e"
4566 if test "$_mmx" = no ; then
4567 # mp1e REQUIRES mmx!
4568 _mp1e=no
4570 if test "$_mp1e" != no ; then
4571 _mp1e=yes
4572 _def_mp1e='#define USE_MP1E'
4573 _ld_mp1e='libmp1e/libmp1e.a'
4574 _dep_mp1e='libmp1e/libmp1e.a'
4575 else
4576 _mp1e=no
4577 _def_mp1e='#undef USE_MP1E'
4578 _ld_mp1e=""
4579 _dep_mp1e=''
4581 echores "$_mp1e"
4584 echocheck "libfame"
4585 if test "$_fame" = auto ; then
4586 _fame=no
4587 test "$_dxr2" = yes && _fame=auto
4588 test "$_dxr3" = yes && _fame=auto
4589 test "$_dvb" = yes && _fame=auto
4591 if test "$_fame" = auto ; then
4592 _fame=no
4593 if test -d libfame && test -f libfame/fame.h ; then
4594 # disable fame on cygwin as no sense to port - atmos
4595 cygwin || _fame=yes
4596 else
4597 _res_comment="no fame dir"
4600 echores "$_fame"
4602 _def_fame='#undef USE_LIBFAME'
4603 if test "$_fame" = yes ; then
4604 _def_fame='#define USE_LIBFAME 1'
4605 _ld_fame='libfame/libfame.a'
4609 #########
4610 # AUDIO #
4611 #########
4614 echocheck "OSS Audio"
4615 if test "$_ossaudio" = auto ; then
4616 cat > $TMPC << EOF
4617 #include <sys/ioctl.h>
4618 $_inc_soundcard
4619 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
4621 _ossaudio=no
4622 cc_check && _ossaudio=yes
4624 if test "$_ossaudio" = yes ; then
4625 _def_ossaudio='#define USE_OSS_AUDIO 1'
4626 _aosrc="$_aosrc ao_oss.c"
4627 _aomodules="oss $_aomodules"
4628 if test "$_linux_devfs" = yes; then
4629 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
4630 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
4631 else
4632 cat > $TMPC << EOF
4633 #include <sys/ioctl.h>
4634 $_inc_soundcard
4635 #ifdef OPEN_SOUND_SYSTEM
4636 int main(void) { return 0; }
4637 #else
4638 #error Not the real thing
4639 #endif
4641 _real_ossaudio=no
4642 cc_check && _real_ossaudio=yes
4643 if test "$_real_ossaudio" = yes; then
4644 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4645 elif netbsd || openbsd ; then
4646 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
4647 _ld_arch="$_ld_arch -lossaudio"
4648 else
4649 _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4651 _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
4653 else
4654 _def_ossaudio='#undef USE_OSS_AUDIO'
4655 _def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
4656 _def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
4657 _noaomodules="oss $_noaomodules"
4659 echores "$_ossaudio"
4662 echocheck "aRts"
4663 if test "$_arts" = auto ; then
4664 _arts=no
4665 if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
4667 cat > $TMPC << EOF
4668 #include <artsc.h>
4669 int main(void) { return 0; }
4671 cc_check `artsc-config --libs` `artsc-config --cflags` && tmp_run && _arts=yes
4676 if test "$_arts" = yes ; then
4677 _def_arts='#define USE_ARTS 1'
4678 _aosrc="$_aosrc ao_arts.c"
4679 _aomodules="arts $_aomodules"
4680 _ld_arts=`artsc-config --libs`
4681 _inc_arts=`artsc-config --cflags`
4682 else
4683 _noaomodules="arts $_noaomodules"
4685 echores "$_arts"
4688 echocheck "EsounD"
4689 if test "$_esd" = auto ; then
4690 _esd=no
4691 if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
4693 cat > $TMPC << EOF
4694 #include <esd.h>
4695 int main(void) { return 0; }
4697 cc_check `esd-config --libs` `esd-config --cflags` && tmp_run && _esd=yes
4701 echores "$_esd"
4703 if test "$_esd" = yes ; then
4704 _def_esd='#define USE_ESD 1'
4705 _aosrc="$_aosrc ao_esd.c"
4706 _aomodules="esd $_aomodules"
4707 _ld_esd=`esd-config --libs`
4708 _inc_esd=`esd-config --cflags`
4710 echocheck "esd_get_latency()"
4711 cat > $TMPC << EOF
4712 #include <esd.h>
4713 int main(void) { return esd_get_latency(0); }
4715 cc_check `esd-config --libs` `esd-config --cflags` && _esd_latency=yes && _def_esd_latency='#define HAVE_ESD_LATENCY'
4716 echores "$_esd_latency"
4717 else
4718 _def_esd='#undef USE_ESD'
4719 _def_esd_latency='#undef HAVE_ESD_LATENCY'
4720 _noaomodules="esd $_noaomodules"
4723 echocheck "Polyp"
4724 if test "$_polyp" = auto ; then
4725 _polyp=no
4726 if ( pkg-config --exists 'polyplib >= 0.6 polyplib-error >= 0.6 polyplib-mainloop >= 0.6' ) >> "$TMPLOG" 2>&1 ; then
4728 cat > $TMPC << EOF
4729 #include <polyp/polyplib.h>
4730 #include <polyp/mainloop.h>
4731 #include <polyp/polyplib-error.h>
4732 int main(void) { return 0; }
4734 cc_check `pkg-config --libs --cflags polyplib polyplib-error polyplib-mainloop` && tmp_run && _polyp=yes
4738 echores "$_polyp"
4740 if test "$_polyp" = yes ; then
4741 _def_polyp='#define USE_POLYP 1'
4742 _aosrc="$_aosrc ao_polyp.c"
4743 _aomodules="polyp $_aomodules"
4744 _ld_polyp=`pkg-config --libs polyplib polyplib-error polyplib-mainloop`
4745 _inc_polyp=`pkg-config --cflags polyplib polyplib-error polyplib-mainloop`
4746 else
4747 _def_polyp='#undef USE_POLYP'
4748 _noaomodules="polyp $_noaomodules"
4752 echocheck "JACK"
4753 if test "$_jack" = auto ; then
4754 _jack=yes
4756 cat > $TMPC << EOF
4757 #include <jack/jack.h>
4758 int main(void) { jack_client_new("test"); return 0; }
4760 if cc_check -ljack ; then
4761 _ld_jack="-ljack"
4762 elif cc_check `pkg-config --libs --cflags --silence-errors jack` ; then
4763 _ld_jack="`pkg-config --libs jack`"
4764 _inc_jack="`pkg-config --cflags jack`"
4765 else
4766 _jack=no
4770 if test "$_jack" = yes ; then
4771 _def_jack='#define USE_JACK 1'
4772 _aosrc="$_aosrc ao_jack.c"
4773 _aomodules="jack $_aomodules"
4774 else
4775 _noaomodules="jack $_noaomodules"
4777 echores "$_jack"
4780 echocheck "ALSA audio"
4781 if test "$_alsa" != no ; then
4782 _alsa=no
4783 cat > $TMPC << EOF
4784 #include <sys/asoundlib.h>
4785 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 5))
4786 #error "alsa version != 0.5.x"
4787 #endif
4788 int main(void) { return 0; }
4790 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.5.x'
4792 cat > $TMPC << EOF
4793 #include <sys/asoundlib.h>
4794 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4795 #error "alsa version != 0.9.x"
4796 #endif
4797 int main(void) { return 0; }
4799 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-sys'
4800 cat > $TMPC << EOF
4801 #include <alsa/asoundlib.h>
4802 #if !((SND_LIB_MAJOR == 0) && (SND_LIB_MINOR == 9))
4803 #error "alsa version != 0.9.x"
4804 #endif
4805 int main(void) { return 0; }
4807 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='0.9.x-alsa'
4809 cat > $TMPC << EOF
4810 #include <sys/asoundlib.h>
4811 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4812 #error "alsa version != 1.0.x"
4813 #endif
4814 int main(void) { return 0; }
4816 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-sys'
4817 cat > $TMPC << EOF
4818 #include <alsa/asoundlib.h>
4819 #if !((SND_LIB_MAJOR == 1) && (SND_LIB_MINOR == 0))
4820 #error "alsa version != 1.0.x"
4821 #endif
4822 int main(void) { return 0; }
4824 cc_check -lasound $_ld_dl $_ld_pthread && _alsaver='1.0.x-alsa'
4826 _def_alsa5='#undef HAVE_ALSA5'
4827 _def_alsa9='#undef HAVE_ALSA9'
4828 _def_alsa1x='#undef HAVE_ALSA1X'
4829 _def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
4830 _def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
4831 if test "$_alsaver" ; then
4832 _alsa=yes
4833 if test "$_alsaver" = '0.5.x' ; then
4834 _aosrc="$_aosrc ao_alsa5.c"
4835 _aomodules="alsa5 $_aomodules"
4836 _def_alsa5='#define HAVE_ALSA5 1'
4837 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4838 _res_comment="using alsa 0.5.x and sys/asoundlib.h"
4839 elif test "$_alsaver" = '0.9.x-sys' ; then
4840 _aosrc="$_aosrc ao_alsa.c"
4841 _aomodules="alsa $_aomodules"
4842 _def_alsa9='#define HAVE_ALSA9 1'
4843 _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4844 _res_comment="using alsa 0.9.x and sys/asoundlib.h"
4845 elif test "$_alsaver" = '0.9.x-alsa' ; then
4846 _aosrc="$_aosrc ao_alsa.c"
4847 _aomodules="alsa $_aomodules"
4848 _def_alsa9='#define HAVE_ALSA9 1'
4849 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
4850 _res_comment="using alsa 0.9.x and alsa/asoundlib.h"
4851 elif test "$_alsaver" = '1.0.x-sys' ; then
4852 _aosrc="$_aosrc ao_alsa.c"
4853 _aomodules="alsa $_aomodules"
4854 _def_alsa1x="#define HAVE_ALSA1X 1"
4855 _def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4856 _res_comment="using alsa 1.0.x and sys/asoundlib.h"
4857 elif test "$_alsaver" = '1.0.x-alsa' ; then
4858 _aosrc="$_aosrc ao_alsa.c"
4859 _aomodules="alsa $_aomodules"
4860 _def_alsa1x="#define HAVE_ALSA1X 1"
4861 _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
4862 _res_comment="using alsa 1.0.x and alsa/asoundlib.h"
4863 else
4864 _alsa=no
4865 _res_comment="unknown version"
4867 _ld_alsa="-lasound $_ld_dl $_ld_pthread"
4868 else
4869 _noaomodules="alsa $_noaomodules"
4871 echores "$_alsa"
4874 echocheck "Sun audio"
4875 if test "$_sunaudio" = auto ; then
4876 cat > $TMPC << EOF
4877 #include <sys/types.h>
4878 #include <sys/audioio.h>
4879 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
4881 _sunaudio=no
4882 cc_check && _sunaudio=yes
4884 if test "$_sunaudio" = yes ; then
4885 _def_sunaudio='#define USE_SUN_AUDIO 1'
4886 _aosrc="$_aosrc ao_sun.c"
4887 _aomodules="sun $_aomodules"
4888 else
4889 _def_sunaudio='#undef USE_SUN_AUDIO'
4890 _noaomodules="sun $_noaomodules"
4892 echores "$_sunaudio"
4895 echocheck "Sun mediaLib"
4896 if test "$_mlib" = auto ; then
4897 _mlib=no
4898 test -z "$_mlibdir" && _mlibdir=/opt/SUNWmlib
4899 cat > $TMPC << EOF
4900 #include <mlib.h>
4901 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
4903 cc_check -I${_mlibdir}/include -L${_mlibdir}/lib -lmlib && _mlib=yes
4905 if test "$_mlib" = yes ; then
4906 _def_mlib='#define HAVE_MLIB 1'
4907 _inc_mlib=" -I${_mlibdir}/include "
4908 _ld_mlib=" -L${_mlibdir}/lib -R${_mlibdir}/lib -lmlib "
4909 else
4910 _def_mlib='#undef HAVE_MLIB'
4912 echores "$_mlib"
4915 echocheck "SGI audio"
4916 if test "$_sgiaudio" = auto ; then
4917 # check for SGI audio
4918 cat > $TMPC << EOF
4919 #include <dmedia/audio.h>
4920 int main(void) { return 0; }
4922 _sgiaudio=no
4923 cc_check && _sgiaudio=yes
4925 if test "$_sgiaudio" = "yes" ; then
4926 _def_sgiaudio='#define USE_SGI_AUDIO 1'
4927 _ld_sgiaudio='-laudio'
4928 _aosrc="$_aosrc ao_sgi.c"
4929 _aomodules="sgi $_aomodules"
4930 else
4931 _def_sgiaudio='#undef USE_SGI_AUDIO'
4932 _noaomodules="sgi $_noaomodules"
4934 echores "$_sgiaudio"
4937 echocheck "VCD support"
4938 if linux || bsdos || freebsd || netbsd || sunos || darwin ; then
4939 _inputmodules="vcd $_inputmodules"
4940 _def_vcd='#define HAVE_VCD 1'
4941 echores "ok"
4942 else
4943 _def_vcd='#undef HAVE_VCD'
4944 _noinputmodules="vcd $_noinputmodules"
4945 echores "not supported on this OS"
4948 echocheck "DVD support (libmpdvdkit)"
4949 if test "$_dvdkit" = auto ; then
4950 _dvdkit=no
4951 if linux || freebsd || netbsd || darwin || openbsd || win32 || sunos || hpux; then
4952 test -f "./libmpdvdkit2/Makefile" && _dvdkit=yes
4953 test -f "./libmpdvdkit/Makefile" && _dvdkit=yes
4956 if test "$_dvdkit" = yes ; then
4957 if test "$_dvd" = yes || test "$_cdrom" = yes || test "$_cdio" = yes || test "$_dvdio" = yes || test "$_bsdi_dvd" = yes || test "$_hpux_scsi_h" = yes || darwin || win32 ; then
4958 if test -f "./libmpdvdkit2/Makefile" ; then
4959 _inputmodules="mpdvdkit2 $_inputmodules"
4960 _dvdread=libmpdvdkit2
4961 _dvdkit2=yes
4962 _dvdkit=no
4963 else
4964 _inputmodules="mpdvdkit $_inputmodules"
4965 _dvdread=libmpdvdkit
4967 else
4968 _noinputmodules="mpdvdkit $_noinputmodules"
4970 _def_dvd_linux='#undef HAVE_LINUX_DVD_STRUCT'
4971 _def_dvd_bsd='#undef HAVE_BSD_DVD_STRUCT'
4972 _dev_dvd_openbsd='#undef HAVE_OPENBSD_DVD_STRUCT'
4973 _def_dvd_darwin='#undef DARWIN_DVD_IOCTL'
4974 if linux || netbsd || openbsd || bsdos ; then
4975 _def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
4976 if openbsd ; then
4977 _dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
4979 else
4980 if freebsd ; then
4981 _def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
4982 else
4983 if darwin ; then
4984 _def_dvd_darwin='#define DARWIN_DVD_IOCTL'
4988 else
4989 _noinputmodules="mpdvdkit $_noinputmodules"
4991 if test "$_dvdkit" = yes || test "$_dvdkit2" = yes; then
4992 _have_dvd=yes
4993 echores "yes"
4994 else
4995 echores "no"
4998 echocheck "DVD support (libdvdread)"
4999 if test "$_dvdread" = auto ; then
5000 cat > $TMPC << EOF
5001 #include <inttypes.h>
5002 #include <dvdread/dvd_reader.h>
5003 #include <dvdread/ifo_types.h>
5004 #include <dvdread/ifo_read.h>
5005 #include <dvdread/nav_read.h>
5006 int main(void) { return 0; }
5008 _dvdread=no
5009 if test "$_dl" = yes; then
5010 cc_check \
5011 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -ldvdread $_ld_dl && \
5012 _dvdread=yes
5015 _def_mpdvdkit="#undef USE_MPDVDKIT"
5016 case "$_dvdread" in
5017 yes)
5018 _largefiles=yes
5019 _def_dvdread='#define USE_DVDREAD 1'
5020 _ld_dvdread='-ldvdread'
5021 _inputmodules="dvdread $_inputmodules"
5022 _have_dvd=yes
5023 echores "yes"
5026 _def_dvdread='#undef USE_DVDREAD'
5027 _noinputmodules="dvdread $_noinputmodules"
5028 echores "no"
5030 libmpdvdkit)
5031 _largefiles=yes
5032 _def_dvdread='#define USE_DVDREAD 1'
5033 _ld_dvdread='-Llibmpdvdkit -lmpdvdkit'
5034 _noinputmodules="dvdread $_noinputmodules"
5035 _def_mpdvdkit="#define USE_MPDVDKIT 1"
5036 _have_dvd=yes
5037 echores "disabled by libmpdvdkit"
5039 libmpdvdkit2)
5040 _largefiles=yes
5041 _def_dvdread='#define USE_DVDREAD 1'
5042 _ld_dvdread='-Llibmpdvdkit2 -lmpdvdkit'
5043 _noinputmodules="dvdread $_noinputmodules"
5044 _def_mpdvdkit="#define USE_MPDVDKIT 2"
5045 _have_dvd=yes
5046 echores "disabled by libmpdvdkit2"
5048 esac
5050 if test "$_have_dvd" = yes ; then
5051 _def_have_dvd='#define HAVE_DVD 1'
5052 else
5053 _def_have_dvd='#undef HAVE_DVD'
5056 # dvdnav disabled, it does not work
5057 # echocheck "DVD support (libdvdnav)"
5058 # if test "$_dvdnav" = yes ; then
5059 # cat > $TMPC <<EOF
5060 # #include <dvdnav.h>
5061 # int main(void) { dvdnav_t *dvd=0; return 0; }
5062 # EOF
5063 # _dvdnav=no
5064 # test -n "$_dvdnavdir" && _legal_dvdnavdir=-L$_dvdnavdir/.libs
5065 # if test -z "$_dvdnavconfig" ; then
5066 # if ( dvdnav-config --version ) >/dev/null 2>&1 ; then
5067 # _dvdnavconfig="dvdnav-config"
5068 # fi
5069 # fi
5070 # test -z "$_dvdnavdir" && test -n "$_dvdnavconfig" && _dvdnavdir=`$_dvdnavconfig --cflags`
5071 # _used_css=
5072 # test "$_dvdkit" = no && test "$_dvdkit2" = no && _used_css=$_ld_css
5073 # cc_check $_inc_extra -I$_dvdnavdir $_legal_dvdnavdir -ldvdnav $_used_css $_ld_dl $_ld_pthread && _dvdnav=yes
5074 # fi
5075 # if test "$_dvdnav" = yes ; then
5076 # _largefiles=yes
5077 # _def_dvdnav='#define USE_DVDNAV 1'
5078 # if test -n "$_legal_dvdnavdir" ; then
5079 # _ld_css="$_ld_css $_legal_dvdnavdir -ldvdnav"
5080 # elif test -n "$_dvdnavconfig" ; then
5081 # _ld_css="$_ld_css `$_dvdnavconfig --libs`"
5082 # else
5083 # _ld_css="$_ld_css -ldvdnav"
5084 # fi
5085 # if test -n "$_dvdnavconfig" ; then
5086 # _dvdnav_version=`$_dvdnavconfig --version | sed "s/\.//g"`
5087 # _def_dvdnav_version="#define DVDNAVVERSION $_dvdnav_version"
5088 # fi
5089 # if test -n "$_dvdnavdir" ; then
5090 # _inc_extra="$_inc_extra -I$_dvdnavdir"
5091 # fi
5092 # _inputmodules="dvdnav $_inputmodules"
5093 # echores "yes"
5094 # else
5095 # _def_dvdnav='#undef USE_DVDNAV'
5096 # _noinputmodules="dvdnav $_noinputmodules"
5097 # echores "no"
5098 # fi
5100 echocheck "cdparanoia"
5101 if test "$_cdparanoia" = auto ; then
5102 cat > $TMPC <<EOF
5103 #include <cdda_interface.h>
5104 #include <cdda_paranoia.h>
5105 // This need a better test. How ?
5106 int main(void) { return 1; }
5108 _cdparanoia=no
5109 for _inc_tmp in "$_inc_cdparanoia" "-I/usr/include/cdda" "-I/usr/local/include/cdda" ; do
5110 cc_check $_inc_tmp $_ld_cdparanoia -lcdda_interface -lcdda_paranoia $_ld_lm && _inc_cdparanoia="$_inc_tmp" && _cdparanoia=yes && break
5111 done
5113 if test "$_cdparanoia" = yes ; then
5114 _def_cdparanoia='#define HAVE_CDDA'
5115 _inputmodules="cdda $_inputmodules"
5116 _ld_cdparanoia="$_ld_cdparanoia -lcdda_interface -lcdda_paranoia"
5117 openbsd && _ld_cdparanoia="$_ld_cdparanoia -lutil"
5118 else
5119 _def_cdparanoia='#undef HAVE_CDDA'
5120 _noinputmodules="cdda $_noinputmodules"
5122 echores "$_cdparanoia"
5125 echocheck "libcdio"
5126 if test "$_libcdio" = auto && test "$_cdparanoia" = no ; then
5127 if ( pkg-config --modversion libcdio) > /dev/null 2>&1 ; then
5128 cat > $TMPC << EOF
5129 #include <stdio.h>
5130 #include <cdio/version.h>
5131 #include <cdio/cdda.h>
5132 #include <cdio/paranoia.h>
5133 int main()
5135 printf("%s\n", CDIO_VERSION);
5136 return 0;
5140 _libcdio=no
5141 for _inc_tmp in "$_inc_libcdio" "-I/usr/include/cdio" "-I/usr/local/include/cdio" ; do
5142 cc_check `pkg-config --cflags --libs libcdio` $_inc_tmp $_ld_libcdio -lcdio_cdda -lcdio_paranoia $_ld_lm && _inc_libcdio="$_inc_tmp" && ( $TMPO >> "$TMPLOG" ) && _libcdio=yes && break
5143 done
5144 else
5145 _libcdio=no
5148 if test "$_libcdio" = yes && test "$_cdparanoia" = no ; then
5149 _def_libcdio='#define HAVE_LIBCDIO'
5150 _def_cdparanoia='#define HAVE_CDDA'
5151 _def_havelibcdio='yes'
5152 _inputmodules="cdda $_inputmodules"
5153 _inc_libcdio=`pkg-config --cflags libcdio`
5154 _ld_libcdio=`pkg-config --libs libcdio`
5155 _ld_cdparanoia="$_ld_cdparanoia -lcdio_cdda -lcdio_paranoia -lcdio"
5156 else
5157 if test "$_cdparanoia" = yes ; then
5158 _libcdio="no (using cdparanoia)"
5159 else
5160 _libcdio=no
5162 _def_libcdio='#undef HAVE_LIBCDIO'
5163 _def_havelibcdio='no'
5165 echores "$_libcdio"
5168 echocheck "freetype >= 2.0.9"
5170 # freetype depends on iconv
5171 if test "$_iconv" = no ; then
5172 _freetype=no
5173 _res_comment="iconv support needed"
5176 if test "$_freetype" = auto ; then
5177 if ( $_freetypeconfig --version ) >/dev/null 2>&1 ; then
5178 cat > $TMPC << EOF
5179 #include <stdio.h>
5180 #include <ft2build.h>
5181 #include FT_FREETYPE_H
5182 #if ((FREETYPE_MAJOR < 2) || ((FREETYPE_MINOR == 0) && (FREETYPE_PATCH < 9)))
5183 #error "Need FreeType 2.0.9 or newer"
5184 #endif
5185 int main()
5187 FT_Library library;
5188 FT_Int major=-1,minor=-1,patch=-1;
5189 int err=FT_Init_FreeType(&library);
5190 if(err){
5191 printf("Couldn't initialize freetype2 lib, err code: %d\n",err);
5192 exit(err);
5194 FT_Library_Version(library,&major,&minor,&patch); // in v2.1.0+ only :(((
5195 printf("freetype2 header version: %d.%d.%d library version: %d.%d.%d\n",
5196 FREETYPE_MAJOR,FREETYPE_MINOR,FREETYPE_PATCH,
5197 (int)major,(int)minor,(int)patch );
5198 if(major!=FREETYPE_MAJOR || minor!=FREETYPE_MINOR){
5199 printf("Library and header version mismatch! Fix it in your distribution!\n");
5200 exit(1);
5202 return 0;
5205 _freetype=no
5206 cc_check `$_freetypeconfig --cflags` `$_freetypeconfig --libs` && tmp_run && _freetype=yes
5207 else
5208 _freetype=no
5211 if test "$_freetype" = yes ; then
5212 _def_freetype='#define HAVE_FREETYPE'
5213 _inc_freetype=`$_freetypeconfig --cflags`
5214 _ld_freetype=`$_freetypeconfig --libs`
5215 else
5216 _def_freetype='#undef HAVE_FREETYPE'
5218 echores "$_freetype"
5220 if test "$_freetype" = no ; then
5221 _fontconfig=no
5222 _res_comment="freetype support needed"
5224 echocheck "fontconfig"
5225 if test "$_fontconfig" = auto ; then
5226 cat > $TMPC << EOF
5227 #include <stdio.h>
5228 #include <fontconfig/fontconfig.h>
5229 int main()
5231 int err = FcInit();
5232 if(err == FcFalse){
5233 printf("Couldn't initialize fontconfig lib\n");
5234 exit(err);
5236 return 0;
5240 _fontconfig=yes
5241 if cc_check -lfontconfig ; then
5242 _ld_fontconfig="-lfontconfig"
5243 elif cc_check `pkg-config --cflags --libs fontconfig` ; then
5244 _inc_fontconfig=`pkg-config --cflags fontconfig`
5245 _ld_fontconfig=`pkg-config --libs fontconfig`
5246 else
5247 _fontconfig=no
5250 if test "$_fontconfig" = yes ; then
5251 _def_fontconfig='#define HAVE_FONTCONFIG'
5252 else
5253 _def_fontconfig='#undef HAVE_FONTCONFIG'
5255 echores "$_fontconfig"
5257 echocheck "fribidi with charsets"
5258 if test "$_fribidi" = auto ; then
5259 if ( $_fribidiconfig --version ) >/dev/null 2>&1 ; then
5260 cat > $TMPC << EOF
5261 #include <stdio.h>
5262 /* workaround for fribidi 0.10.4 and below */
5263 #define FRIBIDI_CHARSET_UTF8 FRIBIDI_CHAR_SET_UTF8
5264 #include <fribidi/fribidi.h>
5265 int main()
5267 if(fribidi_parse_charset("UTF-8") != FRIBIDI_CHAR_SET_UTF8) {
5268 printf("Fribidi headers are not consistents with the library!\n");
5269 exit(1);
5271 return 0;
5274 _fribidi=no
5275 cc_check `$_fribidiconfig --cflags` `$_fribidiconfig --libs` && tmp_run && _fribidi=yes
5276 else
5277 _fribidi=no
5280 if test "$_fribidi" = yes ; then
5281 _def_fribidi='#define USE_FRIBIDI'
5282 _inc_fribidi=`$_fribidiconfig --cflags`
5283 _ld_fribidi=`$_fribidiconfig --libs`
5284 else
5285 _def_fribidi='#undef USE_FRIBIDI'
5287 echores "$_fribidi"
5290 echocheck "ENCA"
5291 if test "$_enca" = auto ; then
5292 cat > $TMPC << EOF
5293 #include <enca.h>
5294 int main()
5296 const char **langs;
5297 size_t langcnt;
5298 langs = enca_get_languages(&langcnt);
5299 return 0;
5302 _enca=no
5303 cc_check -lenca $_ld_lm && _enca=yes
5305 if test "$_enca" = yes ; then
5306 _def_enca='#define HAVE_ENCA 1'
5307 _ld_enca='-lenca'
5308 else
5309 _def_enca='#undef HAVE_ENCA'
5311 echores "$_enca"
5314 echocheck "zlib"
5315 cat > $TMPC << EOF
5316 #include <zlib.h>
5317 int main(void) { (void) inflate(0, Z_NO_FLUSH); return 0; }
5319 _zlib=no
5320 cc_check -lz && _zlib=yes
5321 if test "$_zlib" = yes ; then
5322 _def_zlib='#define HAVE_ZLIB 1'
5323 _ld_zlib='-lz'
5324 else
5325 _def_zlib='#undef HAVE_ZLIB'
5327 echores "$_zlib"
5330 echocheck "RTC"
5331 if test "$_rtc" = auto ; then
5332 cat > $TMPC << EOF
5333 #include <sys/ioctl.h>
5334 #ifdef __linux__
5335 #include <linux/rtc.h>
5336 #else
5337 #include <rtc.h>
5338 #define RTC_PIE_ON RTCIO_PIE_ON
5339 #endif
5340 int main(void) { return RTC_PIE_ON; }
5342 _rtc=no
5343 cc_check && _rtc=yes
5345 if test "$_rtc" = yes ; then
5346 _def_rtc='#define HAVE_RTC 1'
5347 else
5348 _def_rtc='#undef HAVE_RTC'
5350 echores "$_rtc"
5353 echocheck "external liblzo support"
5354 if test "$_liblzo" = auto ; then
5355 _liblzo=no
5356 cat > $TMPC << EOF
5357 #include <lzo1x.h>
5358 int main(void) { lzo_init();return 0; }
5360 cc_check -llzo && _liblzo=yes
5362 if test "$_liblzo" = yes ; then
5363 _def_liblzo='#define USE_LIBLZO 1'
5364 _ld_liblzo='-llzo'
5365 _codecmodules="liblzo $_codecmodules"
5366 else
5367 _def_liblzo='#undef USE_LIBLZO'
5368 _nocodecmodules="liblzo $_nocodecmodules"
5370 echores "$_liblzo"
5373 echocheck "mad support"
5374 if test "$_mad" = auto ; then
5375 _mad=no
5376 cat > $TMPC << EOF
5377 #include <mad.h>
5378 int main(void) { return 0; }
5380 cc_check $_madlibdir -lmad && _mad=yes
5382 if test "$_mad" = yes ; then
5383 _def_mad='#define USE_LIBMAD 1'
5384 _ld_mad='-lmad'
5385 _codecmodules="libmad $_codecmodules"
5386 else
5387 _def_mad='#undef USE_LIBMAD'
5388 _nocodecmodules="libmad $_nocodecmodules"
5390 echores "$_mad"
5392 echocheck "Toolame"
5393 if test "$_toolame" = auto ; then
5394 cat > $TMPC <<EOF
5395 #include <toolame.h>
5396 int main(void) { toolame_init(); return 0; }
5398 _toolame=no
5399 _toolame_extraflags=""
5400 _toolame_lib="-ltoolame"
5401 if test -n "$_toolamedir"; then
5402 _toolame_extraflags="-I$_toolamedir -L$_toolamedir"
5404 cc_check $_toolame_extraflags $_toolame_lib $_ld_lm && _toolame=yes
5406 if test "$_toolame" = yes ; then
5407 _def_toolame='#define HAVE_TOOLAME 1'
5408 _codecmodules="$_codecmodules toolame"
5409 else
5410 _def_toolame='#undef HAVE_TOOLAME'
5411 _toolame_lib=""
5412 _nocodecmodules="toolame $_nocodecmodules"
5414 if test "$_toolamedir" ; then
5415 _res_comment="using $_toolamedir"
5417 echores "$_toolame"
5419 echocheck "Twolame"
5420 if test "$_twolame" = auto ; then
5421 cat > $TMPC <<EOF
5422 #include <twolame.h>
5423 int main(void) { twolame_init(); return 0; }
5425 _twolame=no
5426 _twolame_lib="-ltwolame"
5427 cc_check $_twolame_lib $_ld_lm && _twolame=yes
5429 if test "$_twolame" = yes ; then
5430 _def_twolame='#define HAVE_TWOLAME 1'
5431 _codecmodules="$_codecmodules twolame"
5432 else
5433 _def_twolame='#undef HAVE_TWOLAME'
5434 _twolame_lib=""
5435 _nocodecmodules="twolame $_nocodecmodules"
5437 echores "$_twolame"
5439 echocheck "OggVorbis support"
5440 if test "$_tremor_internal" = yes; then
5441 _vorbis=yes
5442 elif test "$_vorbis" = auto; then
5443 _vorbis=no
5444 cat > $TMPC << EOF
5445 #include <vorbis/codec.h>
5446 int main(void) { vorbis_packet_blocksize(0,0); return 0; }
5448 cc_check -lvorbis -logg $_ld_lm && _vorbis=yes
5450 if test "$_vorbis" = yes ; then
5451 _def_vorbis='#define HAVE_OGGVORBIS 1'
5452 if test "$_tremor_internal" = yes ; then
5453 # do not set _ld_vorbis as it is resolved separately
5454 # mp3lame support for vorbis is deprecated so don't care
5455 _def_tremor='#define TREMOR 1'
5456 if test "$_tremor_low" = yes ; then
5457 _tremor_flags='-D_LOW_ACCURACY_'
5458 else
5459 _tremor_flags=''
5461 _codecmodules="tremor(internal) $_codecmodules"
5462 elif test "$_tremor" = yes ; then
5463 _def_tremor='#define TREMOR 1'
5464 _ld_vorbis='-lvorbisidec'
5465 _codecmodules="tremor $_codecmodules"
5466 else
5467 _def_tremor='#undef TREMOR'
5468 _ld_vorbis='-lvorbis -logg'
5469 _codecmodules="libvorbis $_codecmodules"
5471 else
5472 _def_vorbis='#undef HAVE_OGGVORBIS'
5473 _def_tremor='#undef TREMOR'
5474 _nocodecmodules="libvorbis $_nocodecmodules"
5476 if test "$_vorbis" = yes -a "$_tremor_internal" = yes -a "$_tremor_low" = yes ; then
5477 _res_comment="internal low accuracy Tremor"
5478 elif test "$_vorbis" = yes -a "$_tremor_internal" = yes ; then
5479 _res_comment="internal Tremor"
5480 elif test "$_vorbis" = yes -a "$_tremor" = yes ; then
5481 _res_comment="Tremor"
5483 echores "$_vorbis"
5485 echocheck "libspeex (version >= 1.1 required)"
5486 if test "$_speex" = auto ; then
5487 _speex=no
5488 cat > $TMPC << EOF
5489 #include <speex/speex.h>
5490 int main(void) {
5491 SpeexBits bits;
5492 void *dec;
5493 speex_decode_int(dec, &bits, dec);
5496 cc_check -lspeex $_ld_lm && _speex=yes
5498 if test "$_speex" = yes ; then
5499 _def_speex='#define HAVE_SPEEX 1'
5500 _ld_speex='-lspeex'
5501 _codecmodules="speex $_codecmodules"
5502 else
5503 _def_speex='#undef HAVE_SPEEX'
5504 _nocodecmodules="speex $_nocodecmodules"
5506 echores "$_speex"
5508 echocheck "OggTheora support"
5509 if test "$_theora" = auto ; then
5510 _theora=no
5511 cat > $TMPC << EOF
5512 #include <theora/theora.h>
5513 #include <string.h>
5514 int main(void)
5516 /* theora is in flux, make sure that all interface routines and
5517 * datatypes exist and work the way we expect it, so we don't break
5518 * mplayer */
5519 ogg_packet op;
5520 theora_comment tc;
5521 theora_info inf;
5522 theora_state st;
5523 yuv_buffer yuv;
5524 int r;
5525 double t;
5527 theora_info_init (&inf);
5528 theora_comment_init (&tc);
5530 return 0;
5532 /* we don't want to execute this kind of nonsense; just for making sure
5533 * that compilation works... */
5534 memset(&op, 0, sizeof(op));
5535 r = theora_decode_header (&inf, &tc, &op);
5536 r = theora_decode_init (&st, &inf);
5537 t = theora_granule_time (&st, op.granulepos);
5538 r = theora_decode_packetin (&st, &op);
5539 r = theora_decode_YUVout (&st, &yuv);
5540 theora_clear (&st);
5542 return 0;
5545 for _ld_theora in "`pkg-config --silence-errors --libs --cflags theora`" "-ltheora"; do
5546 cc_check $_ld_theora && _theora=yes && break
5547 done
5548 if test "$_theora" = no && test "$_tremor_internal" = yes; then
5549 for _ld_theora in "`pkg-config --silence-errors --libs --cflags theora`" "-ltheora"; do
5550 cc_check -I. tremor/bitwise.c $_ld_theora && _theora=yes && break
5551 done
5554 if test "$_theora" = yes ; then
5555 _def_theora='#define HAVE_OGGTHEORA 1'
5556 _codecmodules="libtheora $_codecmodules"
5557 # when --enable-theora is forced, we'd better provide a probably sane
5558 # $_ld_theora than nothing
5559 test -z "$_ld_theora" && _ld_theora="-ltheora -logg"
5560 else
5561 _def_theora='#undef HAVE_OGGTHEORA'
5562 _nocodecmodules="libtheora $_nocodecmodules"
5563 _ld_theora=""
5565 echores "$_theora"
5567 echocheck "mp3lib support"
5568 if test "$_mp3lib" = yes ; then
5569 _def_mp3lib='#define USE_MP3LIB 1'
5570 _codecmodules="mp3lib $_codecmodules"
5571 else
5572 _def_mp3lib='#undef USE_MP3LIB'
5573 _nocodecmodules="mp3lib $_nocodecmodules"
5575 echores "$_mp3lib"
5577 echocheck "liba52 support"
5578 if test "$_liba52" = yes ; then
5579 _def_liba52='#define USE_LIBA52 1'
5580 _codecmodules="liba52 $_codecmodules"
5581 else
5582 _def_liba52='#undef USE_LIBA52'
5583 _nocodecmodules="liba52 $_nocodecmodules"
5585 echores "$_liba52"
5587 echocheck "libdts support"
5588 if test "$_libdts" = auto ; then
5589 _libdts=no
5590 cat > $TMPC << EOF
5591 #include <inttypes.h>
5592 #include <dts.h>
5593 int main(void) { dts_init (0); return 0; }
5595 cc_check $_inc_libdts $_ld_libdts -ldts $_ld_lm && _libdts=yes
5597 if test "$_libdts" = yes ; then
5598 _def_libdts='#define CONFIG_DTS 1'
5599 _ld_libdts="$_ld_libdts -ldts"
5600 _codecmodules="libdts $_codecmodules"
5601 else
5602 _def_libdts='#undef CONFIG_DTS'
5603 _nocodecmodules="libdts $_nocodecmodules"
5605 echores "$_libdts"
5607 echocheck "libmpeg2 support"
5608 if test "$_libmpeg2" = yes ; then
5609 _def_libmpeg2='#define USE_LIBMPEG2 1'
5610 _codecmodules="libmpeg2 $_codecmodules"
5611 else
5612 _def_libmpeg2='#undef USE_LIBMPEG2'
5613 _nocodecmodules="libmpeg2 $_nocodecmodules"
5615 echores "$_libmpeg2"
5617 echocheck "libmpcdec (musepack, version >= 1.2.1 required)"
5618 if test "$_musepack" = auto ; then
5619 _musepack=no
5620 cat > $TMPC << EOF
5621 #include <mpcdec/mpcdec.h>
5622 int main(void) {
5623 mpc_streaminfo info;
5624 mpc_decoder decoder;
5625 mpc_decoder_set_streaminfo(&decoder, &info);
5626 mpc_decoder_decode_frame(&decoder, NULL, 0, NULL);
5629 cc_check -lmpcdec $_ld_lm && _musepack=yes
5631 if test "$_musepack" = yes ; then
5632 _def_musepack='#define HAVE_MUSEPACK 1'
5633 _ld_musepack='-lmpcdec'
5634 _codecmodules="musepack $_codecmodules"
5635 else
5636 _def_musepack='#undef HAVE_MUSEPACK'
5637 _nocodecmodules="musepack $_nocodecmodules"
5639 echores "$_musepack"
5642 echocheck "Matroska support"
5643 if test "$_matroska_internal" = yes ; then
5644 _inputmodules="matroska $_inputmodules"
5645 _def_matroska='#define HAVE_MATROSKA 1'
5646 else
5647 _noinputmodules="matroska $_noinputmodules"
5648 _def_matroska='#undef HAVE_MATROSKA'
5650 echores "$_matroska_internal"
5652 echocheck "FAAC (AAC encoder) support"
5653 if test "$_faac" = auto ; then
5654 cat > $TMPC <<EOF
5655 #include <inttypes.h>
5656 #include <faac.h>
5657 int main(void) { unsigned long x, y; faacEncOpen(48000, 2, &x, &y); return 0; }
5659 _faac=no
5660 for _ld_tmp in "-lfaac" "-lfaac -lmp4v2 -lstdc++" ; do
5661 cc_check -c -O4 $_ld_tmp $_ld_lm && _ld_faac="$_ld_tmp" && _faac=yes && break
5662 done
5664 if test "$_faac" = yes ; then
5665 _def_faac="#define HAVE_FAAC 1"
5666 _codecmodules="faac $_codecmodules"
5667 else
5668 _def_faac="#undef HAVE_FAAC"
5669 _nocodecmodules="faac $_nocodecmodules"
5671 echores "$_faac"
5673 echocheck "internal FAAD2 (AAC) support"
5674 _inc_faad="-I`pwd`/libfaad2"
5675 if test "$_faad_internal" = auto ; then
5676 # the faad check needs a config.h file
5677 if not test -f "config.h" ; then
5678 cat > config.h << EOF
5679 /* C99 lrintf function available */
5680 $_def_lrintf
5683 # internal faad: check if our dear gcc is able to compile it...
5684 cp "`pwd`/libfaad2/cfft.c" $TMPC
5685 if ( cc_check -c -O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer -D_GNU_SOURCE $_inc_faad ); then
5686 _faad_internal=yes
5687 else
5688 _faad_internal="no (broken gcc)"
5691 if test "$_faad_internal" = yes ; then
5692 _def_faad_internal="#define USE_INTERNAL_FAAD 1"
5693 _faad_external=no
5694 else
5695 _def_faad_internal="#undef USE_INTERNAL_FAAD"
5696 _inc_faad=
5698 echores "$_faad_internal"
5701 echocheck "external FAAD2 (AAC) support"
5702 if test "$_faad_external" != no ; then
5703 _ld_faad='-lfaad'
5704 _inc_faad="$_inc_extra"
5705 # external faad: check if it's really faad2 :)
5706 if test "$_faad_external" = auto ; then
5707 _faad_external=no
5708 cat > $TMPC << EOF
5709 #include <faad.h>
5710 #ifndef FAAD_MIN_STREAMSIZE
5711 #error Too old version
5712 #endif
5713 int main(void) { faacDecHandle testhand; faacDecFrameInfo testinfo; testhand = faacDecOpen(); faacDecInit(0, 0, 0, 0, 0); return 0; }
5715 cc_check $_inc_faad $_ld_faad $_ld_lm && _faad_external=yes
5718 echores "$_faad_external"
5720 if test "$_faad_external" = yes; then
5721 _def_faad='#define HAVE_FAAD 1'
5722 _codecmodules="faad2(external) $_codecmodules"
5723 elif test "$_faad_internal" = yes; then
5724 _def_faad='#define HAVE_FAAD 1'
5725 _codecmodules="faad2(internal) $_codecmodules"
5726 else
5727 _def_faad='#undef HAVE_FAAD'
5728 _nocodecmodules="faad2 $_nocodecmodules"
5729 _ld_faad=
5733 echocheck "LADSPA plugin support"
5734 if test "$_ladspa" = auto ; then
5735 cat > $TMPC <<EOF
5736 #include <stdio.h>
5737 #include <ladspa.h>
5738 int main(void) {
5739 const LADSPA_Descriptor *ld = NULL;
5740 return 0;
5743 _ladspa=no
5744 cc_check && _ladspa=yes
5746 if test "$_ladspa" = yes; then
5747 _def_ladspa="#define HAVE_LADSPA"
5748 _afsrc="$_afsrc af_ladspa.c"
5749 _afmodules="ladspa $_afmodules"
5750 else
5751 _def_ladspa="#undef HAVE_LADSPA"
5752 _noafmodules="ladspa $_noafmodules"
5754 echores "$_ladspa"
5757 if test "$_win32" = auto ; then
5758 if x86 ; then
5759 qnx && _win32=no
5760 else
5761 _win32=no # x86 arch only
5765 if test "$_win32" != no ; then
5766 if test -z "$_win32libdir" ; then
5767 for I in "$_libdir/codecs" "$_libdir/win32" /usr/local/lib/codecs /usr/lib/codecs /usr/local/lib/win32 /usr/lib/win32 ; do
5768 if test -d "$I" ; then
5769 _win32libdir="$I"
5770 break;
5772 done
5776 echocheck "Win32 codec DLL support"
5777 if test "$_win32" = auto ; then
5778 _win32=no
5779 test -n "$_win32libdir" && _win32=yes
5781 if test "$_win32" = yes ; then
5782 _def_win32='#define USE_WIN32DLL 1'
5783 _res_comment="using $_win32libdir"
5784 else
5785 _def_win32='#undef USE_WIN32DLL'
5786 _nocodecmodules="win32 $_nocodecmodules"
5787 _dshow=no
5789 echores "$_win32"
5791 if test "$_win32" != no ; then
5792 _def_win32_loader='#undef WIN32_LOADER'
5793 echocheck "Win32 loader support"
5794 _ld_win32='loader/libloader.a'
5795 _dep_win32='loader/libloader.a'
5796 _codecmodules="win32 $_codecmodules"
5797 if openbsd ; then
5798 x86 && _ld_win32="$_ld_win32 -li386"
5800 if not win32 ; then
5801 _def_win32_loader='#define WIN32_LOADER 1'
5802 echores "yes"
5803 else
5804 _ld_win32libs="$_ld_win32libs -ladvapi32 -lole32"
5805 echores "no (using native windows)"
5809 echocheck "DirectShow"
5810 if false ; then
5812 if test "$_dshow" != no ; then
5813 _dshow=no
5814 # check if compiler supports C++ and C++-libs are installed correctly
5815 cat > "$TMPCPP" << EOF
5816 #include <string>
5817 class myclass {
5818 private: int ret;
5819 public: int myreturn(void);
5821 int myclass::myreturn(void) { ret = 0; return ret ; }
5822 int main(void) { myclass myobject; return myobject.myreturn(); }
5824 if cxx_check && tmp_run ; then
5825 _dshow=yes
5826 echores "yes (C++ is ok)"
5827 else
5828 echores "no"
5829 cat << EOF
5831 Your C++ runtime environment is broken.
5833 Hints: Does $_cc support C++? Do you have you a C++ compiler installed?
5834 Are the C++ libraries correctly installed?
5835 Check for libstdc++ and in (/etc/)ld.so.conf.
5837 If you do not need DirectShow support, you can also use:
5838 ./configure --disable-dshow <your-normal-configure-options>
5839 to disable building the C++ based DirectShow code.
5842 die "$_cc's C++ is broken"
5848 echores "$_dshow"
5850 if test "$_dshow" = yes ; then
5851 _def_dshow='#define USE_DIRECTSHOW 1'
5852 _ld_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
5853 _dep_dshow='loader/dshow/libDS_Filter.a loader/dmo/libDMO_Filter.a'
5854 _codecmodules="dshow/dmo $_codecmodules"
5855 else
5856 _def_dshow='#undef USE_DIRECTSHOW'
5857 _nocodecmodules="dshow/dmo $_nocodecmodules"
5861 echocheck "XAnim DLL"
5862 if test "$_xanim" = auto ; then
5863 _xanim=no
5864 _res_comment="dynamic loader support needed"
5865 if test "$_dl" = yes ; then
5866 _res_comment="no suitable directory found - see DOCS/HTML/$_doc_lang/codecs.html"
5867 if test -z "$_xanimlibdir" ; then
5868 for I in "$_libdir/codecs" /usr/local/lib/xanim/mods /usr/lib/xanim/mods /usr/lib/xanim $XANIM_MOD_DIR ; do
5869 if test -d "$I" ; then
5870 _xanimlibdir="$I"
5871 break;
5873 done
5875 test "$_xanimlibdir" && _xanim=yes
5878 if test "$_xanim" = yes ; then
5879 _def_xanim='#define USE_XANIM 1'
5880 _def_xanim_path="#define XACODEC_PATH \"$_xanimlibdir\""
5881 _codecmodules="xanim $_codecmodules"
5882 _res_comment="using $_xanimlibdir"
5883 else
5884 _def_xanim='#undef USE_XANIM'
5885 _def_xanim_path='#undef XACODEC_PATH'
5886 _nocodecmodules="xanim $_nocodecmodules"
5888 echores "$_xanim"
5890 echocheck "RealPlayer DLL"
5891 if test "$_real" = auto ; then
5892 _real=no
5893 _res_comment="dynamic loader support needed"
5894 if test "$_dl" = yes || test "$_win32" = yes ; then
5895 # if test "$_dl" = yes ; then
5896 _res_comment="tested only on Linux/FreeBSD/NetBSD/Cygwin/MinGW/Darwin"
5897 if linux || freebsd || netbsd || win32 || darwin ; then
5898 _res_comment="no suitable directory found - see DOCS/HTML/$_doc_lang/codecs.html"
5899 if test -z "$_reallibdir" ; then
5900 for I in "$_libdir/codecs" "$_libdir/real" /usr/lib/real \
5901 /usr/lib/RealPlayer{9,8,}/Codecs /usr/local/RealPlayer{9,8,}/Codecs \
5902 /usr/local/lib/RealPlayer{9,8,}/Codecs /opt/RealPlayer{9,8,}/{Real/,}Codecs \
5903 {~,}/Applications/RealOne\ Player.app/Contents/MacOS/Library/Codecs \
5904 "$_win32libdir"; do
5905 if test -d "$I" ; then
5906 _reallibdir="$I"
5907 break
5909 done
5911 test "$_reallibdir" && _real=yes
5915 if test "$_real" = yes ; then
5916 _def_real='#define USE_REALCODECS 1'
5917 _def_real_path="#define REALCODEC_PATH \"$_reallibdir\""
5918 _codecmodules="real $_codecmodules"
5919 _res_comment="using $_reallibdir"
5920 else
5921 _def_real='#undef USE_REALCODECS'
5922 _def_real_path="#undef REALCODEC_PATH"
5923 _nocodecmodules="real $_nocodecmodules"
5925 echores "$_real"
5928 echocheck "LIVE555 Streaming Media libraries"
5929 if test "$_live" = auto && test "$_network" = yes ; then
5930 cat > $TMPCPP << EOF
5931 #include <liveMedia.hh>
5932 #if (LIVEMEDIA_LIBRARY_VERSION_INT < 1090195200)
5933 #error Please upgrade to version 2004.07.19 or later of the "LIVE555 Streaming Media" libraries - available from <www.live555.com/liveMedia/>
5934 #endif
5935 int main(void) {}
5938 _live=no
5939 for I in "$_livelibdir" "$_libdir/live" "/usr/lib/live" "/usr/local/live" "/usr/local/lib/live" ; do
5940 cxx_check -I$I/liveMedia/include -I$I/UsageEnvironment/include -I$I/groupsock/include && _livelibdir=$I && _live=yes && break
5941 done
5942 if test "$_live" != yes ; then
5943 if cxx_check -I/usr/include/liveMedia -I/usr/include/UsageEnvironment -I/usr/include/groupsock; then
5944 _live_dist=yes
5948 if test "$_live" = yes && test "$_network" = yes ; then
5949 echores "yes (using $_livelibdir)"
5950 _def_live='#define STREAMING_LIVE555 1'
5951 _live_libs_def="# LIVE555 Streaming Media libraries:
5952 LIVE_LIB_DIR = $_livelibdir
5953 LIVE_LIBS = \$(LIVE_LIB_DIR)/liveMedia/libliveMedia.a
5954 LIVE_LIBS += \$(LIVE_LIB_DIR)/groupsock/libgroupsock.a
5955 LIVE_LIBS += \$(LIVE_LIB_DIR)/UsageEnvironment/libUsageEnvironment.a
5956 LIVE_LIBS += \$(LIVE_LIB_DIR)/BasicUsageEnvironment/libBasicUsageEnvironment.a
5957 LIVE_LIBS += -lstdc++
5958 LIVE_INCLUDES = -I\$(LIVE_LIB_DIR)/liveMedia/include
5959 LIVE_INCLUDES += -I\$(LIVE_LIB_DIR)/UsageEnvironment/include
5960 LIVE_INCLUDES += -I\$(LIVE_LIB_DIR)/BasicUsageEnvironment/include
5961 LIVE_INCLUDES += -I\$(LIVE_LIB_DIR)/groupsock/include"
5962 _ld_live='$(LIVE_LIBS)'
5963 _inputmodules="live555 $_inputmodules"
5964 elif test "$_live_dist" = yes && test "$_network" = yes ; then
5965 echores "yes (using distribution version)"
5966 _live="yes"
5967 _def_live='#define STREAMING_LIVE555 1'
5968 _live_libs_def="# LIVE555 Streaming Media libraries:
5969 LIVE_LIB_DIR = $_livelibdir
5970 LIVE_LIBS = -lliveMedia
5971 LIVE_LIBS += -lgroupsock
5972 LIVE_LIBS += -lUsageEnvironment
5973 LIVE_LIBS += -lBasicUsageEnvironment
5974 LIVE_LIBS += -lstdc++
5975 LIVE_INCLUDES = -I/usr/include/liveMedia
5976 LIVE_INCLUDES += -I/usr/include/UsageEnvironment
5977 LIVE_INCLUDES += -I/usr/include/BasicUsageEnvironment
5978 LIVE_INCLUDES += -I/usr/include/groupsock"
5979 _ld_live='$(LIVE_LIBS)'
5980 _inputmodules="live555 $_inputmodules"
5981 else
5982 echores "no"
5983 _def_live='#undef STREAMING_LIVE555'
5984 _noinputmodules="live555 $_noinputmodules"
5987 echocheck "FFmpeg libavutil (static)"
5988 if test -d libavutil ; then
5989 _libavutil=yes
5990 else
5991 _libavutil=no
5993 echores "$_libavutil"
5995 echocheck "FFmpeg libavcodec (static)"
5996 if test "$_libavcodec" = auto ; then
5997 # Note: static linking is preferred to dynamic linking
5998 _libavcodec=no
5999 _res_comment="see DOCS/HTML/$_doc_lang/codecs.html"
6000 if test -d libavcodec && test -f libavcodec/utils.c ; then
6001 _res_comment="old ffmpeg version, use CVS !"
6002 if grep avcodec_find_encoder_by_name libavcodec/utils.c > /dev/null 2>&1 ; then
6003 # check if libavutil is a required
6004 cat > $TMPC << EOF
6005 #include "libavcodec/avcodec.h"
6006 #if LIBAVCODEC_BUILD >= 3211265
6007 #error We need libavutil!
6008 #endif
6009 int main(void) { return 0; }
6012 if cc_check -I. -I./libavutil; then
6013 _libavutil_required="no"
6014 else
6015 _libavutil_required="yes"
6017 _res_comment="libavutil availability does not fit libavcodec version"
6018 if test "$_libavutil_required" = "$_libavutil"; then
6019 _libavcodec="yes"
6020 _res_comment=""
6025 echores "$_libavcodec"
6027 echocheck "FFmpeg libavformat (static)"
6028 if test "$_libavformat" = auto ; then
6029 # Note: static linking is preferred to dynamic linking
6030 _libavformat=no
6031 if test -d libavformat && test -f libavformat/utils.c ; then
6032 _libavformat=yes
6035 echores "$_libavformat"
6037 _def_haveffpostprocess='no'
6038 if test -d libavcodec && test -f libavcodec/libpostproc/postprocess.h ; then
6039 _def_haveffpostprocess='yes'
6042 if test "$_libavcodec" != yes ; then
6043 echocheck "FFmpeg libavcodec (dynamic)"
6044 if test "$_libavcodecso" = auto ; then
6045 _libavcodecso=no
6046 _res_comment="libavcodec.so is broken/obsolete"
6047 # FIXME : check for avcodec_find_encoder_by_name() for mencoder
6048 cat > $TMPC << EOF
6049 #define FF_POSTPROCESS 1
6050 #include <ffmpeg/avcodec.h>
6051 int main(void) {
6052 avcodec_find_encoder_by_name("");
6053 return 0;
6056 if cc_check -lavcodec $_ld_lm ; then
6057 _libavcodecso=yes
6058 _res_comment="using libavcodec.so, but static libavcodec is recommended"
6061 echores "$_libavcodecso"
6064 if test "$_libavformat" != yes ; then
6065 echocheck "FFmpeg libavformat (dynamic)"
6066 if test "$_libavformat_so" = auto ; then
6067 _libavformat_so=no
6068 cat > $TMPC <<EOF
6069 #include <ffmpeg/avformat.h>
6070 int main(void) { av_alloc_format_context(); return 0; }
6072 cc_check $_ld_lm -lavformat && _libavformat_so=yes
6074 echores "$_libavformat_so"
6077 _def_libavcodec='#undef USE_LIBAVCODEC'
6078 _def_libavcodecso='#undef USE_LIBAVCODEC_SO'
6079 _def_ffpostprocess='#undef FF_POSTPROCESS'
6080 if test "$_libavcodec" = yes ; then
6081 _def_libavcodec='#define USE_LIBAVCODEC 1'
6082 _ld_libavcodec='libavcodec/libavcodec.a'
6083 _dep_libavcodec='libavcodec/libavcodec.a'
6084 _def_ffpostprocess='#define FF_POSTPROCESS 1'
6085 _codecmodules="libavcodec $_codecmodules"
6086 if test "$_libavutil" = yes; then
6087 _ld_libavutil='libavutil/libavutil.a'
6088 _dep_libavutil='libavutil/libavutil.a'
6090 elif test "$_libavcodecso" = yes ; then
6091 _def_libavcodec='#define USE_LIBAVCODEC 1'
6092 _def_libavcodecso='#define USE_LIBAVCODEC_SO 1'
6093 _ld_libavcodec='-lavcodec'
6094 _codecmodules="libavcodec.so $_codecmodules"
6095 else
6096 _nocodecmodules="libavcodec $_nocodecmodules"
6099 _def_libavformat='#undef USE_LIBAVFORMAT'
6100 _def_libavformat_so='#undef USE_LIBAVFORMAT_SO'
6101 _def_libavformat_win32='#undef CONFIG_WIN32'
6102 if test "$_libavformat" = yes ; then
6103 _def_libavformat='#define USE_LIBAVFORMAT 1'
6104 _ld_libavformat='libavformat/libavformat.a'
6105 _dep_libavformat='libavformat/libavformat.a'
6106 if win32 ; then
6107 _def_libavformat_win32='#define CONFIG_WIN32 1'
6109 else
6110 if test "$_libavformat_so" = yes ; then
6111 _def_libavformat_so='#define USE_LIBAVFORMAT_SO 1'
6112 _ld_libavformat='-lavformat'
6113 if win32 ; then
6114 _def_libavformat_win32='#define CONFIG_WIN32 1'
6119 echocheck "amr narrowband"
6120 if test "$_amr_nb" = auto ; then
6121 _amr_nb=no
6122 if test -f libavcodec/amr_float/sp_dec.c ; then
6123 if test "$_libavcodec" = yes ; then
6124 _amr_nb=yes
6125 else
6126 _res_comment="libavcodec (static) is required by amr_nb, sorry"
6130 if test "$_amr_nb" = yes ; then
6131 _def_amr_nb='#define AMR_NB 1'
6132 else
6133 _def_amr_nb='#undef AMR_NB'
6135 echores "$_amr_nb $_echomsg"
6137 echocheck "amr narrowband, fixed point"
6138 if test "$_amr_nb_fixed" = auto ; then
6139 _amr_nb_fixed=no
6140 if test -f libavcodec/amr/dtx_dec.c ; then
6141 if test "$_libavcodec" = yes ; then
6142 if test "$_amr_nb" = no ; then
6143 _amr_nb_fixed=yes
6144 else
6145 _res_comment="disabled by amr_nb"
6147 else
6148 _res_comment="libavcodec (static) is required by amr_nb-fixed, sorry"
6152 if test "$_amr_nb_fixed" = yes ; then
6153 _def_amr_nb='#define AMR_NB 1'
6154 _def_amr_nb_fixed='#define AMR_NB_FIXED 1'
6155 _amr_nb=yes;
6156 else
6157 _def_amr_nb_fixed='#undef AMR_NB_FIXED'
6159 echores "$_amr_nb_fixed"
6161 if test "$_amr_nb" = yes ; then
6162 _codecmodules="amr_nb $_codecmodules"
6163 else
6164 _nocodecmodules="amr_nb $_nocodecmodules"
6167 echocheck "amr wideband"
6168 if test "$_amr_wb" = auto ; then
6169 _amr_wb=no
6170 if test -f libavcodec/amrwb_float/dec_dtx.c ; then
6171 if test "$_libavcodec" = yes ; then
6172 _amr_wb=yes
6173 else
6174 _res_comment="libavcodec (static) is required by amr_wb, sorry"
6178 if test "$_amr_wb" = yes ; then
6179 _def_amr_wb='#define AMR_WB 1'
6180 _codecmodules="amr_wb $_codecmodules"
6181 else
6182 _def_amr_wb='#undef AMR_WB'
6183 _nocodecmodules="amr_wb $_nocodecmodules"
6185 echores "$_amr_wb"
6187 echocheck "libdv-0.9.5+"
6188 if test "$_libdv" = auto ; then
6189 _libdv=no
6190 cat > $TMPC <<EOF
6191 #include <libdv/dv.h>
6192 int main(void) { dv_encoder_t* enc=dv_encoder_new(1,1,1); return 0; }
6194 cc_check -ldv $_ld_lm && _libdv=yes
6196 if test "$_libdv" = yes ; then
6197 _def_libdv='#define HAVE_LIBDV095 1'
6198 _ld_libdv="-ldv"
6199 _codecmodules="libdv $_codecmodules"
6200 else
6201 _def_libdv='#undef HAVE_LIBDV095'
6202 _nocodecmodules="libdv $_nocodecmodules"
6204 echores "$_libdv"
6206 echocheck "zr"
6207 if test "$_zr" = auto ; then
6208 #36067's seem to identify themselves as 36057PQC's, so the line
6209 #below should work for 36067's and 36057's.
6210 if grep -e "Multimedia video controller: Zoran Corporation ZR36057" /proc/pci > /dev/null 2>&1; then
6211 _zr=yes
6212 else
6213 _zr=no
6216 if test "$_zr" = yes ; then
6217 if test "$_libavcodec" = yes ; then
6218 _def_zr='#define HAVE_ZR 1'
6219 _vosrc="$_vosrc vo_zr2.c vo_zr.c jpeg_enc.c"
6220 _vomodules="zr zr2 $_vomodules"
6221 else
6222 _res_comment="libavcodec (static) is required by zr, sorry"
6223 _novomodules="zr $_novomodules"
6224 _def_zr='#undef HAVE_ZR'
6226 else
6227 _def_zr='#undef HAVE_ZR'
6228 _novomodules="zr zr2 $_novomodules"
6230 echores "$_zr"
6232 echocheck "bl"
6233 if test "$_bl" = yes ; then
6234 _def_bl='#define HAVE_BL 1'
6235 _vosrc="$_vosrc vo_bl.c"
6236 _vomodules="bl $_vomodules"
6237 else
6238 _def_bl='#undef HAVE_BL'
6239 _novomodules="bl $_novomodules"
6241 echores "$_bl"
6243 echocheck "XviD"
6244 cat > $TMPC << EOF
6245 #include <xvid.h>
6246 int main(void) { xvid_init(0, 0, 0, 0); return 0; }
6248 _ld_xvid="$_ld_xvid -lxvidcore"
6249 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid $_ld_lm ; then
6250 _xvid=yes
6251 _def_xvid3='#define HAVE_XVID3 1'
6252 _def_xvid4='#undef HAVE_XVID4'
6253 _codecmodules="xvid $_codecmodules"
6254 else
6255 cat > $TMPC << EOF
6256 #include <xvid.h>
6257 int main(void) { xvid_global(0, 0, 0, 0); return 0; }
6259 if test "$_xvid" != no && cc_check $_inc_xvid $_ld_xvid $_ld_lm ; then
6260 _xvid=yes
6261 _def_xvid3='#undef HAVE_XVID3'
6262 _def_xvid4='#define HAVE_XVID4 1'
6263 _codecmodules="xvid $_codecmodules"
6264 else
6265 _xvid=no
6266 _ld_xvid=''
6267 _def_xvid3='#undef HAVE_XVID3'
6268 _def_xvid4='#undef HAVE_XVID4'
6269 _nocodecmodules="xvid $_nocodecmodules"
6272 echores "$_xvid"
6274 _xvidcompat=no
6275 _def_decore_xvid='#undef DECORE_XVID'
6276 _def_encore_xvid='#undef ENCORE_XVID'
6277 if test "$_xvid" = yes ; then
6278 echocheck "DivX4 compatibility in XviD"
6279 cat > $TMPC << EOF
6280 #include <divx4.h>
6281 int main(void) { (void) decore(0, 0, 0, 0); return 0; }
6283 cc_check $_ld_lm "$_ld_xvid" && _xvidcompat=yes
6284 echores "$_xvidcompat"
6287 echocheck "x264"
6288 cat > $TMPC << EOF
6289 #include <inttypes.h>
6290 #include <x264.h>
6291 #if X264_BUILD < 43
6292 #error We do not support old versions of x264. Get the latest from SVN.
6293 #endif
6294 int main(void) { x264_encoder_open((void*)0); return 0; }
6296 _ld_x264="$_ld_x264 -lx264 $_ld_pthread"
6297 if test "$_x264" != no && \
6298 ( cc_check $_inc_x264 $_ld_x264 $_ld_lm || \
6299 ( test "$_x11" = yes && cc_check $_inc_x264 $_inc_x11 $_ld_x264 $_ld_x11 $_ld_lm )) ; \
6300 then
6301 _x264=yes
6302 _def_x264='#define HAVE_X264 1'
6303 _codecmodules="x264 $_codecmodules"
6304 else
6305 _x264=no
6306 _ld_x264=''
6307 _def_x264='#undef HAVE_X264'
6308 _nocodecmodules="x264 $_nocodecmodules"
6310 echores "$_x264"
6312 echocheck "DivX4linux/DivX5linux/OpenDivX decore"
6313 # DivX5: DEC_OPT_MEMORY_REQS - DivX4: DEC_OPT_FRAME_311
6314 cat > $TMPC << EOF
6315 #include <decore.h>
6316 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_FRAME_311; }
6318 if test "$_divx4linux" != no && cc_check $_ld_lm -ldivxdecore ; then
6319 _opendivx=no
6320 _ld_decore='-ldivxdecore'
6321 _def_decore='#define NEW_DECORE 1'
6322 _def_divx='#define USE_DIVX'
6323 _def_divx5='#undef DECORE_DIVX5'
6324 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6325 _codecmodules="divx4linux $_codecmodules"
6326 echores "DivX4linux (with libdivxdecore.so)"
6327 else
6328 # if test "$_divx4linux" != no ; then
6329 # DivX5 check
6330 # OdivxPP disabled because of:
6331 # ld: Warning: type of symbol `dering' changed from 1 to 2 in opendivx/postprocess.o
6332 cat > $TMPC << EOF
6333 #include <decore.h>
6334 int main(void) { (void) decore(0, 0, 0, 0); return DEC_OPT_INIT; }
6336 if test "$_divx4linux" != no && cc_check $_ld_lm -ldivxdecore ; then
6337 _opendivx=no
6338 # _ld_decore='-ldivxdecore opendivx/postprocess.o'
6339 _ld_decore='-ldivxdecore'
6340 _def_decore='#define NEW_DECORE 1'
6341 _def_divx='#define USE_DIVX'
6342 _def_divx5='#define DECORE_DIVX5 1'
6343 # _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
6344 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6345 _codecmodules="divx5linux $_codecmodules"
6346 _nocodecmodules="divx4linux $_nocodecmodules"
6347 echores "DivX5linux (with libdivxdecore.so)"
6348 elif test "$_opendivx" != no ; then
6349 _opendivx=yes
6350 _ld_decore='opendivx/libdecore.a'
6351 _def_decore='#undef NEW_DECORE'
6352 _def_divx='#define USE_DIVX'
6353 _def_divx5='#undef DECORE_DIVX5'
6354 _def_odivx_postprocess='#define HAVE_ODIVX_POSTPROCESS 1'
6355 _codecmodules="opendivx $_codecmodules"
6356 _nocodecmodules="divx5linux $_nocodecmodules"
6357 echores "OpenDivX"
6358 elif test "$_xvidcompat" = yes ; then
6359 _opendivx=no
6360 _ld_decore=''
6361 _def_decore='#define NEW_DECORE 1'
6362 _def_divx='#define USE_DIVX 1'
6363 _def_divx5='#undef DECORE_DIVX5'
6364 _def_decore_xvid='#define DECORE_XVID 1'
6365 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6366 _nocodecmodules="opendivx divx5linux divx4linux $_nocodecmodules"
6367 echores "XviD compat."
6368 else
6369 _opendivx=no
6370 _ld_decore=''
6371 _def_decore='#undef NEW_DECORE'
6372 _def_divx='#undef USE_DIVX'
6373 _def_divx5='#undef DECORE_DIVX5'
6374 _def_odivx_postprocess='#undef HAVE_ODIVX_POSTPROCESS'
6375 _nocodecmodules="opendivx $_nocodecmodules"
6376 echores "no"
6377 fi # DivX5 check
6381 # mencoder requires (optional) those libs: libmp3lame and divx4linux encore
6382 if test "$_mencoder" != no ; then
6384 echocheck "libmp3lame (for mencoder)"
6385 _mp3lame=no
6386 _def_mp3lame_preset='#undef HAVE_MP3LAME_PRESET'
6387 _def_mp3lame_preset_medium='#undef HAVE_MP3LAME_PRESET_MEDIUM'
6388 cat > $TMPC <<EOF
6389 #include <lame/lame.h>
6390 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; }
6392 # Note: libmp3lame usually depends on vorbis
6393 cc_check -lmp3lame $_ld_vorbis $_ld_lm && tmp_run && _mp3lame=yes
6394 if test "$_mp3lame" = yes ; then
6395 _def_mp3lame="#define HAVE_MP3LAME"
6396 _ld_mp3lame="-lmp3lame $_ld_vorbis"
6397 cat > $TMPC << EOF
6398 #include <lame/lame.h>
6399 int main(void) { int p = STANDARD_FAST; return 0; }
6401 cc_check $_ld_mp3lame $_ld_lm && _def_mp3lame_preset="#define HAVE_MP3LAME_PRESET"
6402 cat > $TMPC << EOF
6403 #include <lame/lame.h>
6404 int main(void) { int p = MEDIUM_FAST; return 0; }
6406 cc_check $_ld_mp3lame $_ld_lm && _def_mp3lame_preset_medium="#define HAVE_MP3LAME_PRESET_MEDIUM"
6407 else
6408 _def_mp3lame='#undef HAVE_MP3LAME'
6410 echores "$_mp3lame"
6413 echocheck "DivX4linux encore (for mencoder)"
6414 cat > $TMPC << EOF
6415 #include <encore2.h>
6416 int main(void) { (void) encore(0, 0, 0, 0); return 0; }
6418 if test "$_divx4linux" != no && cc_check -ldivxencore $_ld_lm ; then
6419 _def_encore='#define HAVE_DIVX4ENCORE 1'
6420 _ld_encore='-ldivxencore'
6421 echores "DivX4linux (with libdivxencore.so)"
6422 elif test "$_xvidcompat" = yes ; then
6423 _def_encore='#define HAVE_DIVX4ENCORE 1'
6424 _ld_encore=''
6425 _def_encore_xvid='#define ENCORE_XVID 1'
6426 echores "XviD compat."
6427 else
6428 _def_encore='#undef HAVE_DIVX4ENCORE'
6429 echores "no"
6434 echocheck "mencoder"
6435 _mencoder_flag='#undef HAVE_MENCODER'
6436 if test "$_mencoder" = yes ; then
6437 _mencoder_flag='#define HAVE_MENCODER'
6439 echores "$_mencoder"
6441 echocheck "fastmemcpy"
6442 # fastmemcpy check is done earlier with tests of CPU & binutils features
6443 if test "$_fastmemcpy" = yes ; then
6444 _def_fastmemcpy='#define USE_FASTMEMCPY 1'
6445 else
6446 _def_fastmemcpy='#undef USE_FASTMEMCPY'
6448 echores "$_fastmemcpy"
6450 echocheck "UniquE RAR File Library"
6451 if test "$_unrarlib" = yes ; then
6452 _def_unrarlib='#define USE_UNRARLIB 1'
6453 else
6454 _def_unrarlib='#undef USE_UNRARLIB'
6456 echores "$_unrarlib"
6458 echocheck "TV interface"
6459 if test "$_tv" = yes ; then
6460 _def_tv='#define USE_TV 1'
6461 _inputmodules="tv $_inputmodules"
6462 else
6463 _noinputmodules="tv $_noinputmodules"
6464 _def_tv='#undef USE_TV'
6466 echores "$_tv"
6468 echocheck "EDL support"
6469 if test "$_edl" = yes ; then
6470 _def_edl='#define USE_EDL'
6471 _inputmodules="edl $_inputmodules"
6472 else
6473 _noinputmodules="edl $_noinputmodules"
6474 _def_edl='#undef USE_EDL'
6476 echores "$_edl"
6478 echocheck "*BSD BrookTree 848 TV interface"
6479 if test "$_tv_bsdbt848" = auto ; then
6480 _tv_bsdbt848=no
6481 if test "$_tv" = yes ; then
6482 cat > $TMPC <<EOF
6483 #include <sys/types.h>
6484 #if defined(__NetBSD__)
6485 #include <dev/ic/bt8xx.h>
6486 #else
6487 #include <machine/ioctl_bt848.h>
6488 #endif
6489 int main(void) { return 0; }
6491 cc_check && _tv_bsdbt848=yes
6494 if test "$_tv_bsdbt848" = yes ; then
6495 _def_tv_bsdbt848='#define HAVE_TV_BSDBT848 1'
6496 _inputmodules="tv-bsdbt848 $_inputmodules"
6497 else
6498 _def_tv_bsdbt848='#undef HAVE_TV_BSDBT848'
6499 _noinputmodules="tv-bsdbt848 $_noinputmodules"
6501 echores "$_tv_bsdbt848"
6503 echocheck "Video 4 Linux TV interface"
6504 if test "$_tv_v4l" = auto ; then
6505 _tv_v4l=no
6506 if test "$_tv" = yes && linux ; then
6507 cat > $TMPC <<EOF
6508 #include <stdlib.h>
6509 #include <linux/videodev.h>
6510 int main(void) { return 0; }
6512 cc_check && _tv_v4l=yes
6515 if test "$_tv_v4l" = yes ; then
6516 _def_tv_v4l='#define HAVE_TV_V4L 1'
6517 _inputmodules="tv-v4l $_inputmodules"
6518 else
6519 _noinputmodules="tv-v4l $_noinputmodules"
6520 _def_tv_v4l='#undef HAVE_TV_V4L'
6522 echores "$_tv_v4l"
6525 echocheck "Video 4 Linux 2 TV interface"
6526 if test "$_tv_v4l2" = auto ; then
6527 _tv_v4l2=no
6528 if test "$_tv" = yes && linux ; then
6529 cat > $TMPC <<EOF
6530 #include <stdlib.h>
6531 #include <linux/types.h>
6532 #include <linux/videodev2.h>
6533 int main(void) { return 0; }
6535 cc_check && _tv_v4l2=yes
6538 if test "$_tv_v4l2" = yes ; then
6539 _def_tv_v4l2='#define HAVE_TV_V4L2 1'
6540 _inputmodules="tv-v4l2 $_inputmodules"
6541 else
6542 _noinputmodules="tv-v4l2 $_noinputmodules"
6543 _def_tv_v4l2='#undef HAVE_TV_V4L2'
6545 echores "$_tv_v4l2"
6548 echocheck "audio select()"
6549 if test "$_select" = no ; then
6550 _def_select='#undef HAVE_AUDIO_SELECT'
6551 elif test "$_select" = yes ; then
6552 _def_select='#define HAVE_AUDIO_SELECT 1'
6554 echores "$_select"
6557 echocheck "network"
6558 # FIXME network check
6559 if test "$_network" != no ; then
6560 _def_network='#define MPLAYER_NETWORK 1'
6561 _ld_network="$_ld_sock"
6562 _inputmodules="network $_inputmodules"
6563 else
6564 _noinputmodules="network $_noinputmodules"
6565 _def_network='#undef MPLAYER_NETWORK'
6566 _ftp=no
6568 echores "$_network"
6570 echocheck "ftp"
6571 if not beos && test "$_ftp" != no ; then
6572 _def_ftp='#define HAVE_FTP 1'
6573 _inputmodules="ftp $_inputmodules"
6574 else
6575 _noinputmodules="ftp $_noinputmodules"
6576 _def_ftp='#undef HAVE_FTP'
6578 echores "$_ftp"
6580 echocheck "vstream client"
6581 if test "$_vstream" = auto ; then
6582 _vstream=no
6583 cat > $TMPC <<EOF
6584 #include <vstream-client.h>
6585 void vstream_error(const char *format, ... ) {}
6586 int main(void) { vstream_start(); return 0; }
6588 cc_check -lvstream-client && _vstream=yes
6590 if test "$_vstream" = yes ; then
6591 _def_vstream='#define HAVE_VSTREAM 1'
6592 _inputmodules="vstream $_inputmodules"
6593 _ld_vstream='-lvstream-client'
6594 else
6595 _noinputmodules="vstream $_noinputmodules"
6596 _def_vstream='#undef HAVE_VSTREAM'
6598 echores "$_vstream"
6600 # endian testing
6601 echocheck "byte order"
6602 if test "$_big_endian" = auto ; then
6603 cat > $TMPC <<EOF
6604 short ascii_name[] = { (('M'<<8)|'P'),(('l'<<8)|'a'),(('y'<<8)|'e'),(('r'<<8)|'B'),
6605 (('i'<<8)|'g'),(('E'<<8)|'n'),(('d'<<8)|'i'),(('a'<<8)|'n'),0};
6606 int main(){
6607 char* s = (char*)ascii_name;
6608 return 0;
6611 if cc_check ; then
6612 if strings $TMPO | grep -l MPlayerBigEndian >/dev/null ; then
6613 _big_endian=yes
6614 else
6615 _big_endian=no
6617 else
6618 echo -n "failed to autodetect byte order, defaulting to "
6621 if test "$_big_endian" = yes ; then
6622 _byte_order='big-endian'
6623 _def_words_endian='#define WORDS_BIGENDIAN 1'
6624 else
6625 _byte_order='little-endian'
6626 _def_words_endian='#undef WORDS_BIGENDIAN'
6628 echores "$_byte_order"
6630 echocheck "OSD menu"
6631 if test "$_menu" = yes ; then
6632 _def_menu='#define HAVE_MENU 1'
6633 else
6634 _def_menu='#undef HAVE_MENU'
6636 echores "$_menu"
6638 # Check to see if they want QTX codecs enabled
6639 echocheck "QTX codecs"
6640 if test "$_qtx" = auto ; then
6641 _qtx=$_win32
6643 if test "$_qtx" = yes ; then
6644 _def_qtx='#define USE_QTX_CODECS 1'
6645 _codecmodules="qtx $_codecmodules"
6646 else
6647 _def_qtx='#undef USE_QTX_CODECS'
6648 _nocodecmodules="qtx $_nocodecmodules"
6650 echores "$_qtx"
6653 echocheck "Subtitles sorting"
6654 if test "$_sortsub" = yes ; then
6655 _def_sortsub='#define USE_SORTSUB 1'
6656 else
6657 _def_sortsub='#undef USE_SORTSUB'
6659 echores "$_sortsub"
6662 echocheck "XMMS inputplugin support"
6663 if test "$_xmms" = yes ; then
6665 if ( xmms-config --version ) >/dev/null 2>&1 ; then
6666 if test -z "$_xmmsplugindir" ; then
6667 _xmmsplugindir=`xmms-config --input-plugin-dir`
6669 if test -z "$_xmmslibdir" ; then
6670 _xmmslibdir=`xmms-config --exec-prefix`/lib
6672 else
6673 if test -z "$_xmmsplugindir" ; then
6674 _xmmsplugindir=/usr/lib/xmms/Input
6676 if test -z "$_xmmslibdir" ; then
6677 _xmmslibdir=/usr/lib
6681 _def_xmms='#define HAVE_XMMS 1'
6682 if darwin ; then
6683 _xmms_lib="${_xmmslibdir}/libxmms.dylib"
6684 else
6685 _xmms_lib="${_xmmslibdir}/libxmms.so.1 -export-dynamic"
6687 else
6688 _def_xmms='#undef HAVE_XMMS'
6690 echores "$_xmms"
6692 echocheck "inet6"
6693 if test "$_inet6" = auto ; then
6694 cat > $TMPC << EOF
6695 #include <sys/types.h>
6696 #include <sys/socket.h>
6697 int main(void) { socket(AF_INET6, SOCK_STREAM, AF_INET6); }
6699 _inet6=no
6700 if cc_check ; then
6701 _inet6=yes
6704 if test "$_inet6" = yes ; then
6705 _def_inet6='#define HAVE_AF_INET6 1'
6706 else
6707 _def_inet6='#undef HAVE_AF_INET6'
6709 echores "$_inet6"
6712 echocheck "gethostbyname2"
6713 if test "$_gethostbyname2" = auto ; then
6714 cat > $TMPC << EOF
6715 #include <sys/types.h>
6716 #include <sys/socket.h>
6717 #include <netdb.h>
6718 int main(void) { gethostbyname2("", AF_INET); }
6720 _gethostbyname2=no
6721 if cc_check ; then
6722 _gethostbyname2=yes
6726 if test "$_gethostbyname2" = yes ; then
6727 _def_gethostbyname2='#define HAVE_GETHOSTBYNAME2 1'
6728 else
6729 _def_gethostbyname2='#undef HAVE_GETHOSTBYNAME2'
6731 echores "$_gethostbyname2"
6733 # --------------- GUI specific tests begin -------------------
6734 echocheck "GUI"
6735 echo "$_gui"
6736 if test "$_gui" = yes ; then
6738 # Required libraries
6739 test "$_png" != yes && die "PNG support required for GUI compilation, please install libpng and libpng-dev packages."
6740 test "$_x11" != yes && die "X11 support required for GUI compilation"
6742 echocheck "XShape extension"
6743 _xshape=no
6744 if test "$_x11" = yes ; then
6745 cat > $TMPC << EOF
6746 #include <X11/Xlib.h>
6747 #include <X11/Xproto.h>
6748 #include <X11/Xutil.h>
6749 #include <X11/extensions/shape.h>
6750 #include <stdlib.h>
6751 int main(void) {
6752 char *name = ":0.0";
6753 Display *wsDisplay;
6754 int exitvar = 0;
6755 int eventbase, errorbase;
6756 if (getenv("DISPLAY"))
6757 name=getenv("DISPLAY");
6758 wsDisplay=XOpenDisplay(name);
6759 if (!XShapeQueryExtension(wsDisplay,&eventbase,&errorbase))
6760 exitvar=1;
6761 XCloseDisplay(wsDisplay);
6762 return exitvar;
6765 cc_check $_inc_x11 $_ld_x11 && _xshape=yes
6767 if test "$_xshape" = yes ; then
6768 _def_xshape='#define HAVE_XSHAPE 1'
6769 else
6770 die "The GUI requires the X11 extension XShape (which was not found)."
6772 echores "$_xshape"
6774 #Check for GTK
6775 if test "$_gtk1" = no ; then
6776 #Check for GTK2 :
6777 echocheck "GTK+ version"
6779 if pkg-config gtk+-2.0 --exists ; then
6780 _gtk=`pkg-config gtk+-2.0 --modversion 2>/dev/null`
6781 _inc_gtk=`pkg-config gtk+-2.0 --cflags 2>/dev/null`
6782 _ld_gtk=`pkg-config gtk+-2.0 --libs 2>/dev/null`
6783 echores "$_gtk"
6785 # Check for GLIB2
6786 if pkg-config glib-2.0 --exists ; then
6787 echocheck "glib version"
6788 _glib=`pkg-config glib-2.0 --modversion 2>/dev/null`
6789 _inc_glib=`pkg-config glib-2.0 --cflags 2>/dev/null`
6790 _ld_glib=`pkg-config glib-2.0 --libs 2>/dev/null`
6791 echores "$_glib"
6793 _def_gui='#define HAVE_NEW_GUI 1'
6794 _def_gtk2_gui='#define HAVE_GTK2_GUI 1'
6795 _ld_gui='$(GTKLIB) $(GLIBLIB)'
6796 else
6797 _gtk1=yes
6798 echo "GLIB-2 devel packages were not found, trying GTK 1.2"
6800 else
6801 echo "GTK-2 devel packages were not found, trying GTK 1.2"
6802 _gtk1=yes
6806 if test "$_gtk1" = yes ; then
6807 # Check for old GTK (1.2.x)
6808 echocheck "GTK version"
6809 if test -z "$_gtkconfig" ; then
6810 if ( gtk-config --version ) >/dev/null 2>&1 ; then
6811 _gtkconfig="gtk-config"
6812 elif ( gtk12-config --version ) >/dev/null 2>&1 ; then
6813 _gtkconfig="gtk12-config"
6814 else
6815 die "The GUI requires GTK devel packages (which were not found)."
6818 _gtk=`$_gtkconfig --version 2>&1`
6819 _inc_gtk=`$_gtkconfig --cflags 2>&1`
6820 _ld_gtk=`$_gtkconfig --libs 2>&1`
6821 echores "$_gtk (using $_gtkconfig)"
6823 # Check for GLIB
6824 echocheck "glib version"
6825 if test -z "$_glibconfig" ; then
6826 if ( glib-config --version ) >/dev/null 2>&1 ; then
6827 _glibconfig="glib-config"
6828 elif ( glib12-config --version ) >/dev/null 2>&1 ; then
6829 _glibconfig="glib12-config"
6830 else
6831 die "The GUI requires GLib devel packages (which were not found)"
6834 _glib=`$_glibconfig --version 2>&1`
6835 _inc_glib=`$_glibconfig --cflags 2>&1`
6836 _ld_glib=`$_glibconfig --libs 2>&1`
6837 echores "$_glib (using $_glibconfig)"
6839 _def_gui='#define HAVE_NEW_GUI 1'
6840 _def_gtk2_gui='#undef HAVE_GTK2_GUI'
6841 _ld_gui='$(GTKLIB) $(GLIBLIB)'
6844 echo "Creating Gui/config.mak"
6845 cat > Gui/config.mak << EOF
6846 # -------- Generated by configure -----------
6848 GTKINC = $_inc_gtk
6849 GTKLIBS = $_ld_gtk
6850 GLIBINC = $_inc_glib
6851 GLIBLIBS = $_ld_glib
6855 else
6856 _def_gui='#undef HAVE_NEW_GUI'
6857 _def_gtk2_gui='#undef HAVE_GTK2_GUI'
6859 # --------------- GUI specific tests end -------------------
6863 #############################################################################
6865 # Checking for CFLAGS
6866 _stripbinaries=yes
6867 if test "$_profile" != "" || test "$_debug" != "" ; then
6868 CFLAGS="-W -Wall -O2 $_march $_mcpu $_debug $_profile"
6869 if test "$_cc_major" -ge "3" ; then
6870 CFLAGS=`echo "$CFLAGS" | sed -e 's/\(-Wall\)/\1 -Wno-unused-parameter/'`
6872 _stripbinaries=no
6873 elif test -z "$CFLAGS" ; then
6874 CFLAGS="-O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
6875 # always compile with '-g' if .developer:
6876 if test -f ".developer" ; then
6877 CFLAGS="-g $CFLAGS"
6878 if test "$_crash_debug" = auto && not mingw32 ; then
6879 _crash_debug=yes
6881 _stripbinaries=no
6883 else
6884 _warn_CFLAGS=yes
6887 echocheck "automatic gdb attach"
6888 if test "$_crash_debug" = yes ; then
6889 _def_crash_debug='#define CRASH_DEBUG 1'
6890 else
6891 _def_crash_debug='#undef CRASH_DEBUG'
6892 _crash_debug=no
6894 echores "$_crash_debug"
6896 if darwin ; then
6897 CFLAGS="$CFLAGS -mdynamic-no-pic -falign-loops=16 -DSYS_DARWIN"
6898 if [ "$_cc_major" = 3 ] && [ "$_cc_minor" -lt 1 ]; then
6899 CFLAGS="$CFLAGS -no-cpp-precomp"
6902 # libavcodec (from ffmpeg) requires CONFIG_DARWIN to enable AltiVec on Darwin/MacOSX
6903 test "$_altivec" = yes && CFLAGS="$CFLAGS -DCONFIG_DARWIN"
6905 if hpux ; then
6906 # use flag for HPUX missing setenv()
6907 CFLAGS="$CFLAGS -DHPUX"
6909 # Thread support
6910 if linux ; then
6911 CFLAGS="$CFLAGS -D_REENTRANT"
6912 elif bsd ; then
6913 # FIXME bsd needs this so maybe other OS'es
6914 CFLAGS="$CFLAGS -D_THREAD_SAFE"
6916 # 64 bit file offsets?
6917 if test "$_largefiles" = yes || freebsd ; then
6918 CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
6919 if test "$_dvdread" = yes ; then
6920 # dvdread support requires this (for off64_t)
6921 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
6925 echocheck "compiler support for -fno-PIC"
6926 if x86; then
6927 cat > $TMPC <<EOF
6928 int main(void) { return 0; }
6930 if cc_check -fno-PIC ; then
6931 CFLAGS="-fno-PIC $CFLAGS"
6932 echores "yes"
6933 else
6934 echores "no"
6936 else
6937 echores "only used for x86"
6940 echocheck "compiler support for noexecstack"
6941 cat > $TMPC <<EOF
6942 int main(void) { return 0; }
6944 if cc_check -Wl,-z,noexecstack ; then
6945 _ld_extra="-Wl,-z,noexecstack $_ld_extra"
6946 echores "yes"
6947 else
6948 echores "no"
6951 echocheck "ftello()"
6952 # if we don't have ftello use the osdep/ compatibility module
6953 cat > $TMPC << EOF
6954 #include <stdio.h>
6955 #include <sys/types.h>
6956 int main (void) { ftello(stdin); return 0; }
6958 _ftello=no
6959 cc_check && _ftello=yes
6960 if test "$_ftello" = yes ; then
6961 _def_ftello='#define HAVE_FTELLO 1'
6962 else
6963 _def_ftello='#undef HAVE_FTELLO'
6965 echores "$_ftello"
6967 # Determine OS dependent libs
6968 if cygwin ; then
6969 _def_confwin32='#define WIN32'
6970 #CFLAGS="$CFLAGS -D__CYGWIN__ -D__CYGWIN_USE_BIG_TYPES__"
6971 # stat.st_size with BIG_TYPES is broken (not set) ::atmos
6972 CFLAGS="$CFLAGS -D__CYGWIN__"
6975 if win32 ; then
6976 _confwin32='TARGET_WIN32 = yes'
6977 else
6978 _confwin32='TARGET_WIN32 = no'
6981 # Dynamic linking flags
6982 # (FIXME: 'echocheck "dynamic linking"' above and modify here accordingly)
6983 _ld_dl_dynamic=''
6984 bsd && _ld_dl_dynamic='-rdynamic'
6985 if test "$_real" = yes || test "$_xanim" = yes && not win32 && not qnx && not darwin ; then
6986 _ld_dl_dynamic='-rdynamic'
6989 _ld_arch="$_ld_arch $_ld_pthread $_ld_dl $_ld_dl_dynamic"
6990 bsdos && _ld_arch="$_ld_arch -ldvd"
6991 if netbsd ; then
6992 x86 && _ld_arch="$_ld_arch -li386"
6995 _def_debug='#undef MP_DEBUG'
6996 test "$_debug" != "" && _def_debug='#define MP_DEBUG 1'
6998 _def_linux='#undef TARGET_LINUX'
6999 linux && _def_linux='#define TARGET_LINUX 1'
7001 # TODO cleanup the VIDIX stuff here
7002 echocheck "VIDIX"
7003 _def_vidix='#define CONFIG_VIDIX 1'
7004 test "$_vidix" = no && _def_vidix='#undef CONFIG_VIDIX'
7005 if test "$_vidix" = yes; then
7006 _vosrc="$_vosrc vo_cvidix.c"
7007 _vomodules="cvidix $_vomodules"
7008 else
7009 _novomodules="cvidix $_novomodules"
7011 if test "$_vidix" = yes && win32; then
7012 _vosrc="$_vosrc vo_winvidix.c"
7013 _vomodules="winvidix $_vomodules"
7014 _ld_win32libs="-lgdi32 $_ld_win32libs"
7015 else
7016 _novomodules="winvidix $_novomodules"
7018 if test "$_vidix" = yes && test "$_x11" = yes; then
7019 _vosrc="$_vosrc vo_xvidix.c"
7020 _vomodules="xvidix $_vomodules"
7021 else
7022 _novomodules="xvidix $_novomodules"
7024 echores "$_vidix"
7026 echocheck "joystick"
7027 _def_joystick='#undef HAVE_JOYSTICK'
7028 if test "$_joystick" = yes ; then
7029 if linux ; then
7030 # TODO add some check
7031 _def_joystick='#define HAVE_JOYSTICK 1'
7032 else
7033 _joystick="no (unsupported under $system_name)"
7036 echores "$_joystick"
7038 echocheck "lirc"
7039 if test "$_lirc" = auto ; then
7040 _lirc=no
7041 if test -c /dev/lirc -o -c /dev/lirc/0 ; then
7042 cat > $TMPC <<EOF
7043 #include <lirc/lirc_client.h>
7044 int main(void) { return 0; }
7046 cc_check -llirc_client && _lirc=yes
7049 if test "$_lirc" = yes ; then
7050 _def_lirc='#define HAVE_LIRC 1'
7051 _ld_lirc='-llirc_client'
7052 else
7053 _def_lirc='#undef HAVE_LIRC'
7055 echores "$_lirc"
7057 echocheck "lircc"
7058 if test "$_lircc" = auto ; then
7059 _lircc=no
7060 cat > $TMPC <<EOF
7061 #include <lirc/lircc.h>
7062 int main(void) { return 0; }
7064 cc_check -llircc && _lircc=yes
7066 if test "$_lircc" = yes ; then
7067 _def_lircc='#define HAVE_LIRCC 1'
7068 _ld_lircc='-llircc'
7069 else
7070 _def_lircc='#undef HAVE_LIRCC'
7072 echores "$_lircc"
7074 #############################################################################
7075 echo "Creating config.mak"
7076 cat > config.mak << EOF
7077 # -------- Generated by configure -----------
7079 LANG = C
7080 MAN_LANG = $MAN_LANG
7081 TARGET_OS = $system_name
7082 DESTDIR =
7083 prefix = \$(DESTDIR)$_prefix
7084 BINDIR = \$(DESTDIR)$_bindir
7085 DATADIR = \$(DESTDIR)$_datadir
7086 MANDIR = \$(DESTDIR)$_mandir
7087 CONFDIR = \$(DESTDIR)$_confdir
7088 LIBDIR = \$(DESTDIR)$_libdir
7089 # FFmpeg uses libdir instead of LIBDIR
7090 libdir = \$(LIBDIR)
7091 #AR = ar
7092 CC = $_cc
7093 HOST_CC = $_host_cc
7094 AWK = $_awk
7095 RANLIB = $_ranlib
7096 INSTALL = $_install
7097 # OPTFLAGS = -O4 $_profile $_debug $_march $_mcpu $_pipe -fomit-frame-pointer -ffast-math
7098 EXTRA_INC = $_inc_extra
7099 OPTFLAGS = -I../libvo -I../../libvo $_inc_x11 $CFLAGS \$(EXTRA_INC)
7100 STRIPBINARIES = $_stripbinaries
7101 CHARSET = $_charset
7102 HELP_FILE = $_mp_help
7104 PRG = $_prg
7105 PRG_MENCODER = $_prg_mencoder
7107 $_live_libs_def
7109 MPLAYER_NETWORK = $_network
7110 STREAMING_LIVE555 = $_live
7111 MPLAYER_NETWORK_LIB = $_ld_live $_ld_vstream $_ld_network
7112 DVBIN = $_dvbin
7113 VIDIX = $_vidix
7114 CONFIG_PP = yes
7115 CONFIG_MP3LAME = $_mp3lame
7116 LIBMENU = $_menu
7117 I18NLIBS = $_i18n_libs
7118 MATROSKA = $_matroska_internal
7120 OPENDIVX = $_opendivx
7122 MP3LIB = $_mp3lib
7123 LIBA52 = $_liba52
7124 LIBMPEG2 = $_libmpeg2
7125 TREMOR = $_tremor_internal
7126 TREMOR_FLAGS = $_tremor_flags
7128 SPEEX = $_speex
7129 MUSEPACK = $_musepack
7131 UNRARLIB = $_unrarlib
7132 HAVE_FFPOSTPROCESS = $_def_haveffpostprocess
7133 PNG = $_mkf_png
7134 JPEG = $_mkf_jpg
7135 GIF = $_mkf_gif
7137 EXTRA_LIB = $_ld_extra
7138 Z_LIB = $_ld_static $_ld_zlib
7139 HAVE_MLIB = $_mlib
7140 WIN32_LIB = $_ld_win32libs
7141 STATIC_LIB = $_ld_static
7142 ENCA_LIB = $_ld_enca
7143 HAVE_PTHREADS = $_pthreads
7144 MATH_LIB = $_ld_lm
7145 LIBC_LIB = $_ld_libC
7147 X11_INC = $_inc_x11
7148 X11DIR = $_ld_x11
7150 HAVE_XVMC_ACCEL = $_xvmc
7152 # for libavcodec:
7153 SRC_PATH=..
7154 LIBPREF=lib
7155 LIBSUF=.a
7156 SLIBPREF=lib
7157 SLIBSUF=.so
7159 # video output
7160 X_LIB = $_ld_gl $_ld_dga $_ld_xv $_ld_xvmc $_ld_vm $_ld_xinerama $_ld_x11 $_ld_sock
7161 GGI_LIB = $_ld_ggi
7162 MLIB_LIB = $_ld_mlib
7163 MLIB_INC = $_inc_mlib
7164 DXR2_INC = $_inc_dxr2
7165 DVB_INC = $_inc_dvb
7166 PNG_LIB = $_ld_png
7167 JPEG_LIB = $_ld_jpg
7168 GIF_LIB = $_ld_gif
7169 SDL_LIB = $_ld_sdl
7170 SVGA_LIB = $_ld_svga
7171 VESA_LIB = $_ld_vesa
7172 AA_LIB = $_ld_aa
7173 CACA_INC = $_inc_caca
7174 CACA_LIB = $_ld_caca
7176 # audio output
7177 ALSA_LIB = $_ld_alsa
7178 NAS_LIB = $_ld_nas
7179 ARTS_LIB = $_ld_arts
7180 ARTS_INC = $_inc_arts
7181 ESD_LIB = $_ld_esd
7182 ESD_INC = $_inc_esd
7183 POLYP_LIB = $_ld_polyp
7184 POLYP_INC = $_inc_polyp
7185 JACK_LIB = $_ld_jack
7186 JACK_INC = $_inc_jack
7187 SGIAUDIO_LIB = $_ld_sgiaudio
7189 # input/demuxer/codecs
7190 TERMCAP_LIB = $_ld_termcap
7191 LIRC_LIB = $_ld_lirc
7192 LIRCC_LIB = $_ld_lircc
7193 HAVE_DVD = $_have_dvd
7194 DVDREAD = $_dvdread
7195 DVDREAD_LIB = $_ld_dvdread
7196 DVDKIT = $_dvdkit
7197 DVDKIT2 = $_dvdkit2
7198 DVDKIT_SHARED = no
7199 SDL_INC = $_inc_sdl
7200 W32_DEP = $_dep_win32
7201 W32_LIB = $_ld_win32
7202 DS_DEP = $_dep_dshow
7203 DS_LIB = $_ld_dshow
7204 AV_DEP = $_dep_libavutil $_dep_libavcodec $_dep_libavformat
7205 AV_LIB = $_ld_libavformat $_ld_libavcodec $_ld_libavutil
7206 CONFIG_LIBAVUTIL = $_libavutil
7207 CONFIG_LIBAVCODEC = $_libavcodec
7208 CONFIG_LIBAVCODECSO = $_libavcodecso
7209 CONFIG_LIBAVFORMAT = $_libavformat
7210 CONFIG_LIBAVFORMAT_SO = $_libavformat_so
7211 ZORAN = $_zr
7212 FAME = $_fame
7213 FAME_LIB = $_ld_fame
7214 MP1E_DEP = $_dep_mp1e
7215 MP1E_LIB = $_ld_mp1e
7216 ARCH_LIB = $_ld_arch $_ld_iconv
7217 XVID = $_xvid
7218 XVID_INC = $_inc_xvid
7219 XVID_LIB = $_ld_xvid
7220 X264 = $_x264
7221 X264_INC = $_inc_x264
7222 X264_LIB = $_ld_x264
7223 CONFIG_DTS = $_libdts
7224 DTS_INC = $_inc_libdts
7225 DTS_LIB = $_ld_libdts
7226 DECORE_LIB = $_ld_decore $_ld_mp3lame
7227 MENCODER = $_mencoder
7228 ENCORE_LIB = $_ld_encore $_ld_mp3lame
7229 DIRECTFB_INC = $_inc_directfb
7230 DIRECTFB_LIB = $_ld_directfb
7231 CDPARANOIA_INC = $_inc_cdparanoia
7232 CDPARANOIA_LIB = $_ld_cdparanoia
7233 FREETYPE_INC = $_inc_freetype
7234 FREETYPE_LIB = $_ld_freetype
7235 FONTCONFIG_INC = $_inc_fontconfig
7236 FONTCONFIG_LIB = $_ld_fontconfig
7237 FRIBIDI_INC = $_inc_fribidi
7238 FRIBIDI_LIB = $_ld_fribidi
7239 LIBCDIO_INC = $_inc_libcdio
7240 LIBCDIO_LIB = $_ld_libcdio
7241 LIBLZO_LIB= $_ld_liblzo
7242 MAD_LIB = $_ld_mad
7243 VORBIS_LIB = $_ld_vorbis $_ld_libdv
7244 SPEEX_LIB = $_ld_speex
7245 THEORA_LIB = $_ld_theora
7246 FAAD_LIB = $_ld_faad
7247 INTERNAL_FAAD = $_faad_internal
7248 SMBSUPPORT_LIB = $_ld_smb
7249 XMMS_PLUGINS = $_xmms
7250 XMMS_LIB = $_xmms_lib
7251 MACOSX = $_macosx
7252 MACOSX_FINDER_SUPPORT = $_macosx_finder_support
7253 MACOSX_BUNDLE = $_macosx_bundle
7254 MACOSX_FRAMEWORKS = $_macosx_frameworks
7255 MACOSX_COREVIDEO = $_macosx_corevideo
7256 TOOLAME=$_toolame
7257 TOOLAME_EXTRAFLAGS=$_toolame_extraflags
7258 TOOLAME_LIB=$_toolame_lib
7259 TWOLAME=$_twolame
7260 TWOLAME_LIB=$_twolame_lib
7261 MUSEPACK_LIB = $_ld_musepack
7262 FAAC=$_faac
7263 FAAC_LIB=$_ld_faac
7264 AMR_NB=$_amr_nb
7265 AMR_NB_FIXED=$_amr_nb_fixed
7266 AMR_WB=$_amr_wb
7267 `echo $_libavcodecs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/CONFIG_/;s/$/=yes/'`
7268 CONFIG_GPL=yes
7270 # --- Some stuff for autoconfigure ----
7271 $_target_arch
7272 $_confwin32
7273 TARGET_CPU=$iproc
7274 TARGET_MMX = $_mmx
7275 TARGET_MMX2 = $_mmx2
7276 TARGET_3DNOW = $_3dnow
7277 TARGET_3DNOWEX = $_3dnowex
7278 TARGET_SSE = $_sse
7279 TARGET_ALTIVEC = $_altivec
7280 TARGET_VIS = $_vis
7282 # --- GUI stuff ---
7283 GTKINC = $_inc_gtk
7284 GTKLIB = $_ld_static $_ld_gtk
7285 GLIBLIB = $_ld_static $_ld_glib
7286 GTK_LIBS = $_ld_static $_ld_gui
7287 GUI = $_gui
7288 DEBUG = -DDEBUG
7292 #############################################################################
7293 echo "Creating config.h"
7294 cat > config.h << EOF
7295 /* -------- This file has been automatically generated by configure ---------
7296 Note: Any changes in it will be lost when you run configure again. */
7298 /* Protect against multiple inclusion */
7299 #ifndef MPLAYER_CONFIG_H
7300 #define MPLAYER_CONFIG_H 1
7302 /* use GNU internationalization */
7303 $_def_i18n
7305 /* Runtime CPU detection */
7306 $_def_runtime_cpudetection
7308 /* Dynamic a/v plugins */
7309 $_def_dynamic_plugins
7311 /* "restrict" keyword */
7312 $_def_restrict_keyword
7314 /* __builtin_expect branch prediction hint */
7315 $_def_builtin_expect
7316 #ifdef HAVE_BUILTIN_EXPECT
7317 #define likely(x) __builtin_expect ((x) != 0, 1)
7318 #define unlikely(x) __builtin_expect ((x) != 0, 0)
7319 #else
7320 #define likely(x) (x)
7321 #define unlikely(x) (x)
7322 #endif
7324 /* attribute(used) as needed by some compilers */
7325 #if (__GNUC__ * 100 + __GNUC_MINOR__ >= 300)
7326 # define attribute_used __attribute__((used))
7327 #else
7328 # define attribute_used
7329 #endif
7331 #define PREFIX "$_prefix"
7333 #define USE_OSD 1
7334 #define USE_SUB 1
7336 /* enable/disable SIGHANDLER */
7337 $_def_sighandler
7339 /* enable/disable automatic gdb attach on crash, requires SIGHANDLER */
7340 $_def_crash_debug
7342 /* Toggles debugging informations */
7343 $_def_debug
7345 /* Toggles colorized output */
7346 //#define MSG_USE_COLORS 1
7348 /* Indicates that libcdio is available for VCD and CD-DA playback */
7349 $_def_libcdio
7351 /* Indicates that Ogle's libdvdread is available for DVD playback */
7352 $_def_dvdread
7354 /* Indicates that dvdread is from libmpdvdkit */
7355 $_def_mpdvdkit
7357 /* Additional options for libmpdvdkit*/
7358 $_def_dvd
7359 $_def_cdrom
7360 $_def_cdio
7361 $_def_dvdio
7362 $_def_bsdi_dvd
7363 $_def_dvd_bsd
7364 $_def_dvd_linux
7365 $_dev_dvd_openbsd
7366 $_def_dvd_darwin
7367 $_def_sol_scsi_h
7368 $_def_hpux_scsi_h
7369 $_def_stddef
7370 $_def_have_dvd
7372 /* Common data directory (for fonts, etc) */
7373 #define MPLAYER_DATADIR "$_datadir"
7374 #define MPLAYER_CONFDIR "$_confdir"
7375 #define MPLAYER_LIBDIR "$_libdir"
7377 /* Define this to compile stream-caching support, it can be enabled via
7378 -cache <kilobytes> */
7379 #define USE_STREAM_CACHE 1
7381 /* Define to include support for XviD/Divx4Linux/OpenDivx */
7382 $_def_divx
7384 /* Define to use the new XviD/DivX4Linux library instead of open source OpenDivX */
7385 /* You have to change DECORE_LIBS in config.mak, too! */
7386 $_def_decore
7388 /* Define if you are using DivX5Linux Decore library */
7389 $_def_divx5
7391 /* Define if you are using XviD library */
7392 $_def_xvid3
7393 $_def_xvid4
7394 $_def_decore_xvid
7395 $_def_encore_xvid
7397 /* Define if you are using the X.264 library */
7398 $_def_x264
7400 /* Define to include support for libdv-0.9.5 */
7401 $_def_libdv
7403 /* If build mencoder */
7404 $_mencoder_flag
7406 /* Indicates if XviD/Divx4linux encore is available
7407 Note: for mencoder */
7408 $_def_encore
7410 /* Indicates if libmp3lame is available
7411 Note: for mencoder */
7412 $_def_mp3lame
7413 $_def_mp3lame_preset
7414 $_def_mp3lame_preset_medium
7416 /* Define libmp1e for realtime mpeg encoding (for DXR3 and DVB cards) */
7417 $_def_mp1e
7419 /* Define this to enable avg. byte/sec-based AVI sync method by default:
7420 (use -bps or -nobps commandline option for run-time method selection)
7421 -bps gives better sync for vbr mp3 audio, it is now default */
7422 #define AVI_SYNC_BPS 1
7424 /* Undefine this if you do not want to select mono audio (left or right)
7425 with a stereo MPEG layer 2/3 audio stream. The command line option
7426 -stereo has three possible values (0 for stereo, 1 for left-only, 2 for
7427 right-only), with 0 being the default.
7429 #define USE_FAKE_MONO 1
7431 /* Undefine this if your sound card driver has no working select().
7432 If you have kernel Oops, player hangups, or just no audio, you should
7433 try to recompile MPlayer with this option disabled! */
7434 $_def_select
7436 /* define this to use iconv(3) function to codepage conversions */
7437 $_def_iconv
7439 /* define this to use nl_langinfo function */
7440 $_def_langinfo
7442 /* define this to use RTC (/dev/rtc) for video timers */
7443 $_def_rtc
7445 /* set up max. outburst. use 65536 for ALSA 0.5, for others 16384 is enough */
7446 #define MAX_OUTBURST 65536
7448 /* set up audio OUTBURST. Do not change this! */
7449 #define OUTBURST 512
7451 /* Define this if your system has the header file for the OSS sound interface */
7452 $_def_sys_soundcard
7454 /* Define this if your system has the header file for the OSS sound interface
7455 * in /usr/include */
7456 $_def_soundcard
7458 /* Define this if your system has the sysinfo header */
7459 $_def_sys_sysinfo
7461 /* Define this if your system has ftello() */
7463 $_def_ftello
7464 #ifndef HAVE_FTELLO
7465 /* Need these for FILE and off_t an config.h is usually before other includes*/
7466 #include <stdio.h>
7467 #include <sys/types.h>
7468 off_t ftello(FILE *);
7469 #endif
7471 /* Define this if your system has the "malloc.h" header file */
7472 $_def_malloc
7474 /* memalign is mapped to malloc if unsupported */
7475 $_def_memalign
7476 #ifndef HAVE_MEMALIGN
7477 # define memalign(a,b) malloc(b)
7478 #define MEMALIGN_HACK 1
7479 #endif
7481 /* Define this if your system has the "alloca.h" header file */
7482 $_def_alloca
7484 /* Define this if your system has the "sys/mman.h" header file */
7485 $_def_mman
7486 $_def_mman_has_map_failed
7488 /* Define this if you have the elf dynamic linker -ldl library */
7489 $_def_dl
7491 /* Define this if you have the kstat kernel statistics library */
7492 $_def_kstat
7494 /* Define this if you have zlib */
7495 $_def_zlib
7496 #ifdef HAVE_ZLIB
7497 #define CONFIG_ZLIB 1
7498 #endif
7500 /* Define this if you have shm support */
7501 $_def_shm
7503 /* Define this if your system has scandir & alphasort */
7504 $_def_scandir
7506 /* Define this if your system has strsep */
7507 $_def_strsep
7509 /* Define this if your system has strlcpy */
7510 $_def_strlcpy
7511 #ifndef HAVE_STRLCPY
7512 unsigned int strlcpy (char *dest, const char *src, unsigned int size);
7513 #endif
7515 /* Define this if your system has strlcat */
7516 $_def_strlcat
7517 #ifndef HAVE_STRLCAT
7518 unsigned int strlcat (char *dest, const char *src, unsigned int size);
7519 #endif
7521 /* Define this if your system has fseeko */
7522 $_def_fseeko
7523 #ifndef HAVE_FSEEKO
7524 /* Need these for FILE and off_t an config.h is usually before other includes*/
7525 #include <stdio.h>
7526 #include <sys/types.h>
7527 int fseeko(FILE *, off_t, int);
7528 #endif
7530 $_def_localtime_r
7532 /* Define this if your system has vsscanf */
7533 $_def_vsscanf
7535 /* Define this if your system has swab */
7536 $_def_swab
7538 /* Define this if your system has no posix select */
7539 $_def_no_posix_select
7541 /* Define this if your system has gettimeofday */
7542 $_def_gettimeofday
7544 /* Define this if your system has glob */
7545 $_def_glob
7547 /* Define this if your system has setenv */
7548 $_def_setenv
7549 #ifndef HAVE_SETENV
7550 int setenv(const char *name, const char *val, int overwrite);
7551 #endif
7553 /* Define this if your system has pthreads */
7554 $_def_pthreads
7556 /* Define this if you enabled thread support for libavcodec */
7557 $_def_threads
7559 /* LIRC (remote control, see www.lirc.org) support: */
7560 $_def_lirc
7563 * LIRCCD (LIRC client daemon)
7564 * See http://www.dolda2000.cjb.net/~fredrik/lirccd/
7566 $_def_lircc
7568 /* DVD navigation support using libdvdnav */
7569 $_def_dvdnav
7570 $_def_dvdnav_version
7572 /* Define this to enable MPEG 1/2 image postprocessing (requires a FAST CPU!) */
7573 #define MPEG12_POSTPROC 1
7575 /* Define this to enable image postprocessing in libavcodec (requires a FAST CPU!) */
7576 $_def_ffpostprocess
7578 /* Define to include support for OpenDivx postprocessing */
7579 $_def_odivx_postprocess
7581 /* Win32 DLL support */
7582 $_def_win32
7583 #define WIN32_PATH "$_win32libdir"
7585 /* DirectShow support */
7586 $_def_dshow
7588 /* Mac OS X specific features */
7589 $_def_macosx
7590 $_def_macosx_finder_support
7591 $_def_macosx_bundle
7592 $_def_macosx_corevideo
7594 /* Build our Win32-loader */
7595 $_def_win32_loader
7597 /* ffmpeg's libavcodec support (requires libavcodec source) */
7598 $_def_libavcodec
7599 $_def_libavcodecso
7601 /* ffmpeg's libavformat support (requires libavformat source) */
7602 $_def_libavformat
7603 $_def_libavformat_so
7604 $_def_libavformat_win32
7606 /* Use libavcodec's decoders */
7607 #define CONFIG_DECODERS 1
7608 /* Use libavcodec's encoders */
7609 #define CONFIG_ENCODERS 1
7611 /* Use libavformat's demuxers */
7612 #define CONFIG_DEMUXERS 1
7613 /* Use libavformat's muxers */
7614 #define CONFIG_MUXERS 1
7616 #define CONFIG_MPEGAUDIO_HP 1
7618 #define CONFIG_GPL 1
7620 /* Use amr codecs from libavcodec (requires amr sources) */
7621 $_def_amr_nb
7622 $_def_amr_nb_fixed
7623 $_def_amr_wb
7625 /* Use specific codecs from libavcodec */
7626 `echo $_libavcodecs | tr '[a-z] ' '[A-Z]\n' | sed 's/^/#define CONFIG_/;s/$/ 1/'`
7628 /* Use codec libs included in mplayer CVS / source dist: */
7629 $_def_mp3lib
7630 $_def_liba52
7631 $_def_libdts
7632 $_def_libmpeg2
7634 /* Use libfame encoder filter */
7635 $_def_fame
7637 /* XAnim DLL support */
7638 $_def_xanim
7639 /* Default search path */
7640 $_def_xanim_path
7642 /* RealPlayer DLL support */
7643 $_def_real
7644 /* Default search path */
7645 $_def_real_path
7647 /* LIVE555 Streaming Media library support */
7648 $_def_live
7650 /* Use 3dnow/mmxext/sse/mmx optimized fast memcpy() [maybe buggy... signal 4]*/
7651 $_def_fastmemcpy
7653 /* Use unrarlib for Vobsubs */
7654 $_def_unrarlib
7656 /* gui support, please do not edit this option */
7657 $_def_gui
7658 $_def_gtk2_gui
7660 /* Audio output drivers */
7661 $_def_ossaudio
7662 $_def_ossaudio_devdsp
7663 $_def_ossaudio_devmixer
7664 $_def_alsa5
7665 $_def_alsa9
7666 $_def_alsa1x
7667 $_def_arts
7668 $_def_esd
7669 $_def_esd_latency
7670 $_def_polyp
7671 $_def_jack
7672 $_def_sys_asoundlib_h
7673 $_def_alsa_asoundlib_h
7674 $_def_sunaudio
7675 $_def_sgiaudio
7676 $_def_win32waveout
7677 $_def_nas
7679 /* Enable fast OSD/SUB renderer (looks ugly, but uses less CPU power) */
7680 #undef FAST_OSD
7681 #undef FAST_OSD_TABLE
7683 /* Enable TV Interface support */
7684 $_def_tv
7686 /* Enable EDL support */
7687 $_def_edl
7689 /* Enable Video 4 Linux TV interface support */
7690 $_def_tv_v4l
7692 /* Enable Video 4 Linux 2 TV interface support */
7693 $_def_tv_v4l2
7695 /* Enable *BSD BrookTree TV interface support */
7696 $_def_tv_bsdbt848
7698 /* Define if your processor stores words with the most significant
7699 byte first (like Motorola and SPARC, unlike Intel and VAX). */
7700 $_def_words_endian
7702 $_def_arch
7704 /* For the PPC. G5 has the dcbzl when in 64bit mode but G4s and earlier do not
7705 have the instruction. */
7706 $_def_dcbzl
7708 /* libmpeg2 wants ARCH_PPC and the rest of mplayer use ARCH_POWERPC,
7709 * define ARCH_PPC if ARCH_POWERPC is set to cope with that.
7711 #ifdef ARCH_POWERPC
7712 #define ARCH_PPC 1
7713 #endif
7715 /* the same issue as with ARCH_POWERPC but with ffmpeg/libavcodec */
7716 #ifdef ARCH_ARMV4L
7717 #define ARCH_ARM 1
7718 #endif
7720 /* only gcc3 can compile mvi instructions */
7721 $_def_gcc_mvi_support
7723 /* Define this for Cygwin build for win32 */
7724 $_def_confwin32
7726 /* Define this to any prefered value from 386 up to infinity with step 100 */
7727 #define __CPU__ $iproc
7729 $_mp_wordsize
7731 $_def_linux
7733 $_def_vcd
7735 #ifdef sun
7736 #define DEFAULT_CDROM_DEVICE "/vol/dev/aliases/cdrom0"
7737 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
7738 #elif defined(HPUX)
7739 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
7740 #define DEFAULT_DVD_DEVICE "/dev/dvd"
7741 #elif defined(WIN32)
7742 #define DEFAULT_CDROM_DEVICE "D:"
7743 #define DEFAULT_DVD_DEVICE "D:"
7744 #elif defined(SYS_DARWIN)
7745 #define DEFAULT_CDROM_DEVICE "/dev/disk1"
7746 #define DEFAULT_DVD_DEVICE "/dev/rdiskN"
7747 #elif defined(__OpenBSD__)
7748 #define DEFAULT_CDROM_DEVICE "/dev/rcd0a"
7749 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
7750 #elif defined(__FreeBSD__)
7751 #define DEFAULT_CDROM_DEVICE "/dev/acd0"
7752 #define DEFAULT_DVD_DEVICE DEFAULT_CDROM_DEVICE
7753 #else
7754 #define DEFAULT_CDROM_DEVICE "/dev/cdrom"
7755 #define DEFAULT_DVD_DEVICE "/dev/dvd"
7756 #endif
7759 /*----------------------------------------------------------------------------
7761 ** NOTE: Instead of modifying these definitions here, use the
7762 ** --enable/--disable options of the ./configure script!
7763 ** See ./configure --help for details.
7765 *---------------------------------------------------------------------------*/
7767 /* C99 lrintf function available */
7768 $_def_lrintf
7770 /* round function is available */
7771 $_def_round
7773 /* yes, we have inttypes.h */
7774 #define HAVE_INTTYPES_H 1
7776 /* int_fastXY_t emulation */
7777 $_def_fast_inttypes
7779 /* nanosleep support */
7780 $_def_nanosleep
7782 /* SMB support */
7783 $_def_smbsupport
7785 /* termcap flag for getch2.c */
7786 $_def_termcap
7788 /* termios flag for getch2.c */
7789 $_def_termios
7790 $_def_termios_h
7791 $_def_termios_sys_h
7793 /* enable PNG support */
7794 $_def_png
7796 /* enable JPEG support */
7797 $_def_jpg
7799 /* enable PNM support */
7800 $_def_pnm
7802 /* enable md5sum support */
7803 $_def_md5sum
7805 /* enable GIF support */
7806 $_def_gif
7807 $_def_gif_4
7808 $_def_gif_tvt_hack
7810 /* enable FreeType support */
7811 $_def_freetype
7813 /* enable Fontconfig support */
7814 $_def_fontconfig
7816 /* enable FriBiDi usage */
7817 $_def_fribidi
7819 /* enable ENCA usage */
7820 $_def_enca
7822 /* liblzo support */
7823 $_def_liblzo
7824 #ifdef USE_LIBLZO
7825 #define CONFIG_LZO 1
7826 #endif
7828 /* libmad support */
7829 $_def_mad
7831 /* enable OggVorbis support */
7832 $_def_vorbis
7834 /* enable Tremor as vorbis decoder */
7835 $_def_tremor
7837 /* enable Speex support */
7838 $_def_speex
7840 /* enable musepack support */
7841 $_def_musepack
7843 /* enable OggTheora support */
7844 $_def_theora
7846 /* enable Matroska support */
7847 $_def_matroska
7849 /* enable FAAD (AAC) support */
7850 $_def_faad
7851 $_def_faad_internal
7853 /* enable FAAC (AAC encoder) support */
7854 $_def_faac
7856 /* enable LADSPA plugin support */
7857 $_def_ladspa
7859 /* enable network */
7860 $_def_network
7862 /* enable ftp support */
7863 $_def_ftp
7865 /* enable vstream support */
7866 $_def_vstream
7868 /* enable winsock2 instead of Unix functions*/
7869 $_def_winsock2
7871 /* define this to use inet_aton() instead of inet_pton() */
7872 $_def_use_aton
7874 /* enables / disables cdparanoia support */
7875 $_def_cdparanoia
7877 /* enables / disables VIDIX usage */
7878 $_def_vidix
7880 /* enables / disables new input joystick support */
7881 $_def_joystick
7883 /* enables / disables QTX codecs */
7884 $_def_qtx
7886 /* enables / disables osd menu */
7887 $_def_menu
7889 /* enables / disables subtitles sorting */
7890 $_def_sortsub
7892 /* XMMS input plugin support */
7893 $_def_xmms
7894 #define XMMS_INPUT_PLUGIN_DIR "$_xmmsplugindir"
7896 /* enables inet6 support */
7897 $_def_inet6
7899 /* do we have gethostbyname2? */
7900 $_def_gethostbyname2
7902 /* Extension defines */
7903 $_def_3dnow // only define if you have 3DNOW (AMD k6-2, AMD Athlon, iDT WinChip, etc.)
7904 $_def_3dnowex // only define if you have 3DNOWEX (AMD Athlon, etc.)
7905 $_def_mmx // only define if you have MMX (newer x86 chips, not P54C/PPro)
7906 $_def_mmx2 // only define if you have MMX2 (Athlon/PIII/4/CelII)
7907 $_def_sse // only define if you have SSE (Intel Pentium III/4 or Celeron II)
7908 $_def_sse2 // only define if you have SSE2 (Intel Pentium 4)
7909 $_def_altivec // only define if you have Altivec (G4)
7911 $_def_altivec_h // enables usage of altivec.h
7914 $_def_mlib // Sun mediaLib, available only on solaris
7915 $_def_vis // only define if you have VIS ( ultrasparc )
7917 /* libmpeg2 uses a different feature test macro for mediaLib */
7918 #ifdef HAVE_MLIB
7919 #define LIBMPEG2_MLIB 1
7920 #endif
7922 /* libvo options */
7923 #define SCREEN_SIZE_X 1
7924 #define SCREEN_SIZE_Y 1
7925 $_def_x11
7926 $_def_xv
7927 $_def_xvmc
7928 $_def_vm
7929 $_def_xf86keysym
7930 $_def_xinerama
7931 $_def_gl
7932 $_def_gl_win32
7933 $_def_dga
7934 $_def_dga2
7935 $_def_sdl
7936 /* defined for SDLlib with keyrepeat bugs (before 1.2.1) */
7937 $_def_sdlbuggy
7938 $_def_directx
7939 $_def_ggi
7940 $_def_ggiwmh
7941 $_def_3dfx
7942 $_def_tdfxfb
7943 $_def_tdfxvid
7944 $_def_directfb
7945 $_def_directfb_version
7946 $_def_zr
7947 $_def_bl
7948 $_def_mga
7949 $_def_xmga
7950 $_def_syncfb
7951 $_def_fbdev
7952 $_def_dxr2
7953 $_def_dxr3
7954 $_def_dvb
7955 $_def_dvb_in
7956 $_def_svga
7957 $_def_vesa
7958 $_def_xdpms
7959 $_def_aa
7960 $_def_caca
7961 $_def_tga
7962 $_def_toolame
7963 $_def_twolame
7965 /* used by GUI: */
7966 $_def_xshape
7968 #if defined(HAVE_GL) || defined(HAVE_X11) || defined(HAVE_XV)
7969 #define X11_FULLSCREEN 1
7970 #endif
7972 #endif /* MPLAYER_CONFIG_H */
7975 #############################################################################
7977 echo "Creating libvo/config.mak"
7978 _voobj=`echo $_vosrc | sed -e 's/\.c/\.o/g;s/\.m/\.o/g'`
7979 cat > libvo/config.mak << EOF
7980 include ../config.mak
7981 OPTIONAL_SRCS = $_vosrc
7982 OPTIONAL_OBJS = $_voobj
7985 #############################################################################
7987 echo "Creating libao2/config.mak"
7988 _aoobj=`echo $_aosrc | sed -e 's/\.c/\.o/g'`
7989 cat > libao2/config.mak << EOF
7990 include ../config.mak
7991 OPTIONAL_SRCS = $_aosrc
7992 OPTIONAL_OBJS = $_aoobj
7995 #############################################################################
7997 echo "Creating libaf/config.mak"
7998 _afobj=`echo $_afsrc | sed -e 's/\.c/\.o/g'`
7999 cat > libaf/config.mak << EOF
8000 include ../config.mak
8001 OPTIONAL_SRCS = $_afsrc
8002 OPTIONAL_OBJS = $_afobj
8005 #############################################################################
8007 cat << EOF
8009 Config files successfully generated by ./configure !
8011 Install prefix: $_prefix
8012 Data directory: $_datadir
8013 Config direct.: $_confdir
8015 Byte order: $_byte_order
8016 Optimizing for: $_optimizing
8018 Languages:
8019 Messages/GUI: $_language
8022 echo -n " Manual pages: $MAN_LANG"
8023 test "$LANGUAGES" = en && echo -n " (no localization selected, use --language=all)"
8024 echo
8026 cat << EOF
8028 Enabled optional drivers:
8029 Input: $_inputmodules
8030 Codecs: $_codecmodules
8031 Audio output: $_aomodules
8032 Video output: $_vomodules
8033 Audio filters: $_afmodules
8034 Disabled optional drivers:
8035 Input: $_noinputmodules
8036 Codecs: $_nocodecmodules
8037 Audio output: $_noaomodules
8038 Video output: $_novomodules
8039 Audio filters: $_noafmodules
8041 'config.h' and 'config.mak' contain your configuration options.
8042 Note: If you alter theses files (for instance CFLAGS) MPlayer may no longer
8043 compile *** DO NOT REPORT BUGS if you tweak these files ***
8045 'make' will now compile MPlayer and 'make install' will install it.
8046 Note: On non-Linux systems you might need to use 'gmake' instead of 'make'.
8051 if test "$_mtrr" = yes ; then
8052 echo "Please check mtrr settings at /proc/mtrr (see DOCS/HTML/$_doc_lang/video.html#mtrr)"
8053 echo
8056 if test "$_sdl" = "outdated" ; then
8057 cat <<EOF
8058 You have an outdated version of libSDL installed (older than v1.1.7) and SDL
8059 support has therefore been disabled.
8061 Please upgrade to a more recent version (version 1.1.8 and above are known to
8062 work). You may get this library from: http://www.libsdl.org
8064 You need to rerun ./configure and recompile after updating SDL. If you are
8065 only interested in the libSDL audio drivers, then an older version might work.
8067 Use --enable-sdl to force usage of libSDL.
8072 if x86; then
8073 if test "$_win32" = no ; then
8074 if test "$_win32libdir" ; then
8075 echo "Failed to find a Win32 codecs dir at $_win32libdir!"
8076 else
8077 echo "Failed to find a Win32 codecs directory! (default: /usr/local/lib/codecs/)"
8079 cat << EOF
8080 Create it and copy the DLL files there! You can download the codecs from our
8081 homepage at http://www.mplayerhq.hu/MPlayer/releases/codecs/
8085 else
8086 cat <<EOF
8087 NOTE: Win32 codec DLLs are not supported on your CPU ($host_arch) or your
8088 operating system ($system_name). You may encounter a few files that cannot
8089 be played due to missing open source video/audio codec support.
8095 cat <<EOF
8097 Check $TMPLOG if you wonder why an autodetection failed (check whether
8098 the development headers/packages are installed).
8099 Do not report compilation errors if you used any of the --enable-* options
8100 (except --enable-gui and maybe --enable-debug).
8102 If you suspect a bug, please read DOCS/HTML/$_doc_lang/bugreports.html.
8106 if test "$_vidix" = no ; then
8107 cat <<EOF
8108 You've disabled VIDIX. Although it would be better to PORT it instead.
8109 Have a look at the documentation for supported cards!
8114 if test "$_warn_CFLAGS" = yes; then
8115 cat <<EOF
8117 MPlayer compilation will use the CFLAGS set by you, but:
8119 *** *** DO NOT REPORT BUGS IF IT DOES NOT COMPILE/WORK! *** ***
8121 It is strongly recommended to let MPlayer choose the correct CFLAGS!
8122 To do so, execute 'CFLAGS= ./configure <options>'
8127 # Last move:
8128 rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"