musepack demuxing and decoding support (demuxing is v7 bitstream only).
[mplayer.git] / configure
1 #! /bin/sh
2 #
3 # Original version (C) 2000 Pontscho/fresh!mindworkz
4 #                      pontscho@makacs.poliod.hu
5 #
6 # History / Contributors: check the cvs log !
7 #
8 # Cleanups all over the place (c) 2001 pl
9 #
10 #
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 '
17 #
18 # In this file, a tab is 8 chars and indentation shift is 2 characters
19 #
20 # GOTCHAS:
21 #  - config files are currently:
22 #    config.h config.mak libvo/config.mak libao2/config.mak Gui/config.mak
23 #
24 #############################################################################
25
26 # Prevent locale nonsense from breaking basic text processing utils
27 LC_ALL=C
28 export LC_ALL
29
30 # Prefer these macros to full length text !
31 # These macros only return an error code - NO display is done
32 cc_check() {
33   echo >> "$TMPLOG"
34   cat "$TMPC" >> "$TMPLOG"
35   echo >> "$TMPLOG"
36   echo "$_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra $TMPC -o $TMPO $@" >> "$TMPLOG"
37   rm -f "$TMPO"
38   ( $_cc $CFLAGS $_inc_extra $_ld_static $_ld_extra "$TMPC" -o "$TMPO" "$@" ) >> "$TMPLOG" 2>&1
39   TMP="$?"
40   echo >> "$TMPLOG"
41   echo "ldd $TMPO" >> "$TMPLOG"
42   ( $_ldd "$TMPO" ) >> "$TMPLOG" 2>&1
43   echo >> "$TMPLOG"
44   return "$TMP"
45 }
46
47 # Display error message, flushes tempfile, exit
48 die () {
49   echo
50   echo "Error: $@" >&2
51   echo >&2
52   rm -f "$TMPO" "$TMPC" "$TMPS" "$TMPCPP"
53   echo "Check \"$TMPLOG\" if you do not understand why it failed."
54   exit 1
55 }
56
57 # OS test booleans functions
58 issystem() {
59   test "`echo $system_name | tr A-Z a-z`" = "`echo $1 | tr A-Z a-z`"
60 }
61 linux()   { issystem "Linux"   ; return "$?" ; }
62 sunos()   { issystem "SunOS"   ; return "$?" ; }
63 hpux()    { issystem "HP-UX"   ; return "$?" ; }
64 irix()    { issystem "IRIX"    ; return "$?" ; }
65 cygwin()  { issystem "CYGWIN"  ; return "$?" ; }
66 freebsd() { issystem "FreeBSD" ; return "$?" ; }
67 netbsd()  { issystem "NetBSD"  ; return "$?" ; }
68 bsdos()   { issystem "BSD/OS"  ; return "$?" ; }
69 openbsd() { issystem "OpenBSD" ; return "$?" ; }
70 bsd()     { freebsd || netbsd || bsdos || openbsd ; return "$?" ; }
71 qnx()     { issystem "QNX"     ; return "$?" ; }
72 darwin()  { issystem "Darwin"  ; return "$?" ; }
73 gnu()     { issystem "GNU"     ; return "$?" ; }
74 mingw32() { issystem "MINGW32" ; return "$?" ; }
75 morphos() { issystem "MorphOS" ; return "$?" ; }
76 win32()   { cygwin || mingw32  ; return "$?" ; }
77 beos()    { issystem "BEOS"    ; return "$?" ; }
78
79 # arch test boolean functions
80 # x86/x86pc is used by QNX
81 x86() {
82   case "$host_arch" in
83     i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
84     *) return 1 ;;
85   esac
86 }
87
88 ppc() {
89   case "$host_arch" in
90     ppc) return 0;;
91     *) return 1;;
92   esac
93 }
94
95 alpha() {
96   case "$host_arch" in
97     alpha) return 0;;
98     *) return 1;;
99   esac
100 }
101
102 # not boolean test: implement the posix shell "!" operator for a
103 # non-posix /bin/sh.
104 #   usage:  not {command}
105 # returns exit status "success" when the execution of "command"
106 # fails.
107 not() {
108   eval "$@"
109   test $? -ne 0
110 }
111
112 # Use this before starting a check
113 echocheck() {
114   echo "============ Checking for $@ ============" >> "$TMPLOG"
115   echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
116 }
117
118 # Use this to echo the results of a check
119 echores() {
120   echo "Result is: $@" >> "$TMPLOG"
121   echo "##########################################" >> "$TMPLOG"
122   echo "" >> "$TMPLOG"
123   echo "$@"
124 }
125 #############################################################################
126
127 # Check how echo works in this /bin/sh
128 case `echo -n` in
129   -n)   _echo_n=        _echo_c='\c'    ;;      # SysV echo
130   *)    _echo_n='-n '   _echo_c=        ;;      # BSD echo
131 esac
132
133 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"`
134
135 for parm in "$@" ; do
136   if test "$parm" = "--help" || test "$parm" = "-help" || test "$parm" = "-h" ; then
137     cat << EOF
138
139 Usage: $0 [OPTIONS]...
140
141 Configuration:
142   -h, --help             display this help and exit
143
144 Installation directories:
145   --prefix=DIR           use this prefix for installing mplayer [/usr/local]
146   --bindir=DIR           use this prefix for installing mplayer binary
147                          [PREFIX/bin]
148   --datadir=DIR          use this prefix for installing machine independent
149                          data files (fonts, skins) [PREFIX/share/mplayer]
150   --mandir=DIR           use this prefix for installing manpages [PREFIX/man]
151   --confdir=DIR          use this prefix for installing configuration files
152                          [PREFIX/etc/mplayer]
153   --libdir=DIR           use this prefix for object code libraries [PREFIX/lib]
154
155 Optional features:
156   --disable-mencoder     disable mencoder (a/v encoder) compilation [enable]
157   --enable-gui           enable gmplayer compilation (GTK 1.2 GUI) [disable]
158   --enable-largefiles    enable support for files > 2 GBytes [disable]
159   --enable-linux-devfs   set default devices to devfs ones [disable]
160   --enable-termcap       use termcap database for key codes [autodetect]
161   --enable-termios       use termios database for key codes [autodetect]
162   --disable-iconv        do not use iconv(3) function [autodetect]
163   --disable-setlocale    disable setlocale using in mplayer [autodetect]
164   --disable-langinfo     do not use langinfo [autodetect]
165   --enable-lirc          enable LIRC (remote control) support [autodetect]
166   --enable-lircc         enable LIRCCD (LIRC client daemon) input [autodetect]
167   --enable-joystick      enable joystick support [disable]
168   --disable-vm           disable support X video mode extensions [autodetect]
169   --disable-xf86keysym   disable support for 'multimedia' keys [autodetect]
170   --disable-tv           disable TV Interface (tv/dvb grabbers) [enable]
171   --disable-tv-v4l       disable Video4Linux TV Interface support [autodetect]
172   --disable-tv-v4l2      disable Video4Linux2 TV Interface support [autodetect]
173   --disable-tv-bsdbt848  disable BSD BT848 Interface support [autodetect]
174   --disable-edl          disable EDL (edit decision list) support [enable]
175   --disable-rtc          disable RTC (/dev/rtc) on Linux [autodetect]
176   --disable-network      disable network support (for: http/mms/rtp) [enable]
177   --enable-winsock2      enable winsock2 usage [autodetect]
178   --enable-smb           enable Samba (SMB) input support [autodetect]
179   --enable-live          enable LIVE.COM Streaming Media support [autodetect]
180   --disable-dvdread      Disable libdvdread support [autodetect]
181   --disable-mpdvdkit     Disable mpdvdkit/mpdvdkit2 support [autodetect]
182   --disable-cdparanoia   Disable cdparanoia support [autodetect]
183   --disable-freetype     Disable freetype2 font rendering support [autodetect]
184   --disable-fontconfig   Disable fontconfig font lookup support [autodetect]
185   --disable-unrarlib     Disable Unique RAR File Library [enabled]
186   --enable-menu          Enable OSD menu support (NOT DVD MENU) [disabled]
187   --disable-sortsub      Disable subtitles sorting [enabled]
188   --enable-fribidi       Enable using the FriBiDi libs [disabled]
189   --disable-enca         Disable using ENCA charset oracle library [autodetect]
190   --disable-macosx       Disable Mac OS X specific features [autodetect]
191   --enable-macosx-finder-support  Enable Mac OS X Finder invocation parameter parsing [disabled]
192   --enable-macosx-bundle Enable Mac OS X bundle file locations [autodetect]
193   --disable-inet6        Disable IPv6 support [autodetect]
194   --disable-gethostbyname2  gethostbyname() function is not provided by the C
195                             library [autodetect]
196   --disable-ftp          Disable ftp support [enabled]
197   --disable-vstream      Disable tivo vstream client support [autodetect]
198   --disable-pthreads     Disable Posix threads support [autodetect]
199
200 Codecs:
201   --enable-gif           enable gif support [autodetect]
202   --enable-png           enable png input/output support [autodetect]
203   --enable-jpeg          enable jpeg input/output support [autodetect]
204   --enable-liblzo        enable external liblzo support [autodetect]
205   --disable-win32        disable Win32 DLL support [autodetect]
206   --disable-dshow        disable Win32/DirectShow support [autodetect]
207   --disable-qtx          disable Quicktime codecs [autodetect]
208   --disable-xanim        disable XAnim DLL support [autodetect]
209   --disable-real         disable RealPlayer DLL support [autodetect]
210   --disable-xvid         disable XviD codec [autodetect]
211   --disable-x264         disable H.264 encoder [autodetect]
212   --disable-divx4linux   disable DivX4linux/Divx5linux codec [autodetect]
213   --enable-opendivx      enable _old_ OpenDivx codec [disable]
214   --disable-libavcodec   disable libavcodec [autodetect]
215   --disable-libavformat  disable libavformat [autodetect]
216   --enable-libfame       enable libfame realtime encoder [autodetect]
217   --disable-internal-tremor do not build internal OggVorbis support [enabled]
218   --enable-tremor-low    build with lower accuracy internal tremor [disabled]
219   --enable-external-tremor build with external tremor [disabled]
220   --disable-vorbis       disable OggVorbis support entirely [autodetect]
221   --enable-theora        build with OggTheora support [autodetect]
222   --disable-internal-matroska disable internal Matroska support [enabled]
223   --enable-external-faad build with external FAAD2 (AAC) support [autodetect]
224   --disable-internal-faad disable internal FAAD2 (AAC) support [autodetect]
225   --disable-faac         disable support for FAAC (AAC encoder) [autodetect]
226   --disable-ladspa       disable LADSPA plugin support [autodetect]
227   --disable-libdv        disable libdv 0.9.5 en/decoding support [autodetect]
228   --disable-mad          disable libmad (MPEG audio) support [autodetect]
229   --disable-toolame      disable Toolame (MPEG layer 2 audio) support in mencoder [autodetect]
230   --disable-twolame      disable Twolame (MPEG layer 2 audio) support in mencoder [autodetect]
231   --enable-xmms          build with XMMS inputplugin support [disabled]
232   --disable-mp3lib       disable builtin mp3lib [enabled]
233   --disable-liba52       disable builtin liba52 [enabled]
234   --enable-libdts        enable libdts support [autodetect]
235   --disable-libmpeg2     disable builtin libmpeg2 [enabled]
236   --disable-musepack     disable musepack support [autodetect]
237   --disable-amr_nb       disable amr narrowband, floating point [autodetect]
238   --disable-amr_nb-fixed disable amr narrowband, fixed point [autodetect]
239   --disable-amr_wb       disable amr wideband, floating point [autodetect]
240   --disable-codec=CODEC  disable specified codec
241   --enable-codec=CODEC   dnable specified codec
242   
243 Video output:
244   --disable-vidix        disable VIDIX [enable on x86 *nix]
245   --enable-gl            build with OpenGL render support [autodetect]
246   --enable-dga[=n]       build with DGA [n in {1, 2} ] support [autodetect]
247   --enable-vesa          build with VESA support [autodetect]
248   --enable-svga          build with SVGAlib support [autodetect]
249   --enable-sdl           build with SDL render support [autodetect]
250   --enable-aa            build with AAlib render support [autodetect]
251   --enable-caca          build with CACA render support [autodetect]
252   --enable-ggi           build with GGI render support [autodetect]
253   --enable-ggiwmh        build with GGI libggiwmh extension [autodetect]
254   --enable-directx       build with DirectX support [autodetect]
255   --enable-dxr2          build with DXR2 render support [autodetect]
256   --enable-dxr3          build with DXR3/H+ render support [autodetect]
257   --enable-dvb           build with support for output via DVB-Card [autodetect]
258   --enable-dvbhead       build with DVB support (HEAD version) [autodetect]
259   --enable-mga           build with mga_vid (for Matrox G200/G4x0/G550) support
260                          (check for /dev/mga_vid) [autodetect]
261   --enable-xmga          build with mga_vid X Window support
262                          (check for X & /dev/mga_vid) [autodetect]
263   --enable-xv            build with Xv render support for X 4.x [autodetect]
264   --enable-xvmc          build with XvMC acceleration for X 4.x [disable]
265   --enable-vm            build with XF86VidMode support for X11 [autodetect]
266   --enable-xinerama      build with Xinerama support for X11 [autodetect]
267   --enable-x11           build with X11 render support [autodetect]
268   --enable-fbdev         build with FBDev render support [autodetect]
269   --enable-mlib          build with MLIB support (Solaris only) [autodetect]
270   --enable-3dfx          build with obsolete /dev/3dfx support [disable]
271   --enable-tdfxfb        build with tdfxfb (Voodoo 3/banshee) support [disable]
272   --enable-directfb      build with DirectFB support [autodetect]
273   --enable-zr            build with ZR360[56]7/ZR36060 support [autodetect]
274   --enable-bl            build with Blinkenlights support [disable]
275   --enable-tdfxvid       build with tdfx_vid support [disable]
276   --disable-tga          disable targa output support [enable]
277   --disable-pnm          disable pnm output support [enable]
278   --disable-md5sum       disable md5sum output support [enable]
279   
280 Audio output:
281   --disable-alsa         disable ALSA sound support [autodetect]
282   --disable-ossaudio     disable OSS sound support [autodetect]
283   --disable-arts         disable aRts sound support [autodetect]
284   --disable-esd          disable esd sound support [autodetect]
285   --disable-polyp        disable Polypaudio sound support [autodetect]
286   --disable-jack         disable JACK sound support [autodetect]
287   --disable-nas          disable NAS sound support [autodetect]
288   --disable-sgiaudio     disable SGI sound support [autodetect]
289   --disable-sunaudio     disable Sun sound support [autodetect]
290   --disable-win32waveout disable Windows waveout sound support [autodetect]
291   --disable-select       disable using select() on audio device [enable]
292
293 Miscellaneous options:
294   --enable-runtime-cpudetection    Enable runtime CPU detection [disable]
295   --cc=COMPILER          use this C compiler to build MPlayer [gcc]
296   --host-cc=COMPILER     use this C compiler to build apps needed for the build process [gcc]
297   --as=ASSEMBLER         use this assembler to build MPlayer [as]
298   --target=PLATFORM      target platform (i386-linux, arm-linux, etc)
299   --enable-static        build a statically linked binary. Set further linking
300                          options with --enable-static="-lslang -lncurses"
301   --charset              convert the help messages to this charset
302   --language=list        a white space or comma separated list of languages
303                          for translated man pages, the first language is the
304                          primary and therefore used for translated messages
305                          and GUI (also the environment variable \$LINGUAS is
306                          honored) [en]
307                          (Available: $LANGUAGES all)
308   --enable-shared-pp     install & use shared postprocessing lib
309   --with-install=PATH    use a custom install program (useful if your OS uses 
310                          a GNU-incompatible install utility by default and 
311                          you want to use GNU version)
312   --install-path=PATH    the path to a custom install program 
313                          this option is obsolete and will be removed soon,
314                          use --with-install instead.
315
316 Advanced options:
317   --enable-mmx           build with MMX support [autodetect]
318   --enable-mmx2          build with MMX2 support (PIII, Athlon) [autodetect]
319   --enable-3dnow         build with 3DNow! support [autodetect]
320   --enable-3dnowex       build with extended 3DNow! support [autodetect]
321   --enable-sse           build with SSE support [autodetect]
322   --enable-sse2          build with SSE2 support [autodetect]
323   --enable-shm           build with shm support [autodetect]
324   --enable-altivec       build with Altivec support (PowerPC) [autodetect]
325   --disable-fastmemcpy   disable 3DNow!/SSE/MMX optimized memcpy() [enable]
326   --enable-big-endian    Force byte order to big-endian [autodetect]
327   --enable-debug[=1-3]   compile debugging information into mplayer [disable]
328   --enable-profile       compile profiling information into mplayer [disable]
329   --disable-sighandler   disable sighandler for crashes [enable]
330   --enable-crash-debug   enable automatic gdb attach on crash [disable]
331   --enable-i18n          _experimental_ gnu gettext() support [autodetect]
332   --enable-dynamic-plugins  Enable support for dynamic a/v plugins [disable]
333
334 Hazardous options a.k.a. "DO NOT REPORT ANY BUGS!"
335   --disable-gcc-checking   disable gcc version checking [enable]
336
337 Use these options if autodetection fails (Options marked with (*) accept
338 multiple paths separated by ':'):
339   --with-extraincdir=DIR   extra headers (png, mad, sdl, ...) in DIR (*)
340   --with-extralibdir=DIR   extra library files (png, mad, sdl, ...) in DIR (*)
341   --with-x11incdir=DIR     X headers in DIR (*)
342   --with-x11libdir=DIR     X library files in DIR (*)
343   --with-dxr2incdir=DIR    DXR2 headers in DIR (*)
344   --with-dvbincdir=DIR     DVB headers in DIR (*)
345   --with-madlibdir=DIR     libmad (libmad shared library) in DIR (*)
346   --with-mlibdir=DIR       libmlib (MLIB support) in DIR (Solaris only)
347   --with-codecsdir=DIR     Binary codec files in DIR
348   --with-win32libdir=DIR   W*ndows DLL files in DIR
349   --with-xanimlibdir=DIR   XAnim DLL files in DIR
350   --with-reallibdir=DIR    RealPlayer DLL files in DIR
351   --with-xvidlibdir=DIR    libxvidcore (XviD) in DIR  (*)
352   --with-xvidincdir=DIR    XviD header in DIR (*)
353   --with-x264libdir=DIR    libx264 in DIR
354   --with-x264incdir=DIR    x264 header in DIR
355   --with-dtslibdir=DIR     libdts library in DIR  (*)
356   --with-dtsincdir=DIR     libdts header in DIR (*)
357   --with-livelibdir=DIR    LIVE.COM Streaming Media libraries in DIR
358   --with-toolamedir=DIR    path to Toolame library and include file
359   --with-xmmsplugindir=DIR XMMS plugins in DIR
360   --with-xmmslibdir=DIR    libxmms.so.1 in DIR
361   --with-cdparanoiaincdir=DIR  cdparanoia headers in DIR (*)
362   --with-cdparanoialibdir=DIR  cdparanoia libraries (libcdda_*) in DIR (*)
363   --with-xvmclib=NAME      name of adapter-specific library (e.g. XvMCNVIDIA)
364   --with-termcaplib=NAME   name of library with termcap functionality
365                            name should be given without leading "lib"
366                            checks for "termcap" and "tinfo"
367   
368   --with-freetype-config=PATH path to freetype-config
369                               (e.g. /opt/bin/freetype-config)
370   --with-fribidi-config=PATH  path to fribidi-config
371                               (e.g. /opt/bin/fribidi-config)
372   --with-glib-config=PATH  path to glib*-config (e.g. /opt/bin/glib-config)
373   --with-gtk-config=PATH   path to gtk*-config (e.g. /opt/bin/gtk-config)
374   --with-sdl-config=PATH   path to sdl*-config (e.g. /opt/bin/sdl-config)
375
376 This configure script is NOT autoconf-based, even though its output is similar.
377 It will try to autodetect all configuration options. If you --enable an option
378 it will be forcefully turned on, skipping autodetection. This can break
379 compilation, so you need to know what you are doing.
380 EOF
381     exit 0
382   fi
383 done # for parm in ...
384
385
386 # 1st pass checking for vital options
387 _install=install
388 _ranlib=ranlib
389 _cc=cc
390 test "$CC" && _cc="$CC"
391 _as=auto
392 _runtime_cpudetection=no
393 for ac_option do
394   case "$ac_option" in
395   --target=*)
396     _target=`echo $ac_option | cut -d '=' -f 2`
397     ;;
398   --cc=*)
399     _cc=`echo $ac_option | cut -d '=' -f 2`
400     ;;
401   --host-cc=*)
402     _host_cc=`echo $ac_option | cut -d '=' -f 2`
403     ;;
404   --as=*)
405     _as=`echo $ac_option | cut -d '=' -f 2`
406     ;;
407   --enable-gcc-checking)
408     _skip_cc_check=no
409     ;;
410   --disable-gcc-checking)
411     _skip_cc_check=yes
412     ;;
413   --enable-static)
414     _ld_static='-static'
415     ;;
416   --disable-static)
417     _ld_static=''
418     ;;
419   --enable-static=*)
420     _ld_static="-static `echo $ac_option | cut -d '=' -f 2`"
421     ;;
422   --with-extraincdir=*)
423     _inc_extra=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
424     ;;
425   --with-extralibdir=*)
426     _ld_extra=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
427     ;;
428   --enable-runtime-cpudetection)
429     _runtime_cpudetection=yes
430     ;;
431   --disable-runtime-cpudetection)
432     _runtime_cpudetection=no
433     ;;
434   --install-path=*)
435     _install=`echo $ac_option | cut -d '=' -f 2 | sed 's/\/$//'`"/install"
436     ;;
437   --with-install=*)
438     _install=`echo $ac_option | cut -d '=' -f 2 `
439     ;;
440   esac
441 done
442
443 # Determine our OS name and CPU architecture
444 if test -z "$_target" ; then
445   # OS name
446   system_name=`( uname -s ) 2>&1`
447   case "$system_name" in
448   Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS)
449     ;;
450   IRIX*)
451     system_name=IRIX
452     ;;
453   HP-UX*)
454     system_name=HP-UX
455     ;;
456   [cC][yY][gG][wW][iI][nN]*)
457     system_name=CYGWIN
458     ;;
459   MINGW32*)
460     system_name=MINGW32
461     ;;
462   MorphOS)
463     system_name=MorphOS
464     ;;
465   *)
466     system_name="$system_name-UNKNOWN"
467     ;;
468   esac
469
470
471   # host's CPU/instruction set
472    host_arch=`( uname -p ) 2>&1`
473    case "$host_arch" in
474    i386|sparc|ppc|alpha|arm|mips|vax)
475      ;;
476    powerpc) # Darwin returns 'powerpc'
477      host_arch=ppc
478      ;;
479    *) # uname -p on Linux returns 'unknown' for the processor type,
480       # OpenBSD returns 'Intel Pentium/MMX ("Genuine Intel" 586-class)'
481
482       # Maybe uname -m (machine hardware name) returns something we
483       # recognize.
484
485       # x86/x86pc is used by QNX
486       case "`( uname -m ) 2>&1`" in
487       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 ;;
488       ia64) host_arch=ia64 ;;
489       x86_64|amd64)
490         if [ "`$_cc -dumpmachine | grep x86_64 | cut -d- -f1`" = "x86_64" -a \
491              -z "`echo $CFLAGS | grep -- -m32`"  ]; then
492           host_arch=x86_64
493         else
494           host_arch=i386
495         fi
496       ;;
497       macppc|ppc) host_arch=ppc ;;
498       alpha) host_arch=alpha ;;
499       sparc) host_arch=sparc ;;
500       sparc64) host_arch=sparc64 ;;
501       parisc*|hppa*|9000*) host_arch=hppa ;;
502       arm*) host_arch=arm ;;
503       s390) host_arch=s390 ;;
504       s390x) host_arch=s390x ;;
505       mips) host_arch=mips ;;
506       vax) host_arch=vax ;;
507       *) host_arch=UNKNOWN ;;
508     esac
509     ;;
510   esac
511 else
512   system_name=`echo $_target | cut -d '-' -f 2`
513   case "`echo $system_name | tr A-Z a-z`" in
514     linux) system_name=Linux ;;
515     freebsd) system_name=FreeBSD ;;
516     netbsd) system_name=NetBSD ;;
517     bsd/os) system_name=BSD/OS ;;
518     openbsd) system_name=OpenBSD ;;
519     sunos) system_name=SunOS ;;
520     qnx) system_name=QNX ;;
521     morphos) system_name=MorphOS ;;
522     mingw32msvc) system_name=MINGW32 ;;
523   esac
524   # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
525   host_arch=`echo $_target | cut -d '-' -f 1 | tr '_' '-'`
526 fi
527
528 echo "Detected operating system: $system_name"
529 echo "Detected host architecture: $host_arch"
530
531 # LGB: temporary files
532 for I in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
533   test "$I" && break
534 done
535
536 TMPLOG="configure.log"
537 rm -f "$TMPLOG"
538 TMPC="$I/mplayer-conf-$RANDOM-$$.c"
539 TMPCPP="$I/mplayer-conf-$RANDOM-$$.cpp"
540 TMPO="$I/mplayer-conf-$RANDOM-$$.o"
541 TMPS="$I/mplayer-conf-$RANDOM-$$.S"
542
543 # config files
544
545 # FIXME: A lot of stuff is installed under /usr/local
546 # NK: But we should never use this stuff implicitly since we call compiler
547 # from /usr we should be sure that there no effects from other compilers
548 # (libraries) which might be installed into /usr/local.  Let users use this
549 # stuff explicitly as command line argument.  In other words: It would be
550 # resonable to have only /usr/include or only /usr/local/include.
551
552 if freebsd ; then
553   _ld_extra="$_ld_extra -L/usr/local/lib"
554   _inc_extra="$_inc_extra -I/usr/local/include"
555 fi
556
557 if netbsd ; then
558   for I in `echo $_ld_extra | sed 's/-L//g'` ; do
559     tmp="$tmp ` echo $I | sed 's/.*/ -L& -Wl,-R&/'`"
560   done
561   _ld_extra=$tmp
562 fi
563
564 _ldd=ldd
565 if darwin; then
566   _ldd="otool -L"
567 fi
568
569 # Check how to call 'head' and 'tail'. Newer versions spit out warnings
570 # if used as 'head -1' instead of 'head -n 1', but older versions don't
571 # know about '-n'.
572 if test "`(echo line1 ; echo line2) | head -1 2>/dev/null`" = "line1" ; then
573   _head() { head -$1 2>/dev/null ; }
574 else
575   _head() { head -n $1 2>/dev/null ; }
576 fi
577 if test "`(echo line1 ; echo line2) | tail -1 2>/dev/null`" = "line2" ; then
578   _tail() { tail -$1 2>/dev/null ; }
579 else
580   _tail() { tail -n $1 2>/dev/null ; }
581 fi
582
583 # Checking CC version...
584 if test "$_skip_cc_check" != yes ; then
585  # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
586  if test "`basename $_cc`" = "icc" || test "`basename $_cc`" = "ecc"; then
587   echocheck "$_cc version"
588   cc_vendor=intel
589   cc_name=`( $_cc -V ) 2>&1 | _head 1 | cut -d ',' -f 1`
590   cc_version=`( $_cc -V ) 2>&1 | _head 1 | cut -d ',' -f 2 | cut -d ' ' -f 3`
591   _cc_major=`echo $cc_version | cut -d '.' -f 1`
592   _cc_minor=`echo $cc_version | cut -d '.' -f 2`
593   # TODO verify older icc/ecc compatibility
594   case $cc_version in
595     '')
596       cc_version="v. ?.??, bad"
597       cc_verc_fail=yes
598       ;;
599     8.0)
600       cc_version="$cc_version, ok"
601       cc_verc_fail=no
602       ;;
603     *)
604       cc_version="$cc_version, bad"
605       cc_verc_fail=yes
606       ;;
607   esac
608   echores "$cc_version"
609  else
610  for _cc in "$_cc" gcc gcc-3.4 gcc-3.3 gcc-3.2 gcc-3.1 gcc3 gcc-3.0 cc ; do
611   echocheck "$_cc version"
612   cc_vendor=gnu
613   cc_name=`( $_cc -v ) 2>&1 | _tail 1 | cut -d ' ' -f 1`
614   cc_version=`( $_cc -dumpversion ) 2>&1`
615   if test "$?" -gt 0; then
616     cc_version="not found"
617   fi
618   case $cc_version in
619     '')
620       cc_version="v. ?.??, bad"
621       cc_verc_fail=yes
622       ;;
623     2.95.[2-9]|2.95.[2-9][-.]*|[3-4].*)
624       _cc_major=`echo $cc_version | cut -d '.' -f 1`
625       _cc_minor=`echo $cc_version | cut -d '.' -f 2`
626       _cc_mini=`echo $cc_version | cut -d '.' -f 3`
627       cc_version="$cc_version, ok"
628       cc_verc_fail=no
629       ;;
630     'not found')
631       cc_verc_fail=yes
632       ;;
633     *)
634       cc_version="$cc_version, bad"
635       cc_verc_fail=yes
636       ;;
637   esac
638   echores "$cc_version"
639   (test "$cc_verc_fail" = "no") && break
640  done 
641  fi # icc
642   if test "$cc_verc_fail" = yes ; then
643     cat <<EOF
644
645 *** Please downgrade/upgrade C compiler to version gcc-2.95.x or gcc-3.x! ***
646
647 You are not using a supported compiler. We do not have the time to make sure
648 everything works with compilers other than the ones we use.  Use either the
649 same compiler as we do, or use --disable-gcc-checking but DO *NOT* REPORT BUGS
650 unless you can reproduce them after recompiling with a 2.95.x or 3.x version!
651
652 Note for gcc 2.96 users: Some versions of this compiler are known to miscompile
653 mplayer and lame (which is used for mencoder).  If you get compile errors,
654 first upgrade to the latest 2.96 release (minimum 2.96-85) and try again.
655 If the problem still exists, try with gcc 3.x (or 2.95.x) *BEFORE* reporting
656 bugs!
657
658         GCC 2.96 IS NOT AND WILL NOT BE SUPPORTED BY US !
659
660     *** For details please read DOCS/HTML/en/users-vs-dev.html ***
661
662 EOF
663     die "Bad gcc version"
664   fi
665 else
666 cat <<EOF
667
668 ******************************************************************************
669
670 Hmm. You really want to compile MPlayer with an *UNSUPPORTED* C compiler?
671 Ok. You know. Do it. Did you read DOCS/HTML/en/users-vs-dev.html???
672
673 DO NOT SEND BUGREPORTS OR COMPLAIN, it's *YOUR* compiler's fault!
674 Get ready for mysterious crashes, no-picture bugs, strange noises... REALLY!
675 Lame which is used by mencoder produces weird errors, too.
676
677 If you have any problem, install a GCC 2.95.x or 3.x version and try again.
678 If the problem _still_ exists, then read DOCS/HTML/en/bugreports.html !
679
680   *** DO NOT SEND BUG REPORTS OR COMPLAIN it's *YOUR* compiler's fault! ***
681
682 ******************************************************************************
683
684 EOF
685
686 read _answer
687
688 fi
689 echocheck "host cc"
690 if not test "$_host_cc" ; then
691   _host_cc=$_cc
692 fi
693 echores $_host_cc 
694
695
696 # ---
697
698 # now that we know what compiler should be used for compilation, try to find
699 # out which assembler is used by the $_cc compiler
700 if test "$_as" = auto ; then
701   _as=`$_cc -print-prog-name=as`
702   test -z "$_as" && _as=as
703 fi
704
705 # XXX: this should be ok..
706 _cpuinfo="echo"
707 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
708 # FIXME: Remove the cygwin check once AMD CPUs are supported
709 if test -r /proc/cpuinfo && not cygwin; then
710   # Linux with /proc mounted, extract CPU information from it
711   _cpuinfo="cat /proc/cpuinfo"
712 elif test -r /compat/linux/proc/cpuinfo && not x86 ; then
713   # FreeBSD with Linux emulation /proc mounted,
714   # extract CPU information from it
715   _cpuinfo="cat /compat/linux/proc/cpuinfo"
716 elif darwin ; then
717   # use hostinfo on Darwin
718   _cpuinfo="hostinfo"
719 elif x86; then
720   # all other OSes try to extract CPU information from a small helper
721   # program TOOLS/cpuinfo instead
722   $_cc -o TOOLS/cpuinfo TOOLS/cpuinfo.c
723   _cpuinfo="TOOLS/cpuinfo"
724 fi
725
726 x86_exts_check()
727 {
728   pparam=`$_cpuinfo | grep 'features' | cut -d ':' -f 2 | _head 1`
729   if test -z "$pparam" ; then
730     pparam=`$_cpuinfo | grep 'flags' | cut -d ':' -f 2 | _head 1`
731   fi
732
733   _mmx=no
734   _3dnow=no
735   _3dnowex=no
736   _mmx2=no
737   _sse=no
738   _sse2=no
739   _mtrr=no
740
741   for i in $pparam ; do
742     case "$i" in
743     3dnow)        _3dnow=yes               ;;
744     3dnowext)     _3dnow=yes  _3dnowex=yes ;;
745     mmx)          _mmx=yes                 ;;
746     mmxext)       _mmx2=yes                ;;
747     mtrr|k6_mtrr|cyrix_arr)   _mtrr=yes    ;;
748     xmm|sse|kni)  _sse=yes    _mmx2=yes    ;;
749     sse2)         _sse2=yes                ;;
750     esac
751   done
752 }
753
754 case "$host_arch" in
755   i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
756   _def_arch="#define ARCH_X86 1"
757   _target_arch="TARGET_ARCH_X86 = yes"
758
759   pname=`$_cpuinfo | grep 'model name' | cut -d ':' -f 2 | _head 1`
760   pvendor=`$_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2  | cut -d ' ' -f 2 | _head 1`
761   pfamily=`$_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
762   pmodel=`$_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
763   pstepping=`$_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | _head 1`
764
765   x86_exts_check
766
767   echocheck "CPU vendor"
768   echores "$pvendor ($pfamily:$pmodel:$pstepping)"
769
770   echocheck "CPU type"
771   echores "$pname"
772
773   case "$pvendor" in
774   AuthenticAMD)
775     case "$pfamily" in
776     3) proc=i386 iproc=386 ;;
777     4) proc=i486 iproc=486 ;;
778     5) iproc=586       # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
779         # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
780         if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
781                 proc=k6-3
782         elif test "$pmodel" -ge 8; then
783                 proc=k6-2
784         elif test "$pmodel" -ge 6; then
785                 proc=k6
786         else
787                 proc=i586
788                 iproc=586
789         fi
790         ;;
791     6) iproc=686
792         if test "$pmodel" -ge 7; then
793                 proc=athlon-4
794         elif test "$pmodel" -ge 6; then
795                 # only Athlon XP supports ssem MP, Duron etc not
796                 # but most of them are CPUID 666, so check if sse detected
797                 # btw. there is also athlon-mp opt, but we need extended
798                 # CPUID to detect if CPU is SMP capable -> athlon-mp ::atmos
799                 if test "$_sse" = yes && test "$pstepping" -ge 2; then
800                         proc=athlon-xp
801                 else
802                         proc=athlon-4
803                 fi
804         elif test "$pmodel" -ge 4; then
805                 proc=athlon-tbird
806         else
807                 proc=athlon # TODO: should the Duron Spitfire be considered a Thunderbird instead?
808         fi
809         ;;
810     15) iproc=686
811         # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
812         # caught and remedied in the optimization tests below.
813         proc=k8
814         ;;
815
816     *) proc=athlon-xp iproc=686 ;;
817     esac
818     ;;
819   GenuineIntel)
820     case "$pfamily" in
821     3) proc=i386 iproc=386 ;;
822     4) proc=i486 iproc=486 ;;
823     5) iproc=586
824         if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
825                 proc=pentium-mmx # 4 is desktop, 8 is mobile
826         else
827                 proc=i586
828         fi
829         ;;
830     6) iproc=686
831         if test "$pmodel" -ge 7; then
832                 proc=pentium3
833         elif test "$pmodel" -ge 3; then
834                 proc=pentium2
835         else
836                 proc=i686
837         fi
838         ;;
839     15) proc=pentium4 iproc=686 ;;
840     *) proc=pentium4 iproc=686 ;;
841     esac
842     ;;
843   unknown)
844     case "$pfamily" in
845     3) proc=i386 iproc=386 ;;
846     4) proc=i486 iproc=486 ;;
847     *) proc=i586 iproc=586 ;;
848     esac
849     ;;
850   *)
851     proc=i586 iproc=586 ;;
852   esac
853
854     # check that gcc supports our CPU, if not, fall back to earlier ones
855     # LGB: check -mcpu and -march swithing step by step with enabling
856     # to fall back till 386.
857
858     # gcc >= 3.4.0  doesn't support -mcpu, we have to use -mtune instead
859
860     if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
861         cpuopt=-mtune
862     else
863         cpuopt=-mcpu
864     fi
865
866     echocheck "GCC & CPU optimization abilities"
867 cat > $TMPC << EOF
868 int main(void) { return 0; }
869 EOF
870   if test "$_runtime_cpudetection" = no ; then
871     if test "$proc" = "k8" -o "$proc" = "opteron" -o "$proc" = "athlon64" -o "$proc" = "athlon-fx" ; then
872       cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
873     fi
874     if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" || test "$proc" = "athlon-tbird"; then
875       cc_check -march=$proc $cpuopt=$proc || proc=athlon
876     fi
877     if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
878       cc_check -march=$proc $cpuopt=$proc  || proc=k6
879     fi
880     if test "$proc" = "k6"; then
881       if not cc_check -march=$proc $cpuopt=$proc; then
882         if cc_check -march=i586 $cpuopt=i686; then
883           proc=i586-i686
884         else 
885           proc=i586
886         fi
887       fi
888     fi
889     if test "$proc" = "pentium4" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon"; then
890       cc_check -march=$proc $cpuopt=$proc  || proc=i686
891     fi
892     if test "$proc" = "i686" || test "$proc" = "pentium-mmx"; then
893       cc_check -march=$proc $cpuopt=$proc  || proc=i586
894     fi
895     if test "$proc" = "i586" ; then
896       cc_check -march=$proc $cpuopt=$proc  || proc=i486
897     fi
898     if test "$proc" = "i486" ; then
899       cc_check -march=$proc $cpuopt=$proc  || proc=i386
900     fi
901     if test "$proc" = "i386" ; then
902       cc_check -march=$proc $cpuopt=$proc  || proc=error
903     fi
904     if test "$proc" = "error" ; then
905       echores "Your $_cc does not even support \"i386\" for '-march' and '$cpuopt'."
906       _mcpu=""
907       _march=""
908       _optimizing=""
909     elif test "$proc" = "i586-i686"; then
910       _march="-march=i586"
911       _mcpu="$cpuopt=i686"
912       _optimizing="$proc"
913     else
914       _march="-march=$proc"
915       _mcpu="$cpuopt=$proc"
916       _optimizing="$proc"
917     fi
918   else
919     # i686 is probably the most common CPU - optimize for it
920     _mcpu="$cpuopt=i686"
921     # at least i486 required, for bswap instruction
922     _march="-march=i486"
923     cc_check $_mcpu || _mcpu=""
924     cc_check $_march $_mcpu || _march=""
925   fi
926
927     ## Gabucino : --target takes effect here (hopefully...) by overwriting
928     ##             autodetected mcpu/march parameters
929     if test "$_target" ; then
930       # TODO: it may be a good idea to check GCC and fall back in all cases
931       if test "$host_arch" = "i586-i686"; then
932         _march="-march=i586"
933         _mcpu="$cpuopt=i686"
934       else      
935         _march="-march=$host_arch"
936         _mcpu="$cpuopt=$host_arch"
937       fi
938     
939       proc="$host_arch"
940
941       case "$proc" in
942         i386) iproc=386 ;;
943         i486) iproc=486 ;;
944         i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
945         i686|athlon*|pentium*) iproc=686 ;;
946         *) iproc=586 ;;
947       esac
948     fi
949
950     echores "$proc"
951     ;;
952
953   ia64)
954     _def_arch='#define ARCH_IA64 1'
955     _target_arch='TARGET_ARCH_IA64 = yes'
956     iproc='ia64'
957     proc=''
958     _march=''
959     _mcpu=''
960     _optimizing=''
961     ;;
962
963   x86_64|amd64)
964     _def_arch='#define ARCH_X86_64 1'
965     _target_arch='TARGET_ARCH_X86_64 = yes'
966     iproc='x86_64'
967
968     # gcc >= 3.4.0  doesn't support -mcpu, we have to use -mtune instead
969     if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
970         cpuopt=-mtune
971     else
972         cpuopt=-mcpu
973     fi
974     # k8 cpu-type only supported in gcc >= 3.4.0, but that will be
975     # caught and remedied in the optimization tests below.
976     proc=k8
977
978     echocheck "GCC & CPU optimization abilities"
979 cat > $TMPC << EOF
980 int main(void) { return 0; }
981 EOF
982     # This is a stripped-down version of the i386 fallback.
983     if test "$_runtime_cpudetection" = no ; then
984       if test "$proc" = "k8" -o "$proc" = "opteron" -o "$proc" = "athlon64" -o "$proc" = "athlon-fx" ; then
985         cc_check -march=$proc $cpuopt=$proc || proc=athlon-xp
986       fi
987       # This will fail if gcc version < 3.3, which is ok because earlier
988       # versions don't really support 64-bit on amd64.
989       # Is this a valid assumption? -Corey
990       if test "$proc" = "athlon-xp" || test "$proc" = "athlon-4" ; then
991         cc_check -march=$proc $cpuopt=$proc || proc=error
992       fi
993       _march="-march=$proc"
994       _mcpu="$cpuopt=$proc"
995       if test "$proc" = "error" ; then
996         echores "Your $_cc does not even support \"athlon-xp\" for '-march' and '$cpuopt'."
997         _mcpu=""
998         _march=""
999       fi
1000     else
1001       _march=""
1002       _mcpu=""
1003     fi
1004     
1005     _optimizing=""
1006
1007     echores "$proc"
1008
1009     x86_exts_check
1010     ;;
1011
1012   sparc)
1013     _def_arch='#define ARCH_SPARC 1'
1014     _target_arch='TARGET_ARCH_SPARC = yes'
1015     iproc='sparc'
1016     if sunos ; then
1017         echocheck "CPU type"
1018         karch=`uname -m`
1019         case "`echo $karch`" in
1020             sun4) proc=v7 ;;
1021             sun4c) proc=v7 ;; 
1022             sun4d) proc=v8 ;;
1023             sun4m) proc=v8 ;;
1024             sun4u) proc=v9 _vis='yes' _def_vis='#define HAVE_VIS = yes' ;;
1025             *) ;;
1026         esac
1027         echores "$proc"
1028     else
1029         proc=v8
1030     fi
1031     _march=''
1032     _mcpu="-mcpu=$proc"
1033     _optimizing="$proc"
1034     ;;
1035
1036   sparc64)
1037     _def_arch='#define ARCH_SPARC 1'
1038     _target_arch='TARGET_ARCH_SPARC = yes'
1039     _vis='yes'
1040     _def_vis='#define HAVE_VIS = yes'
1041     iproc='sparc'
1042     proc='v9'
1043     _march=''
1044     _mcpu="-mcpu=$proc"
1045     _optimizing="$proc"
1046     ;;
1047
1048   arm|armv4l|armv5tel)
1049     _def_arch='#define ARCH_ARMV4L 1'
1050     _target_arch='TARGET_ARCH_ARMV4L = yes'
1051     iproc='arm'
1052     proc=''
1053     _march=''
1054     _mcpu=''
1055     _optimizing=''
1056     ;;
1057
1058   ppc)
1059     _def_arch='#define ARCH_POWERPC 1'
1060     _def_dcbzl='#define NO_DCBZL 1'
1061     _target_arch='TARGET_ARCH_POWERPC = yes'
1062     iproc='ppc'
1063     proc=''
1064     _march=''
1065     _mcpu=''
1066     _optimizing=''
1067     _altivec=no
1068
1069     echocheck "CPU type"
1070     if linux && test -n "$_cpuinfo"; then
1071         proc=`$_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | _head 1`
1072         if test -n "`$_cpuinfo | grep altivec`"; then
1073             _altivec=yes
1074         fi
1075     fi
1076     if darwin ; then
1077         proc=`$_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//'`
1078         if [ `sysctl -n hw.vectorunit` -eq 1 ]; then
1079             _altivec=yes
1080         elif [ "`sysctl -n hw.optional.altivec 2>/dev/null`" = 1 ]; then
1081             _altivec=yes
1082         fi
1083     fi
1084     # only gcc 3.4 works reliably with altivec code under netbsd 
1085     if netbsd ; then
1086         case $cc_version in
1087             2*|3.0*|3.1*|3.2*|3.3*)
1088                 ;;
1089             *)
1090                 if [ `sysctl -n machdep.altivec` -eq 1 ]; then
1091                     _altivec=yes
1092                 fi
1093                 ;;
1094         esac
1095     fi
1096     if test "$_altivec" = yes; then
1097         echores "$proc altivec"
1098     else
1099         echores "$proc"
1100     fi
1101
1102     echocheck "GCC & CPU optimization abilities"
1103
1104     if test -n "$proc"; then
1105         case "$proc" in
1106             601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
1107             603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
1108             603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
1109             604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
1110             740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
1111             750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
1112             *) ;;
1113         esac
1114         # gcc 3.1(.1) and up supports 7400 and 7450
1115         if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
1116             case "$proc" in
1117                 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
1118                 7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
1119                 *) ;;
1120             esac
1121         fi
1122         # gcc 3.2 and up supports 970
1123         if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
1124             case "$proc" in
1125                 970*) _march='-mcpu=970' _mcpu='-mtune=970'
1126                       _def_dcbzl='#undef NO_DCBZL' ;;
1127                 *) ;;
1128             esac
1129         fi
1130     fi
1131
1132     if test -n "$_mcpu"; then
1133         _optimizing=`echo $_mcpu | cut -c 8-`
1134         echores "$_optimizing"
1135     else
1136         echores "none"
1137     fi
1138
1139     ;;
1140
1141   alpha)
1142     _def_arch='#define ARCH_ALPHA 1'
1143     _target_arch='TARGET_ARCH_ALPHA = yes'
1144     iproc='alpha'
1145     _march=''
1146     
1147     echocheck "CPU type"
1148     cat > $TMPC << EOF
1149 int main() {
1150     unsigned long ver, mask;
1151     asm ("implver %0" : "=r" (ver));
1152     asm ("amask %1, %0" : "=r" (mask) : "r" (-1));
1153     printf("%ld-%x\n", ver, ~mask);
1154     return 0;
1155 }
1156 EOF
1157     $_cc -o "$TMPO" "$TMPC"
1158     case `"$TMPO"` in
1159
1160         0-0)    proc="ev4";   cpu_understands_mvi="0";;
1161         1-0)    proc="ev5";   cpu_understands_mvi="0";;
1162         1-1)    proc="ev56";  cpu_understands_mvi="0";; 
1163         1-101)  proc="pca56"; cpu_understands_mvi="1";;
1164         2-303)  proc="ev6";   cpu_understands_mvi="1";;
1165         2-307)  proc="ev67";  cpu_understands_mvi="1";;
1166         2-1307) proc="ev68";  cpu_understands_mvi="1";;
1167     esac
1168     echores "$proc"
1169     
1170     echocheck "GCC & CPU optimization abilities"
1171     if test "$proc" = "ev68" ; then
1172       cc_check -mcpu=$proc || proc=ev67
1173     fi
1174     if test "$proc" = "ev67" ; then
1175       cc_check -mcpu=$proc || proc=ev6
1176     fi
1177     _mcpu="-mcpu=$proc"
1178     echores "$proc"
1179     
1180     _optimizing="$proc"
1181
1182     echocheck "MVI instruction support in GCC"
1183     if test "$_cc_major" -ge "3" && test "$cpu_understands_mvi" = "1" ; then
1184         _def_gcc_mvi_support="#define CAN_COMPILE_ALPHA_MVI 1"
1185         echores "yes"
1186     else
1187         _def_gcc_mvi_support="#undef CAN_COMPILE_ALPHA_MVI"
1188         echores "no, GCC = `( $_cc -dumpversion ) 2>&1` (must be >= 3), CPU = $proc (must be pca56 or later)"
1189     fi
1190     ;;
1191
1192   mips)
1193     _def_arch='#define ARCH_SGI_MIPS 1'
1194     _target_arch='TARGET_ARCH_SGI_MIPS = yes'
1195     iproc='sgi-mips'
1196     proc=''
1197     _march=''
1198     _mcpu=''
1199     _optimizing=''
1200
1201     if irix ; then
1202         echocheck "CPU type"
1203         proc=`hinv -c processor | grep CPU | cut -d " " -f3`
1204         case "`echo $proc`" in
1205             R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
1206             R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
1207             R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
1208             R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
1209             R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
1210             R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
1211         esac
1212         echores "$proc"
1213     fi
1214
1215     ;;
1216
1217   hppa)
1218     _def_arch='#define ARCH_PA_RISC 1'
1219     _target_arch='TARGET_ARCH_PA_RISC = yes'
1220     iproc='PA-RISC'
1221     proc=''
1222     _march=''
1223     _mcpu=''
1224     _optimizing=''
1225     ;;
1226
1227   s390)
1228     _def_arch='#define ARCH_S390 1'
1229     _target_arch='TARGET_ARCH_S390 = yes'
1230     iproc='390'
1231     proc=''
1232     _march=''
1233     _mcpu=''
1234     _optimizing=''
1235     ;;
1236
1237   s390x)
1238     _def_arch='#define ARCH_S390X 1'
1239     _target_arch='TARGET_ARCH_S390X = yes'
1240     iproc='390x'
1241     proc=''
1242     _march=''
1243     _mcpu=''
1244     _optimizing=''
1245     ;;
1246
1247   vax)
1248     _def_arch='#define ARCH_VAX 1'
1249     _target_arch='TARGET_ARCH_VAX = yes'
1250     iproc='vax'
1251     proc=''
1252     _march=''
1253     _mcpu=''
1254     _optimizing=''
1255     ;;
1256
1257   *)
1258     echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
1259     echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
1260     die "unsupported architecture $host_arch"
1261     ;;
1262 esac
1263
1264 if test "$_runtime_cpudetection" = yes ; then
1265   if x86; then
1266     _mmx=yes
1267     _3dnow=yes
1268     _3dnowex=yes
1269     _mmx2=yes
1270     _sse=yes
1271     _sse2=yes
1272     _mtrr=yes
1273   fi
1274   if ppc; then
1275     _altivec=yes
1276   fi
1277 fi
1278
1279 if x86 && test "$_runtime_cpudetection" = no ; then
1280   extcheck() {
1281     if test "$1" = yes ; then
1282       echocheck "kernel support of $2"
1283       cat > $TMPC <<EOF
1284 #include <signal.h>
1285 void catch() { exit(1); }
1286 int main(void){
1287   signal(SIGILL, catch);
1288   __asm__ __volatile__ ("$3":::"memory");return(0);
1289 }
1290 EOF
1291
1292       if ( cc_check && $TMPO ) > /dev/null 2>&1 ; then
1293         echores "yes"
1294         _optimizing="$_optimizing $2"
1295         return 0
1296       else
1297         echores "failed"
1298         echo "It seems that your kernel does not correctly support $2."
1299         echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1300         return 1
1301       fi
1302     fi
1303     return 0
1304   }
1305
1306   extcheck $_mmx "mmx" "emms" || _mmx=no
1307   extcheck $_mmx2 "mmx2" "sfence" || _mmx2=no
1308   extcheck $_3dnow "3dnow" "femms" || _3dnow=no
1309   extcheck $_3dnowex "3dnowex" "pswapd %%mm0, %%mm0" || _3dnowex=no
1310   extcheck $_sse "sse" "xorps %%xmm0, %%xmm0" || _sse=no _gcc3_ext="$_gcc3_ext -mno-sse"
1311   extcheck $_sse2 "sse2" "xorpd %%xmm0, %%xmm0" || _sse2=no _gcc3_ext="$_gcc3_ext -mno-sse2"
1312   echocheck "mtrr support"
1313   echores "$_mtrr"
1314
1315   if test "$_mtrr" = yes ; then
1316     _optimizing="$_optimizing mtrr"
1317   fi
1318
1319   if test "$_gcc3_ext" != ""; then
1320     # if we had to disable sse/sse2 because the active kernel does not
1321     # support this instruction set extension, we also have to tell
1322     # gcc3 to not generate sse/sse2 instructions for normal C code
1323     cat > $TMPC << EOF
1324 int main(void) { return 0; }
1325 EOF
1326     cc_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1327   fi
1328
1329 fi
1330
1331 echocheck "assembler support of -pipe option"
1332 cat > $TMPC << EOF
1333 int main(void) { return 0; }
1334 EOF
1335 cc_check -pipe && _pipe="-pipe" && echores "yes" || echores "no"
1336
1337 _prefix="/usr/local"
1338 _xvmclib="XvMCNVIDIA"
1339
1340 # GOTCHA: the variables below defines the default behavior for autodetection
1341 # and have - unless stated otherwise - at least 2 states : yes no
1342 # If autodetection is available then the third state is: auto
1343 _libavcodec=auto
1344 _amr_nb=auto
1345 _amr_nb_fixed=auto
1346 _amr_wb=auto
1347 _libavcodecs=`grep 'register_avcodec(&[a-z]' libavcodec/allcodecs.c  | sed 's/.*&\(.*\)).*/\1/'`
1348 _libavcodecso=auto 
1349 _libavformat=auto
1350 _fame=auto
1351 _mp1e=no
1352 _mencoder=yes
1353 _x11=auto
1354 _dga=auto       # 1 2 no auto
1355 _xv=auto
1356 _xvmc=no  #auto when complete
1357 _sdl=auto
1358 _directx=auto
1359 _win32waveout=auto
1360 _nas=auto
1361 _png=auto
1362 _jpg=auto
1363 _pnm=yes
1364 _md5sum=yes
1365 _gif=auto
1366 _gl=auto
1367 _ggi=auto
1368 _ggiwmh=auto
1369 _aa=auto
1370 _caca=auto
1371 _svga=auto
1372 _vesa=auto
1373 _fbdev=auto
1374 _dvb=auto
1375 _dvbhead=auto
1376 _dxr2=auto
1377 _dxr3=auto
1378 _iconv=auto
1379 _langinfo=auto
1380 _rtc=auto
1381 _ossaudio=auto
1382 _arts=auto
1383 _esd=auto
1384 _polyp=auto
1385 _jack=auto
1386 _liblzo=auto
1387 _mad=auto
1388 _toolame=auto
1389 _twolame=auto
1390 _tremor_internal=yes
1391 _tremor_low=no
1392 _vorbis=auto
1393 _theora=auto
1394 _mp3lib=yes
1395 _liba52=yes
1396 _libdts=auto
1397 _libmpeg2=yes
1398 _matroska_internal=yes
1399 _tremor=no
1400 _faad_internal=auto
1401 _faad_external=auto
1402 _faac=auto
1403 _ladspa=auto
1404 _xmms=no
1405 # dvdnav disabled, it does not work
1406 #_dvdnav=no
1407 _dvdread=auto
1408 _dvdkit=auto
1409 _xanim=auto
1410 _real=auto
1411 _live=auto
1412 _xinerama=auto
1413 _mga=auto
1414 _xmga=auto
1415 _vm=auto
1416 _xf86keysym=auto
1417 _mlib=auto
1418 _sgiaudio=auto
1419 _sunaudio=auto
1420 _alsa=auto
1421 _fastmemcpy=yes
1422 _unrarlib=yes
1423 _win32=auto
1424 _dshow=yes
1425 _select=yes
1426 _tv=yes
1427 _tv_v4l=auto
1428 _tv_v4l2=auto
1429 _tv_bsdbt848=auto
1430 _edl=yes
1431 _network=yes
1432 _winsock2=auto
1433 _smbsupport=auto
1434 _vidix=auto
1435 _joystick=no
1436 _xvid=auto
1437 _x264=auto
1438 _divx4linux=auto
1439 _opendivx=no
1440 _lirc=auto
1441 _lircc=auto
1442 _gui=no
1443 _termcap=auto
1444 _termios=auto
1445 _3dfx=no
1446 _tdfxfb=no
1447 _tdfxvid=no
1448 _tga=yes
1449 _directfb=auto
1450 _zr=auto
1451 _bl=no
1452 _largefiles=no
1453 #_language=en
1454 _shm=auto
1455 _linux_devfs=no
1456 #_charset=utf8
1457 _i18n=auto
1458 _dynamic_plugins=no
1459 _crash_debug=auto
1460 _sighandler=yes
1461 _libdv=auto
1462 _cdparanoia=auto
1463 _big_endian=auto
1464 _freetype=auto
1465 _fontconfig=auto
1466 _shared_pp=no
1467 _menu=no
1468 _qtx=auto
1469 _macosx=auto
1470 _macosx_finder_support=no
1471 _macosx_bundle=auto
1472 _sortsub=yes
1473 _freetypeconfig='freetype-config'
1474 _fribidi=no
1475 _fribidiconfig='fribidi-config'
1476 _enca=auto
1477 _inet6=auto
1478 _gethostbyname2=auto
1479 _ftp=yes
1480 _musepack=auto
1481 _vstream=auto
1482 _pthreads=yes
1483 for ac_option do
1484   case "$ac_option" in
1485   # Skip 1st pass
1486   --target=*) ;;
1487   --cc=*) ;;
1488   --host-cc=*) ;;
1489   --as=*) ;;
1490   --enable-gcc-checking) ;;
1491   --disable-gcc-checking) ;;
1492   --enable-static*) ;;
1493   --disable-static*) ;;
1494   --with-extraincdir=*) ;;
1495   --with-extralibdir=*) ;;
1496   --enable-runtime-cpudetection) ;;
1497   --disable-runtime-cpudetection) ;;
1498   --install-path=*) ;;
1499   --with-install=*) ;;
1500
1501   # Real 2nd pass
1502   --enable-mencoder)    _mencoder=yes   ;;
1503   --disable-mencoder)   _mencoder=no    ;;
1504   --enable-i18n)        _i18n=yes       ;;
1505   --disable-i18n)       _i18n=no        ;;
1506   --enable-dynamic-plugins) _dynamic_plugins=yes ;;
1507   --disable-dynamic-plugins) _dynamic_plugins=no ;;
1508   --enable-x11)         _x11=yes        ;;
1509   --disable-x11)        _x11=no         ;;
1510   --enable-xv)          _xv=yes         ;;
1511   --disable-xv)         _xv=no          ;;
1512   --enable-xvmc)        _xvmc=yes       ;;
1513   --disable-xvmc)       _xvmc=no        ;;
1514   --enable-sdl)         _sdl=yes        ;;
1515   --disable-sdl)        _sdl=no         ;;
1516   --enable-directx)     _directx=yes    ;;
1517   --disable-directx)    _directx=no     ;;
1518   --enable-win32waveout)  _win32waveout=yes ;;
1519   --disable-win32waveout) _win32waveout=no  ;;
1520   --enable-nas)         _nas=yes        ;;
1521   --disable-nas)        _nas=no         ;;
1522   --enable-png)         _png=yes        ;;
1523   --disable-png)        _png=no         ;;
1524   --enable-jpeg)        _jpg=yes        ;;
1525   --disable-jpeg)       _jpg=no         ;;
1526   --enable-pnm)         _pnm=yes        ;;
1527   --disable-pnm)        _pnm=no         ;;
1528   --enable-md5sum)      _md5sum=yes     ;;
1529   --disable-md5sum)     _md5sum=no      ;;
1530   --enable-gif) _gif=yes        ;;
1531   --disable-gif)        _gif=no         ;;
1532   --enable-gl)          _gl=yes         ;;
1533   --disable-gl)         _gl=no          ;;
1534   --enable-ggi)         _ggi=yes        ;;
1535   --disable-ggi)        _ggi=no         ;;
1536   --enable-ggiwmh)      _ggiwmh=yes     ;;
1537   --disable-ggiwmh)     _ggiwmh=no      ;;
1538   --enable-aa)          _aa=yes         ;;
1539   --disable-aa)         _aa=no          ;;
1540   --enable-caca)        _caca=yes       ;;
1541   --disable-caca)       _caca=no        ;;
1542   --enable-svga)        _svga=yes       ;;
1543   --disable-svga)       _svga=no        ;;
1544   --enable-vesa)        _vesa=yes       ;;
1545   --disable-vesa)       _vesa=no        ;;
1546   --enable-fbdev)       _fbdev=yes      ;;
1547   --disable-fbdev)      _fbdev=no       ;;
1548   --enable-dvb)         _dvb=yes        ;;
1549   --disable-dvb)        _dvb=no         ;;
1550   --enable-dvbhead)     _dvbhead=yes    ;;
1551   --disable-dvbhead)    _dvbhead=no     ;;
1552   --enable-dxr2)        _dxr2=yes       ;;
1553   --disable-dxr2)       _dxr2=no        ;;
1554   --enable-dxr3)        _dxr3=yes       ;;
1555   --disable-dxr3)       _dxr3=no        ;;
1556   --enable-iconv)       _iconv=yes      ;;
1557   --disable-iconv)      _iconv=no       ;;
1558   --enable-langinfo)    _langinfo=yes   ;;
1559   --disable-langinfo)   _langinfo=no    ;;
1560   --enable-rtc)         _rtc=yes        ;;
1561   --disable-rtc)        _rtc=no         ;;
1562   --enable-mp1e)        _mp1e=yes       ;;
1563   --disable-mp1e)       _mp1e=no        ;;
1564   --enable-libdv)       _libdv=yes      ;;
1565   --disable-libdv)      _libdv=no       ;;
1566   --enable-ossaudio)    _ossaudio=yes   ;;
1567   --disable-ossaudio)   _ossaudio=no    ;;
1568   --enable-arts)        _arts=yes       ;;
1569   --disable-arts)       _arts=no        ;;
1570   --enable-esd)         _esd=yes        ;;
1571   --disable-esd)        _esd=no         ;;
1572   --enable-polyp)       _polyp=yes      ;;
1573   --disable-polyp)      _polyp=no               ;;
1574   --enable-jack)        _jack=yes       ;;
1575   --disable-jack)       _jack=no        ;;
1576   --enable-mad)         _mad=yes        ;;
1577   --disable-mad)        _mad=no         ;;
1578   --disable-toolame)    _toolame=no     ;;
1579   --disable-twolame)    _twolame=no     ;;
1580   --enable-liblzo)      _liblzo=yes     ;;
1581   --disable-liblzo)     _liblzo=no              ;;
1582   --enable-vorbis)      _vorbis=yes     ;;
1583   --disable-vorbis)     _vorbis=no      ;;
1584   --enable-internal-tremor)     _tremor_internal=yes    ;;
1585   --disable-internal-tremor)    _tremor_internal=no     ;;
1586   --enable-tremor-low)  _tremor_low=yes ;;
1587   --disable-tremor-low) _tremor_low=no  ;;
1588   --enable-external-tremor)     _tremor=yes     ;;
1589   --disable-external-tremor)    _tremor=no      ;;
1590   --enable-theora)      _theora=yes     ;;
1591   --disable-theora)     _theora=no      ;;
1592   --enable-mp3lib)      _mp3lib=yes     ;;
1593   --disable-mp3lib)     _mp3lib=no      ;;
1594   --enable-liba52)      _liba52=yes     ;;
1595   --disable-liba52)     _liba52=no      ;;
1596   --enable-libdts)      _libdts=yes     ;;
1597   --disable-libdts)     _libdts=no      ;;
1598   --enable-libmpeg2)    _libmpeg2=yes   ;;
1599   --disable-libmpeg2)   _libmpeg2=no    ;;
1600   --enable-musepack)    _musepack=yes   ;;
1601   --disable-musepack)   _musepack=no    ;;
1602   --enable-internal-matroska)  _matroska_internal=yes ;;
1603   --disable-internal-matroska) _matroska_internal=no ;;
1604   --enable-internal-faad)       _faad_internal=yes      _faad_external=no       ;;
1605   --disable-internal-faad)      _faad_internal=no       ;;
1606   --enable-external-faad)       _faad_external=yes      _faad_internal=no       ;;
1607   --disable-external-faad)      _faad_external=no       ;;
1608   --enable-faac)        _faac=yes       ;;
1609   --disable-faac)       _faac=no        ;;
1610   --enable-ladspa)      _ladspa=yes     ;;
1611   --disable-ladspa)     _ladspa=no              ;;
1612   --enable-xmms)        _xmms=yes       ;;
1613   --disable-xmms)       _xmms=no        ;;
1614   --enable-dvdread)     _dvdread=yes    ;;
1615   --disable-dvdread)    _dvdread=no     ;;
1616   --enable-mpdvdkit)    _dvdkit=yes     ;;
1617   --disable-mpdvdkit)   _dvdkit=no      ;;
1618 # dvdnav disabled, it does not work
1619 #  --enable-dvdnav)     _dvdnav=yes     ;;
1620 #  --disable-dvdnav)    _dvdnav=no      ;;
1621   --enable-xanim)       _xanim=yes      ;;
1622   --disable-xanim)      _xanim=no       ;;
1623   --enable-real)        _real=yes       ;;
1624   --disable-real)       _real=no        ;;
1625   --enable-live)        _live=yes       ;;
1626   --disable-live)       _live=no        ;;
1627   --enable-xinerama)    _xinerama=yes   ;;
1628   --disable-xinerama)   _xinerama=no    ;;
1629   --enable-mga)         _mga=yes        ;;
1630   --disable-mga)        _mga=no         ;;
1631   --enable-xmga)        _xmga=yes       ;;
1632   --disable-xmga)       _xmga=no        ;;
1633   --enable-vm)          _vm=yes         ;;
1634   --disable-vm)         _vm=no          ;;
1635   --enable-xf86keysym)  _xf86keysym=yes ;;
1636   --disable-xf86keysym) _xf86keysym=no  ;;
1637   --enable-mlib)        _mlib=yes       ;;
1638   --disable-mlib)       _mlib=no        ;;
1639   --enable-sunaudio)    _sunaudio=yes   ;;
1640   --disable-sunaudio)   _sunaudio=no    ;;
1641   --enable-sgiaudio)    _sgiaudio=yes   ;;
1642   --disable-sgiaudio)   _sgiaudio=no    ;;
1643   --enable-alsa)        _alsa=yes       ;;
1644   --disable-alsa)       _alsa=no        ;;
1645   --enable-tv)          _tv=yes         ;;
1646   --disable-tv)         _tv=no          ;;
1647   --enable-edl)         _edl=yes        ;;
1648   --disable-edl)        _edl=no         ;;
1649   --enable-tv-bsdbt848) _tv_bsdbt848=yes        ;;
1650   --disable-tv-bsdbt848)        _tv_bsdbt848=no ;;
1651   --enable-tv-v4l)      _tv_v4l=yes     ;;
1652   --disable-tv-v4l)     _tv_v4l=no      ;;
1653   --enable-tv-v4l2)     _tv_v4l2=yes    ;;
1654   --disable-tv-v4l2)    _tv_v4l2=no     ;;
1655   --enable-fastmemcpy)  _fastmemcpy=yes ;;
1656   --disable-fastmemcpy) _fastmemcpy=no  ;;
1657   --enable-network)     _network=yes    ;;
1658   --disable-network)    _network=no     ;;
1659   --enable-winsock2)    _winsock2=yes   ;;
1660   --disable-winsock2)   _winsock2=no    ;;
1661   --enable-smb)         _smbsupport=yes ;;
1662   --disable-smb)        _smbsupport=no  ;;
1663   --enable-vidix)       _vidix=yes      ;;
1664   --disable-vidix)      _vidix=no       ;;
1665   --enable-joystick)    _joystick=yes   ;;
1666   --disable-joystick)   _joystick=no    ;;
1667   --enable-xvid)        _xvid=yes       ;;
1668   --disable-xvid)       _xvid=no        ;;
1669   --enable-x264)        _x264=yes       ;;
1670   --disable-x264)       _x264=no        ;;
1671   --enable-divx4linux)  _divx4linux=yes ;;
1672   --disable-divx4linux) _divx4linux=no  ;;
1673   --enable-opendivx)    _opendivx=yes   ;;
1674   --disable-opendivx)   _opendivx=no    ;;
1675   --enable-libavcodec)  _libavcodec=yes ;;
1676   --disable-libavcodec) _libavcodec=no  ;;
1677   --enable-amr_nb)      _amr_nb=yes     ;;
1678   --disable-amr_nb)     _amr_nb=no      ;;
1679   --enable-amr_nb-fixed)        _amr_nb_fixed=yes ;;
1680   --disable-amr_nb-fixed)       _amr_nb_fixed=no ;;
1681   --enable-amr_wb)      _amr_wb=yes     ;;
1682   --disable-amr_wb)     _amr_wb=no      ;;
1683   --enable-codec=*)     _libavcodecs="$_libavcodecs `echo $ac_option | cut -d '=' -f 2`" ;;
1684   --disable-codec=*)    _libavcodecs=`echo $_libavcodecs | sed "s/\`echo $ac_option | cut -d '=' -f 2\`//g"` ;;
1685   --enable-libavformat) _libavformat=yes;;
1686   --disable-libavformat)        _libavformat=no ;;
1687   --enable-libfame)     _fame=yes       ;;
1688   --disable-libfame)    _fame=no        ;;
1689   --enable-lirc)        _lirc=yes       ;;
1690   --disable-lirc)       _lirc=no        ;;
1691   --enable-lircc)       _lircc=yes      ;;
1692   --disable-lircc)      _lircc=no       ;;
1693   --enable-gui)         _gui=yes        ;;
1694   --disable-gui)        _gui=no         ;;
1695   --enable-termcap)     _termcap=yes    ;;
1696   --disable-termcap)    _termcap=no     ;;
1697   --enable-termios)     _termios=yes    ;;
1698   --disable-termios)    _termios=no     ;;
1699   --enable-3dfx)        _3dfx=yes       ;;
1700   --disable-3dfx)       _3dfx=no        ;;
1701   --enable-tdfxfb)      _tdfxfb=yes     ;;
1702   --disable-tdfxvid)    _tdfxvid=no     ;;
1703   --enable-tdfxvid)     _tdfxvid=yes    ;;
1704   --disable-tga)        _tga=no         ;;
1705   --enable-tga)         _tga=yes        ;;
1706   --disable-tdfxfb)     _tdfxfb=no      ;;
1707   --enable-directfb)    _directfb=yes   ;;
1708   --disable-directfb)   _directfb=no    ;;
1709   --enable-zr)          _zr=yes         ;;
1710   --disable-zr)         _zr=no          ;;
1711   --enable-bl)          _bl=yes         ;;
1712   --disable-bl)         _bl=no          ;;
1713   --enable-mtrr)        _mtrr=yes       ;;
1714   --disable-mtrr)       _mtrr=no        ;;
1715   --enable-largefiles)  _largefiles=yes ;;
1716   --disable-largefiles) _largefiles=no  ;;
1717   --enable-shm)         _shm=yes        ;;
1718   --disable-shm)        _shm=no         ;;
1719   --enable-select)      _select=yes     ;;
1720   --disable-select)     _select=no      ;;
1721   --enable-linux-devfs) _linux_devfs=yes        ;;
1722   --disable-linux-devfs)        _linux_devfs=no ;;
1723   --enable-cdparanoia)  _cdparanoia=yes ;;
1724   --disable-cdparanoia) _cdparanoia=no  ;;
1725   --enable-big-endian)  _big_endian=yes ;;
1726   --disable-big-endian) _big_endian=no  ;;
1727   --enable-freetype)    _freetype=yes   ;;
1728   --disable-freetype)   _freetype=no    ;;
1729   --enable-fontconfig)  _fontconfig=yes ;;
1730   --disable-fontconfig) _fontconfig=no  ;;
1731   --enable-unrarlib)    _unrarlib=yes   ;;
1732   --disable-unrarlib)   _unrarlib=no    ;;
1733   --enable-ftp)         _ftp=yes        ;;
1734   --disable-ftp)        _ftp=no         ;;
1735   --enable-vstream)     _vstream=yes    ;;
1736   --disable-vstream)    _vstream=no     ;;
1737   --enable-pthreads)    _pthreads=yes   ;;
1738   --disable-pthreads)   _pthreads=no    ;;
1739
1740   --enable-fribidi)     _fribidi=yes    ;;
1741   --disable-fribidi)    _fribidi=no     ;;
1742
1743   --enable-enca)        _enca=yes    ;;
1744   --disable-enca)       _enca=no     ;;
1745
1746   --enable-inet6)       _inet6=yes      ;;
1747   --disable-inet6)      _inet6=no       ;;
1748
1749   --enable-gethostbyname2)      _gethostbyname2=yes     ;;
1750   --disable-gethostbyname2)     _gethostbyname2=no      ;;
1751
1752   --enable-dga) _dga=auto ;; # as we don't know if it's 1 or 2
1753   --enable-dga=*) _dga=`echo $ac_option | cut -d '=' -f 2` ;;
1754   --disable-dga) _dga=no ;;
1755
1756   --enable-shared-pp) _shared_pp=yes ;;
1757   --disable-shared-pp) _shared_pp=no ;;
1758
1759   --enable-menu) _menu=yes ;;
1760   --disable-menu) _menu=no ;;
1761
1762   --enable-qtx) _qtx=yes ;;
1763   --disable-qtx) _qtx=no ;;
1764
1765   --enable-macosx) _macosx=yes ;;
1766   --disable-macosx) _macosx=no ;;
1767   --enable-macosx-finder-support) _macosx_finder_support=yes ;;
1768   --disable-macosx-finder-support) _macosx_finder_support=no ;;
1769   --enable-macosx-bundle) _macosx_bundle=yes;;
1770   --disable-macosx-bundle) _macosx_bundle=no;;  
1771
1772   --enable-sortsub) _sortsub=yes ;;
1773   --disable-sortsub) _sortsub=no ;;
1774
1775   --charset=*)
1776     _charset=`echo $ac_option | cut -d '=' -f 2`
1777     ;;
1778   --language=*)
1779     _language=`echo $ac_option | cut -d '=' -f 2`
1780     ;;
1781 # dvdnav disabled, it does not work
1782 #  --with-libdvdnav=*)
1783 #    _dvdnavdir=`echo $ac_option | cut -d '=' -f 2`
1784 #    _dvdnav=yes
1785 #    ;;
1786
1787   --with-codecsdir=*)
1788     _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1789     _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1790     _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1791     ;;
1792   --with-win32libdir=*)
1793     _win32libdir=`echo $ac_option | cut -d '=' -f 2`
1794     _win32=yes
1795     ;;
1796   --with-xanimlibdir=*)
1797     _xanimlibdir=`echo $ac_option | cut -d '=' -f 2`
1798     _xanim=yes
1799     ;;
1800   --with-reallibdir=*)
1801     _reallibdir=`echo $ac_option | cut -d '=' -f 2`
1802     _real=yes
1803     ;;
1804   --with-livelibdir=*)
1805     _livelibdir=`echo $ac_option | cut -d '=' -f 2`
1806     ;;
1807   --with-toolamedir=*)
1808     _toolamedir=`echo $ac_option | cut -d '=' -f 2`
1809     ;;
1810   --with-mlibdir=*)
1811     _mlibdir=`echo $ac_option | cut -d '=' -f 2`
1812     _mlib=yes
1813     ;;
1814
1815   --with-xmmslibdir=*)
1816     _xmmslibdir=`echo $ac_option | cut -d '=' -f 2`
1817     ;;
1818     
1819   --with-xmmsplugindir=*)
1820     _xmmsplugindir=`echo $ac_option | cut -d '=' -f 2`
1821     ;;
1822
1823   --enable-profile)
1824     _profile='-p'
1825     ;;
1826   --disable-profile)
1827     _profile=
1828     ;;
1829   --enable-debug)
1830     _debug='-g'
1831     ;;
1832   --enable-debug=*)
1833     _debug=`echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2`
1834     ;;
1835   --disable-debug)
1836     _debug=
1837     ;;
1838   --enable-crash-debug)
1839     _crash_debug=yes
1840     ;;
1841   --disable-crash-debug)
1842     _crash_debug=no
1843     ;;
1844   --enable-sighandler)
1845     _sighandler=yes
1846     ;;
1847   --disable-sighandler)
1848     _sighandler=no
1849     ;;
1850
1851   --enable-sse) _sse=yes ;;
1852   --disable-sse) _sse=no ;;
1853   --enable-sse2) _sse2=yes ;;
1854   --disable-sse2) _sse2=no ;;
1855   --enable-mmx2) _mmx2=yes ;;
1856   --disable-mmx2) _mmx2=no ;;
1857   --enable-3dnow) _3dnow=yes ;;
1858   --disable-3dnow) _3dnow=no _3dnowex=no ;;
1859   --enable-3dnowex) _3dnow=yes _3dnowex=yes ;;
1860   --disable-3dnowex) _3dnowex=no ;;
1861   --enable-altivec) _altivec=yes ;;
1862   --disable-altivec) _altivec=no ;;
1863   --enable-mmx) _mmx=yes ;;
1864   --disable-mmx) # 3Dnow! and MMX2 require MMX
1865         _3dnow=no _3dnowex=no _mmx=no _mmx2=no ;;
1866
1867   --enable-win32) _win32=yes ;;
1868   --disable-win32) _win32=no _dshow=no ;;
1869   --enable-dshow) _win32=yes _dshow=yes ;;
1870   --disable-dshow) _dshow=no ;;
1871
1872   --with-x11incdir=*)
1873     _inc_x11=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1874     ;;
1875   --with-x11libdir=*)
1876     _x11_paths=`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1877     ;;
1878   --with-dxr2incdir=*)
1879     _inc_dxr2=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1880     ;;
1881   --with-xvmclib=*)
1882     _xvmclib=`echo $ac_option | cut -d '=' -f 2`
1883     ;;
1884   --with-dvbincdir=*)
1885     _inc_dvb=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1886     ;;
1887   --with-xvidlibdir=*)
1888     _ld_xvid=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1889     ;;
1890   --with-xvidincdir=*)
1891     _inc_xvid=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1892     ;;
1893   --with-dtslibdir=*)
1894     _ld_libdts=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1895     ;;
1896   --with-dtsincdir=*)
1897     _inc_libdts=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1898     ;;
1899   --with-x264libdir=*)
1900     _ld_x264=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1901     ;;
1902   --with-x264incdir=*)
1903     _inc_x264=-I`echo $ac_option | cut -d '=' -f 2 |sed 's,:, -I,g'`
1904     ;;
1905   --with-sdl-config=*)
1906     _sdlconfig=`echo $ac_option | cut -d '=' -f 2`
1907     ;;
1908   --with-freetype-config=*)
1909     _freetypeconfig=`echo $ac_option | cut -d '=' -f 2`
1910     ;;
1911   --with-fribidi-config=*)
1912     _fribidiconfig=`echo $ac_option | cut -d '=' -f 2`
1913     ;;
1914   --with-gtk-config=*)
1915     _gtkconfig=`echo $ac_option | cut -d '=' -f 2`
1916     ;;
1917   --with-glib-config=*)
1918     _glibconfig=`echo $ac_option | cut -d '=' -f 2`
1919     ;;
1920 # dvdnav disabled, it does not work
1921 #  --with-dvdnav-config=*)
1922 #    _dvdnavconfig=`echo $ac_option | cut -d '=' -f 2`
1923 #    ;;
1924   --with-madlibdir=*)
1925     _ld_mad=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1926     ;;
1927   --with-cdparanoiaincdir=*)
1928     _inc_cdparanoia=-I`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -I,g'`
1929     ;;
1930   --with-cdparanoialibdir=*)
1931     _ld_cdparanoia=-L`echo $ac_option | cut -d '=' -f 2 | sed 's,:, -L,g'`
1932     ;;
1933   --with-termcaplib=*)
1934     _ld_termcap=-l`echo $ac_option | cut -d '=' -f 2`
1935     _termcap=yes
1936     ;;
1937   --prefix=*)
1938     _prefix=`echo $ac_option | cut -d '=' -f 2`
1939     ;;
1940   --bindir=*)
1941     _bindir=`echo $ac_option | cut -d '=' -f 2`
1942     ;;
1943   --datadir=*)
1944     _datadir=`echo $ac_option | cut -d '=' -f 2`
1945     ;;
1946   --mandir=*)
1947     _mandir=`echo $ac_option | cut -d '=' -f 2`
1948     ;;
1949   --confdir=*)
1950     _confdir=`echo $ac_option | cut -d '=' -f 2`
1951     ;;
1952   --libdir=*)
1953     _libdir=`echo $ac_option | cut -d '=' -f 2`
1954     ;;
1955
1956   *)
1957     echo "Unknown parameter: $ac_option"
1958     exit 1
1959     ;;
1960
1961   esac
1962 done
1963
1964 # Atmos: moved this here, to be correct, if --prefix is specified
1965 test -z "$_bindir" && _bindir="$_prefix/bin"
1966 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1967 test -z "$_mandir" && _mandir="$_prefix/man"
1968 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1969 test -z "$_libdir" && _libdir="$_prefix/lib"
1970 test -z "$_mlibdir" && _mlibdir="$MLIBHOME"
1971
1972 if x86 ; then
1973   # Checking assembler (_as) compatibility...
1974   # Added workaround for older as that reads from stdin by default - atmos
1975   as_version=`echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p'`
1976   echocheck "assembler ($_as $as_version)"
1977
1978   _pref_as_version='2.9.1'
1979   echo 'nop' > $TMPS
1980   if test "$_mmx" = yes ; then
1981     echo 'emms' >> $TMPS
1982   fi
1983   if test "$_3dnow" = yes ; then
1984     _pref_as_version='2.10.1'
1985     echo 'femms' >> $TMPS
1986   fi
1987   if test "$_3dnowex" = yes ; then
1988     _pref_as_version='2.10.1'
1989     echo 'pswapd        %mm0, %mm0' >> $TMPS
1990   fi
1991   if test "$_mmx2" = yes ; then
1992     _pref_as_version='2.10.1'
1993     echo 'movntq        %mm0, (%eax)' >> $TMPS
1994   fi
1995   if test "$_sse" = yes ; then
1996     _pref_as_version='2.10.1'
1997     echo 'xorps %xmm0, %xmm0' >> $TMPS
1998   fi
1999   #if test "$_sse2" = yes ; then
2000   #  _pref_as_version='2.11'
2001   #  echo 'xorpd %xmm0, %xmm0' >> $TMPS
2002   #fi
2003   $_as $TMPS -o $TMPO > /dev/null 2>&1 || as_verc_fail=yes
2004
2005   if test "$as_verc_fail" != yes ; then
2006     echores "ok"
2007   else
2008     echores "failed"
2009     echo "Upgrade binutils to ${_pref_as_version} ..."
2010     die "obsolete binutils version"
2011   fi
2012 fi
2013
2014 if ppc ; then
2015     
2016     # check if altivec is supported by the compiler, and how to enable it
2017
2018     _altivec_gcc_flags=''
2019
2020     if test "$_altivec" = yes -o "$_runtime_cpudetection" = yes ; then
2021         echocheck "GCC altivec support"
2022         
2023         p=''
2024         cat > $TMPC << EOF
2025 int main() {
2026     return 0;
2027 }
2028 EOF
2029         FSF_flags='-maltivec -mabi=altivec'
2030         Darwin_flags='-faltivec -D__APPLE_ALTIVEC__'
2031
2032         # check for Darwin-style flags first, since
2033         # gcc-3.3 (August Update from Apple) on MacOS 10.2.8
2034         # accepts but ignores FSF-style flags...
2035
2036         if test -z "$p"; then
2037             cc_check $Darwin_flags && p='Darwin'
2038         fi
2039         if test -z "$p"; then
2040             cc_check $FSF_flags && p='FSF'
2041         fi
2042
2043         case $p in
2044             FSF) _altivec_gcc_flags="$FSF_flags" _altivec=yes ;;
2045             Darwin) _altivec_gcc_flags="$Darwin_flags" _altivec=yes ;;
2046             *) _altivec=no ;;
2047         esac
2048
2049         if test -z "$p"; then
2050             p=none
2051         else
2052             p="$p-style ($_altivec_gcc_flags)"
2053         fi
2054
2055         echores "$p"
2056     fi
2057
2058     # check if <altivec.h> should be included
2059
2060     _def_altivec_h='#undef HAVE_ALTIVEC_H'
2061
2062     if test "$_altivec" = yes ; then
2063         echocheck "altivec.h"
2064         cat > $TMPC << EOF
2065 #include <altivec.h>
2066 int main(void) { return 0; }
2067 EOF
2068         _have_altivec_h=no
2069          cc_check $_altivec_gcc_flags && _have_altivec_h=yes
2070          if test "$_have_altivec_h" = yes ; then
2071              _def_altivec_h='#define HAVE_ALTIVEC_H 1'
2072          fi
2073          echores "$_have_altivec_h"
2074     fi
2075
2076     # disable runtime cpudetection if 
2077     # - we cannot generate altivec code
2078     # - altivec is disabled by the user
2079
2080     if test "$_runtime_cpudetection" = yes -a "$_altivec" = no ; then
2081         _runtime_cpudetection=no
2082     fi
2083
2084     # show that we are optimizing for altivec (if enabled and supported)
2085
2086     if test "$_runtime_cpudetection" = no -a "$_altivec" = yes ; then
2087         _optimizing="$_optimizing altivec"
2088     fi
2089
2090     # if altivec is enabled, make sure the correct flags turn up in CFLAGS
2091
2092     if test "$_altivec" = yes ; then
2093         _mcpu="$_mcpu $_altivec_gcc_flags"
2094     fi
2095
2096     # setup _def_altivec correctly
2097
2098     if test "$_altivec" = yes ; then
2099         _def_altivec='#define HAVE_ALTIVEC 1'
2100     else
2101         _def_altivec='#undef HAVE_ALTIVEC'
2102     fi
2103 fi
2104
2105 _def_mmx='#undef HAVE_MMX'
2106 test "$_mmx" = yes && _def_mmx='#define HAVE_MMX 1'
2107 _def_mmx2='#undef HAVE_MMX2'
2108 test "$_mmx2" = yes && _def_mmx2='#define HAVE_MMX2 1'
2109 _def_3dnow='#undef HAVE_3DNOW'
2110 test "$_3dnow" = yes && _def_3dnow='#define HAVE_3DNOW 1'
2111 _def_3dnowex='#undef HAVE_3DNOWEX'
2112 test "$_3dnowex" = yes && _def_3dnowex='#define HAVE_3DNOWEX 1'
2113 _def_sse='#undef HAVE_SSE'
2114 test "$_sse" = yes && _def_sse='#define HAVE_SSE 1'
2115 _def_sse2='#undef HAVE_SSE2'
2116 test "$_sse2" = yes && _def_sse2='#define HAVE_SSE2 1'
2117
2118 # Checking kernel version...
2119 if x86 && linux ; then
2120   _k_verc_problem=no
2121   kernel_version=`uname -r 2>&1`
2122   echocheck "$system_name kernel version"
2123   case "$kernel_version" in
2124     '') kernel_version="?.??"; _k_verc_fail=yes;;
2125     [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
2126       _k_verc_problem=yes;;
2127   esac
2128   if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
2129     _k_verc_fail=yes
2130   fi
2131   if test "$_k_verc_fail" ; then
2132     echores "$kernel_version, fail"
2133     echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
2134     echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
2135     echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
2136     echo "supports SSE, but you have been warned! If you are using a kernel older than"
2137     echo "2.2.x you must upgrade it to get SSE support!"
2138 #    die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
2139   else
2140     echores "$kernel_version, ok"
2141   fi
2142 fi
2143
2144 if test "$_vidix" = auto ; then
2145   _vidix=no
2146   # should check for x86 systems supporting VIDIX (does QNX have VIDIX?)
2147   x86 && _vidix=yes
2148   ppc && linux && _vidix=yes
2149   alpha && linux && _vidix=yes
2150   qnx && _vidix=no
2151   sunos && _vidix=no
2152   beos && _vidix=no
2153 fi
2154
2155 echocheck "mplayer binary name"
2156 if win32 ; then
2157   _prg="mplayer.exe"
2158   _prg_mencoder="mencoder.exe"
2159 else
2160   _prg="mplayer"
2161   _prg_mencoder="mencoder"
2162 fi
2163 echores $_prg
2164
2165
2166 # On QNX we must link to libph - Gabucino
2167 if qnx ; then
2168   _ld_arch="$_ld_arch -lph"
2169 fi
2170
2171 # checking for a working awk, I'm using mawk first, because it's fastest - atmos
2172 _awk=
2173 if test "$_vidix" = yes ; then
2174 _awk_verc_fail=yes
2175 echocheck "awk"
2176 for _awk in mawk gawk nawk awk; do
2177   if ( $_awk 'BEGIN{testme();}function testme(){print"";}' ) >> "$TMPLOG" 2>&1; then
2178     _awk_verc_fail=no
2179     break
2180   fi
2181 done
2182 test "$_awk_verc_fail" = yes && _awk=no
2183 echores "$_awk"
2184 if test "$_awk_verc_fail" = yes; then
2185 echo "VIDIX needs awk, but no working implementation was found!"
2186 echo "Try the GNU version, which can be downloaded from:"
2187 echo "ftp://ftp.gnu.org/gnu/gawk/"
2188 echo "If you don't need VIDIX, you can use configure --disable-vidix instead."
2189 die "no awk"
2190 fi
2191 fi
2192
2193 # If IRIX we must use ar instead of ranlib (not present on IRIX systems)
2194 if irix ; then
2195   _ranlib='ar -r'
2196 elif linux ; then
2197   _ranlib='true'
2198 fi
2199
2200 ######################
2201 # MAIN TESTS GO HERE #
2202 ######################
2203
2204
2205 echocheck "extra headers"
2206 if test "$_inc_extra" ; then
2207   echores "$_inc_extra"
2208 else
2209   echores "none"
2210 fi
2211
2212
2213 echocheck "extra libs"
2214 if test "$_ld_extra" ; then
2215   echores "$_ld_extra"
2216 else
2217   echores "none"
2218 fi
2219
2220 echocheck "-lposix"
2221 cat > $TMPC <<EOF
2222 int main(void) { return 0; }
2223 EOF
2224 if cc_check -lposix ; then
2225   _ld_arch="$_ld_arch -lposix"
2226   echores "yes"
2227 else
2228   echores "no"
2229 fi
2230
2231 echocheck "-lm"
2232 cat > $TMPC <<EOF
2233 int main(void) { return 0; }
2234 EOF
2235 if cc_check -lm ; then
2236   _ld_lm="-lm"
2237   echores "yes"
2238 else
2239   _ld_lm=""
2240   echores "no"
2241 fi
2242
2243 # Checking for localization ...
2244 # CSAK EGY MARADHAT - A HEGYLAKO
2245 echocheck "i18n"
2246 if test "$_i18n" != no ; then
2247   cat > $TMPC <<EOF
2248 #include <libintl.h>
2249 int main(void) { gettext("test"); return 0; }
2250 EOF
2251   _i18n=no
2252   _i18n_libs=""
2253   if test "$_i18n" = auto ; then
2254     cc_check && _i18n=yes
2255   else
2256     for i18n_lib in "" "-lintl"; do
2257       cc_check $i18n_lib && _i18n=yes && _i18n_libs=$i18n_lib && break
2258     done
2259   fi
2260 fi
2261 if test "$_i18n" = yes ; then
2262   _def_i18n='#define USE_I18N 1'
2263 else
2264   _def_i18n='#undef USE_I18N'
2265 fi
2266 if test -z "$_i18n_libs" ; then
2267   echores "$_i18n"
2268 else
2269   echores "$_i18n (using $_i18n_libs)"
2270 fi
2271
2272
2273 echocheck "iconv"
2274 if test "$_iconv" = auto ; then
2275   _iconv_tmp='#include <iconv.h>'
2276
2277   cat > $TMPC << EOF
2278 #include <stdio.h>
2279 #include <unistd.h>
2280 $_iconv_tmp
2281 #define INBUFSIZE 1024
2282 #define OUTBUFSIZE 4096
2283
2284 char inbuffer[INBUFSIZE];
2285 char outbuffer[OUTBUFSIZE];
2286
2287 int main(void) {
2288   size_t numread;
2289   iconv_t icdsc;
2290   char *tocode="UTF-8";
2291   char *fromcode="cp1250";
2292   if ((icdsc = iconv_open (tocode, fromcode)) != (iconv_t)(-1)) {
2293     while ((numread = read (0, inbuffer, INBUFSIZE))) {
2294       char *iptr=inbuffer;
2295       char *optr=outbuffer;
2296       size_t inleft=numread;
2297       size_t outleft=OUTBUFSIZE;
2298       if (iconv(icdsc, (const char **)&iptr, &inleft, &optr, &outleft)
2299           != (size_t)(-1)) {
2300         write (1, outbuffer, OUTBUFSIZE - outleft);
2301       }
2302     }
2303     if (iconv_close(icdsc) == -1)
2304       ;
2305   }
2306 }
2307 EOF
2308   _iconv=no
2309   if cc_check $_ld_lm ; then
2310     _iconv=yes
2311   elif cc_check $_ld_lm -liconv ; then
2312     _iconv=yes
2313     _ld_iconv='-liconv'
2314   fi
2315 fi
2316 if test "$_iconv" = yes ; then
2317   _def_iconv='#define USE_ICONV 1'
2318 else
2319   _def_iconv='#undef USE_ICONV'
2320 fi
2321 echores "$_iconv"
2322
2323
2324 echocheck "langinfo"
2325 if test "$_langinfo" = auto ; then
2326   cat > $TMPC <<EOF
2327 #include <langinfo.h>
2328 int main(void) { nl_langinfo(CODESET); return 0; }
2329 EOF
2330   _langinfo=no
2331   cc_check && _langinfo=yes
2332 fi
2333 if test "$_langinfo" = yes ; then
2334   _def_langinfo='#define USE_LANGINFO 1'
2335 else
2336   _def_langinfo='#undef USE_LANGINFO'
2337 fi
2338 echores "$_langinfo"
2339
2340
2341 echocheck "language"
2342 test -z "$_language" && _language=$LINGUAS
2343 _language=`echo $_language | sed 's/,/ /g'`
2344 echo $_language | grep all > /dev/null || LANGUAGES="$_language en"
2345 for lang in $_language ; do
2346   test "$lang" = all && lang=en
2347   if test -f "help/help_mp-${lang}.h" ; then
2348     _language=$lang
2349     break
2350   else
2351     echo -n "$lang not found, "
2352     _language=`echo $_language | sed "s/$lang *//"`
2353   fi
2354 done
2355 test -z "$_language" && _language=en
2356 _mp_help="help/help_mp-${_language}.h"
2357 test -f $_mp_help || die "$_mp_help not found"
2358 for lang in $LANGUAGES ; do
2359   if test -f "DOCS/man/$lang/mplayer.1" ; then
2360     MAN_LANG="$MAN_LANG $lang"
2361   fi
2362 done
2363 _doc_lang=$_language
2364 test -d DOCS/xml/$_doc_lang || _doc_lang=en
2365 echores "using $_language (man pages: $MAN_LANG)"
2366
2367
2368 echocheck "enable sighandler"
2369 if test "$_sighandler" = yes ; then
2370   _def_sighandler='#define ENABLE_SIGHANDLER 1'
2371 else
2372   _def_sighandler='#undef ENABLE_SIGHANDLER'
2373 fi
2374 echores "$_sighandler"
2375
2376 echocheck "runtime cpudetection"
2377 if test "$_runtime_cpudetection" = yes ; then
2378   _optimizing="Runtime CPU-Detection enabled"
2379   _def_runtime_cpudetection='#define RUNTIME_CPUDETECT 1'
2380 else
2381   _def_runtime_cpudetection='#undef RUNTIME_CPUDETECT'
2382 fi
2383 echores "$_runtime_cpudetection"
2384
2385
2386 echocheck "restrict keyword"
2387 for restrict_keyword in restrict __restrict __restrict__ ; do
2388   echo "void foo(char * $restrict_keyword p); int main(){}" > $TMPC
2389   if cc_check; then
2390     _def_restrict_keyword=$restrict_keyword
2391     break;
2392   fi
2393 done
2394 if [ -n "$_def_restrict_keyword" ]; then
2395   echores "$_def_restrict_keyword"
2396 else
2397   echores "none"
2398 fi
2399 # Avoid infinite recursion loop ("#define restrict restrict")
2400 if [ "$_def_restrict_keyword" != "restrict" ]; then
2401   _def_restrict_keyword="#define restrict $_def_restrict_keyword"
2402 else
2403   _def_restrict_keyword=""
2404 fi
2405
2406
2407 echocheck "__builtin_expect"
2408 # GCC branch prediction hint
2409 cat > $TMPC << EOF
2410 int foo (int a) {
2411     a = __builtin_expect (a, 10);
2412     return a == 10 ? 0 : 1;
2413 }
2414 int main() { return foo(10) && foo(0); }
2415 EOF
2416 _builtin_expect=no
2417 cc_check && _builtin_expect=yes
2418 if test "$_builtin_expect" = yes ; then
2419   _def_builtin_expect='#define HAVE_BUILTIN_EXPECT 1'
2420 else
2421   _def_builtin_expect='#undef HAVE_BUILTIN_EXPECT'
2422 fi
2423 echores "$_builtin_expect"
2424
2425
2426 echocheck "kstat"
2427 cat > $TMPC << EOF
2428 #include <kstat.h>
2429 int main(void) { (void) kstat_open(); (void) kstat_close(0); return 0; }
2430 EOF
2431 _kstat=no
2432 cc_check -lkstat && _kstat=yes
2433 if test "$_kstat" = yes ; then
2434   _ld_arch="-lkstat $_ld_arch"
2435 fi
2436 if test "$_kstat" = yes ; then
2437   _def_kstat="#define HAVE_LIBKSTAT 1"
2438 else
2439   _def_kstat="#undef HAVE_LIBKSTAT"
2440 fi
2441 echores "$_kstat"
2442
2443
2444 echocheck "posix4"
2445 # required for nanosleep on some systems
2446 cat > $TMPC << EOF
2447 #include <time.h>
2448 int main(void) { (void) nanosleep(0, 0); return 0; }
2449 EOF
2450 _posix4=no
2451 cc_check -lposix4 && _posix4=yes
2452 if test "$_posix4" = yes ; then
2453   _ld_arch="-lposix4 $_ld_arch"
2454 fi
2455 echores "$_posix4"
2456
2457 echocheck "-std=gnu99"
2458 cat > $TMPC << EOF
2459 int main(void) { return 0; }
2460 EOF
2461 _gnu99=no
2462 cc_check -std=gnu99 && _gnu99=yes
2463 if test "$_gnu99" = yes ; then
2464   _opt_gnu99="-std=gnu99"
2465 else
2466   _opt_gnu99=""
2467 fi
2468 echores "$_gnu99"
2469
2470 echocheck "lrintf"
2471 cat > $TMPC << EOF
2472 #include <math.h>
2473 int main(void) { long (*foo)(float); foo = lrintf; (void)(*foo)(0.0); return 0; }
2474 EOF
2475 _lrintf=no
2476 cc_check $_opt_gnu99 -D_GNU_SOURCE $_ld_lm && _lrintf=yes
2477 if test "$_lrintf" = yes ; then
2478   _def_lrintf="#define HAVE_LRINTF 1"
2479 else
2480   _def_lrintf="#undef HAVE_LRINTF"
2481 fi
2482 echores "$_lrintf"
2483
2484 echocheck "round"
2485 cat > $TMPC << EOF
2486 #include <math.h>
2487 int main(void) { (void) round(0.0); return 0; }
2488 EOF
2489 _round=no
2490 cc_check $_ld_lm && _round=yes
2491 if test "$_round" = yes ; then
2492   _def_round="#define HAVE_ROUND 1"
2493 else
2494   _def_round="#undef HAVE_ROUND"
2495 fi
2496 echores "$_round"
2497
2498 echocheck "nanosleep"
2499 # also check for nanosleep
2500 cat > $TMPC << EOF
2501 #include <time.h>
2502 int main(void) { (void) nanosleep(0, 0); return 0; }
2503 EOF
2504 _nanosleep=no
2505 cc_check $_ld_arch && _nanosleep=yes
2506 if test "$_nanosleep" = yes ; then
2507   _def_nanosleep='#define HAVE_NANOSLEEP 1'
2508 else
2509   _def_nanosleep='#undef HAVE_NANOSLEEP'
2510 fi
2511 echores "$_nanosleep"
2512
2513
2514 echocheck "socklib"
2515 # for Solaris (socket stuff is in -lsocket, gethostbyname and friends in -lnsl):
2516 # for BeOS (socket stuff is in -lsocket, gethostbyname and friends in -lbind):
2517 cat > $TMPC << EOF
2518 #include <netdb.h>
2519 int main(void) { (void) gethostbyname(0); return 0; }
2520 EOF
2521 cc_check -lsocket && _ld_sock="-lsocket"
2522 cc_check -lnsl && _ld_sock="-lnsl"
2523 cc_check -lsocket -lnsl && _ld_sock="-lsocket -lnsl"
2524 cc_check -lsocket -ldnet && _ld_sock="-lsocket -ldnet"
2525 cc_check -lsocket -lbind && _ld_sock="-lsocket -lbind"
2526 if test $_winsock2 = auto && not cygwin ; then
2527   _winsock2=no
2528   cat > $TMPC << EOF
2529 #include <winsock2.h>
2530 int main(void) { (void) gethostbyname(0); return 0; }
2531 EOF
2532   cc_check -lws2_32 && _ld_sock="-lws2_32" && _winsock2=yes
2533 fi
2534 if test "$_ld_sock" ; then
2535   echores "yes (using $_ld_sock)"
2536 else
2537   echores "no"
2538 fi
2539
2540
2541 if test $_winsock2 = yes ; then
2542   _ld_sock="-lws2_32"
2543   _def_winsock2='#define HAVE_WINSOCK2 1'
2544 else
2545   _def_winsock2='#undef HAVE_WINSOCK2'
2546 fi
2547
2548
2549 _use_aton=no
2550 echocheck "inet_pton()"
2551 cat > $TMPC << EOF
2552 #include <sys/types.h>
2553 #include <sys/socket.h>
2554 #include <arpa/inet.h>
2555 int main(void) { (void) inet_pton(0, 0, 0); return 0; }
2556 EOF
2557 if test "$_winsock2" = yes ; then
2558     echores "not needed (using winsock2 functions)"
2559 elif cc_check $_ld_sock ; then
2560   # NOTE: Linux has libresolv but does not need it
2561   :
2562   echores "yes (using $_ld_sock)"
2563 elif cc_check $_ld_sock -lresolv ; then
2564   # NOTE: needed for SunOS at least
2565   _ld_sock="$_ld_sock -lresolv"
2566   echores "yes (using $_ld_sock)"
2567 else
2568   echores "no (=> i'll try inet_aton next)"
2569   
2570   echocheck "inet_aton()"
2571   cat > $TMPC << EOF
2572 #include <sys/types.h>
2573 #include <sys/socket.h>
2574 #include <arpa/inet.h>
2575 int main(void) { (void) inet_aton(0, 0); return 0; }
2576 EOF
2577   _use_aton=yes
2578   if cc_check $_ld_sock ; then
2579       # NOTE: Linux has libresolv but does not need it
2580     :
2581     echores "yes (using $_ld_sock)"
2582   elif cc_check $_ld_sock -lresolv ; then
2583     # NOTE: needed for SunOS at least
2584     _ld_sock="$_ld_sock -lresolv"
2585     echores "yes (using $_ld_sock)"
2586   else
2587     _use_aton=no
2588     _network=no
2589     echores "no (=> network support disabled)"
2590   fi
2591 fi
2592
2593 _def_use_aton='#undef USE_ATON'
2594 if test "$_use_aton" != no; then
2595   _def_use_aton='#define USE_ATON 1'
2596 fi
2597
2598
2599 echocheck "inttypes.h (required)"
2600 cat > $TMPC << EOF
2601 #include <inttypes.h>
2602 int main(void) { return 0; }
2603 EOF
2604 _inttypes=no
2605 cc_check && _inttypes=yes
2606 if test "$_inttypes" = yes ; then
2607   # nothing to do
2608   :
2609 else
2610   echores "no"
2611   echocheck "bitypes.h (inttypes.h predecessor)"
2612   cat > $TMPC << EOF
2613 #include <sys/bitypes.h>
2614 int main(void) { return 0; }
2615 EOF
2616   _inttypes=no
2617   cc_check && _inttypes=yes
2618   if test "$_inttypes" = yes ; then
2619     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."
2620   else
2621     die "Cannot find header either inttypes.h or bitypes.h (see DOCS/HTML/$_doc_lang/faq.html)."
2622   fi
2623 fi
2624 echores "$_inttypes"
2625
2626
2627 echocheck "int_fastXY_t in inttypes.h"
2628 cat > $TMPC << EOF
2629 #include <inttypes.h>
2630 int main(void) { 
2631 volatile int_fast16_t v= 0;
2632 return v; }
2633 EOF
2634 _fast_inttypes=no
2635 cc_check && _fast_inttypes=yes
2636 if test "$_fast_inttypes" = yes ; then
2637   # nothing to do
2638   :
2639 else
2640   _def_fast_inttypes='  
2641     typedef signed char int_fast8_t;
2642     typedef signed int  int_fast16_t;
2643     typedef signed int  int_fast32_t;
2644     typedef unsigned char uint_fast8_t;
2645     typedef unsigned int  uint_fast16_t;
2646     typedef unsigned int  uint_fast32_t;'
2647 fi
2648 echores "$_fast_inttypes"
2649
2650
2651 echocheck "word size"
2652 _mp_wordsize="#undef MP_WORDSIZE"
2653 cat > $TMPC << EOF
2654 #include <stdio.h>
2655 #include <sys/types.h>
2656 int main(void) { printf("%d\n", sizeof(size_t)*8); return 0; }
2657 EOF
2658 cc_check && _wordsize=`$TMPO` && _mp_wordsize="#define MP_WORDSIZE $_wordsize"
2659 echores "$_wordsize"
2660
2661
2662 echocheck "stddef.h"
2663 cat > $TMPC << EOF
2664 #include <stddef.h>
2665 int main(void) { return 0; }
2666 EOF
2667 _stddef=no
2668 cc_check && _stddef=yes
2669 if test "$_stddef" = yes ; then
2670   _def_stddef='#define HAVE_STDDEF_H 1'
2671 else
2672   _def_stddef='#undef HAVE_STDDEF_H'
2673 fi
2674 echores "$_stddef"
2675
2676
2677 echocheck "malloc.h"
2678 cat > $TMPC << EOF
2679 #include <malloc.h>
2680 int main(void) { (void) malloc(0); return 0; }
2681 EOF
2682 _malloc=no
2683 cc_check && _malloc=yes
2684 if test "$_malloc" = yes ; then
2685   _def_malloc='#define HAVE_MALLOC_H 1'
2686 else
2687   _def_malloc='#undef HAVE_MALLOC_H'
2688 fi
2689 # malloc.h emits a warning in FreeBSD and OpenBSD
2690 (freebsd || openbsd) && _def_malloc='#undef HAVE_MALLOC_H'
2691 echores "$_malloc"
2692
2693
2694 echocheck "memalign()"
2695 # XXX restrict to x86 ? extend to other CPUs/cacheline sizes ?
2696 cat > $TMPC << EOF
2697 #include <malloc.h>
2698 int main (void) { (void) memalign(64, sizeof(char)); return 0; }
2699 EOF
2700 _memalign=no
2701 cc_check && _memalign=yes
2702 if test "$_memalign" = yes ; then
2703  _def_memalign='#define HAVE_MEMALIGN 1'
2704 else
2705  _def_memalign='#undef HAVE_MEMALIGN'
2706 fi
2707 echores "$_memalign"
2708
2709
2710 echocheck "alloca.h"
2711 cat > $TMPC << EOF
2712 #include <alloca.h>
2713 int main(void) { (void) alloca(0); return 0; }
2714 EOF
2715 _alloca=no
2716 cc_check && _alloca=yes
2717 if cc_check ; then
2718   _def_alloca='#define HAVE_ALLOCA_H 1'
2719 else
2720   _def_alloca='#undef HAVE_ALLOCA_H'
2721 fi
2722 echores "$_alloca"
2723
2724
2725 echocheck "mman.h"
2726 cat > $TMPC << EOF
2727 #include <sys/types.h>
2728 #include <sys/mman.h>
2729 int main(void) { (void) mmap(0, 0, 0, 0, 0, 0); return 0; }
2730 EOF
2731 _mman=no
2732 cc_check && _mman=yes
2733 if test "$_mman" = yes ; then
2734   _def_mman='#define HAVE_SYS_MMAN_H 1'
2735 else
2736   _def_mman='#undef HAVE_SYS_MMAN_H'
2737 fi
2738 echores "$_mman"
2739
2740 cat > $TMPC << EOF
2741 #include <sys/types.h>
2742 #include <sys/mman.h>
2743 int main(void) { void *p = MAP_FAILED; return 0; }
2744 EOF
2745 _mman_has_map_failed=no
2746 cc_check && _mman_has_map_failed=yes
2747 if test "$_mman_has_map_failed" = yes ; then
2748   _def_mman_has_map_failed=''
2749 else
2750   _def_mman_has_map_failed='#define MAP_FAILED ((void *) -1)'
2751 fi
2752
2753 echocheck "dynamic loader"
2754 cat > $TMPC << EOF
2755 #include <dlfcn.h>
2756 int main(void) { dlopen(0, 0); dlclose(0); dlsym(0, 0); return 0; }
2757 EOF
2758 _dl=no
2759 if cc_check ; then
2760   _dl=yes
2761 elif cc_check -ldl ; then
2762   _dl=yes
2763   _ld_dl='-ldl'
2764 fi
2765 if test "$_dl" = yes ; then
2766  _def_dl='#define HAVE_LIBDL 1'
2767 else
2768  _def_dl='#undef HAVE_LIBDL'
2769 fi
2770 echores "$_dl"
2771
2772
2773 echocheck "dynamic a/v plugins support"
2774 if test "$_dl" = no ; then
2775   _dynamic_plugins=no
2776 fi
2777 if test "$_dynamic_plugins" = yes ; then
2778   _def_dynamic_plugins='#define DYNAMIC_PLUGINS 1'
2779 else
2780   _def_dynamic_plugins='#undef DYNAMIC_PLUGINS'
2781 fi
2782 echores "$_dynamic_plugins"
2783
2784
2785 #echocheck "dynamic linking"
2786 # FIXME !! make this dynamic detection work and modify at the end (search _ld_dl_dynamic)
2787 # also gcc flags are different, but ld flags aren't (-Bdynamic/-Bstatic/-Bsymbolic)
2788 #cat > $TMPC << EOF
2789 #int main(void) { return 0; }
2790 #EOF
2791 #if cc_check -rdynamic ; then
2792 #  _ld_dl_dynamic='-rdynamic'
2793 #elif cc_check -Bdynamic ; then
2794 #  _ld_dl_dynamic='-Bdynamic'
2795 #elif cc_check ; then
2796 #  _ld_dl_dynamic=''
2797 #fi
2798 #echores "using $_ld_dl_dynamic"
2799
2800 _def_threads='#undef HAVE_THREADS'
2801
2802 echocheck "pthread"
2803 _ld_pthread=''
2804 if test "$_pthreads" != no ; then
2805 cat > $TMPC << EOF
2806 #include <pthread.h>
2807 void* func(void *arg) { return arg; }
2808 int main(void) { pthread_t tid; return pthread_create (&tid, 0, func, 0) == 0 ? 0 : 1; }
2809 EOF
2810 if hpux ; then
2811   _ld_pthread=''
2812 elif ( cc_check -lpthreadGC2 && $TMPO ) ; then # mingw pthreads-win32
2813   _ld_pthread='-lpthreadGC2'
2814 elif ( cc_check && $TMPO ) ; then              # QNX
2815   _ld_pthread=' ' # _ld_pthread='' would disable pthreads, but the test worked
2816 elif ( cc_check -lpthread && $TMPO ) ; then
2817   _ld_pthread='-lpthread'
2818 elif ( cc_check -pthread && $TMPO ) ; then
2819   _ld_pthread='-pthread'
2820 else
2821   if test "$_ld_static" ; then
2822     # for crosscompilation, we cannot execute the program, be happy if we can link statically
2823     if ( cc_check -lpthread ) ; then
2824       _ld_pthread='-lpthread'
2825     elif ( cc_check -pthread ) ; then
2826      _ld_pthread='-pthread'
2827     else
2828       _ld_pthread=''
2829     fi
2830   else
2831     _ld_pthread='' 
2832   fi
2833 fi
2834 fi
2835 if test "$_ld_pthread" != '' ; then
2836   echores "yes (using $_ld_pthread)"
2837   _pthreads='yes'
2838   _def_pthreads='#define HAVE_PTHREADS 1'
2839   _def_threads='#define HAVE_THREADS 1'
2840 else
2841   echores "no (v4l, vo_gl, ao_alsa, ao_nas, ao_macosx, win32 loader disabled)"
2842   _pthreads=''
2843   _def_pthreads='#undef HAVE_PTHREADS'
2844   _nas=no ; _tv_v4l=no ; _macosx=no
2845   if not mingw32 ; then
2846     _win32=no
2847   fi
2848 fi
2849
2850
2851 echocheck "sys/soundcard.h"
2852 cat > $TMPC << EOF
2853 #include <sys/soundcard.h>
2854 int main(void) { return 0; }
2855 EOF
2856 _sys_soundcard=no
2857 cc_check && _sys_soundcard=yes
2858 if test "$_sys_soundcard" = yes ; then
2859   _def_sys_soundcard='#define HAVE_SYS_SOUNDCARD_H 1'
2860   _inc_soundcard='#include <sys/soundcard.h>'
2861 else
2862   _def_sys_soundcard='#undef HAVE_SYS_SOUNDCARD_H'
2863 fi
2864 echores "$_sys_soundcard"
2865
2866 if test "$_sys_soundcard" != yes ; then
2867 echocheck "soundcard.h"
2868 cat > $TMPC << EOF
2869 #include <soundcard.h>
2870 int main(void) { return 0; }
2871 EOF
2872 _soundcard=no
2873 cc_check && _soundcard=yes
2874 if linux || test "$_ossaudio" != no ; then
2875   # use soundcard.h on Linux, or when OSS support is enabled
2876   echores "$_soundcard"
2877 else
2878   # we don't want to use soundcard.h on non-Linux if OSS support not enabled!
2879   echores "$_soundcard, but ignored!"
2880   _soundcard=no
2881 fi
2882 if test "$_soundcard" = yes ; then
2883   _def_soundcard='#define HAVE_SOUNDCARD_H 1'
2884   _inc_soundcard='#include <soundcard.h>'
2885 else
2886   _def_soundcard='#undef HAVE_SOUNDCARD_H'
2887 fi
2888 else
2889   _def_soundcard='#undef HAVE_SOUNDCARD_H'
2890 fi
2891
2892
2893 echocheck "sys/dvdio.h"
2894 cat > $TMPC << EOF
2895 #include <unistd.h>
2896 #include <sys/dvdio.h>
2897 int main(void) { return 0; }
2898 EOF
2899 _dvdio=no
2900 cc_check && _dvdio=yes
2901 if test "$_dvdio" = yes ; then
2902   _def_dvdio='#define DVD_STRUCT_IN_SYS_DVDIO_H 1'
2903 else
2904   _def_dvdio='#undef DVD_STRUCT_IN_SYS_DVDIO_H'
2905 fi
2906 echores "$_dvdio"
2907
2908
2909 echocheck "sys/cdio.h"
2910 cat > $TMPC << EOF
2911 #include <unistd.h>
2912 #include <sys/cdio.h>
2913 int main(void) { return 0; }
2914 EOF
2915 _cdio=no
2916 cc_check && _cdio=yes
2917 if test "$_cdio" = yes ; then
2918   _def_cdio='#define DVD_STRUCT_IN_SYS_CDIO_H 1'
2919 else
2920   _def_cdio='#undef DVD_STRUCT_IN_SYS_CDIO_H'
2921 fi
2922 echores "$_cdio"
2923
2924
2925 echocheck "linux/cdrom.h"
2926 cat > $TMPC << EOF
2927 #include <sys/types.h>
2928 #include <linux/cdrom.h>
2929 int main(void) { return 0; }
2930 EOF
2931 _cdrom=no
2932 cc_check && _cdrom=yes
2933 if test "$_cdrom" = yes ; then
2934   _def_cdrom='#define DVD_STRUCT_IN_LINUX_CDROM_H 1'
2935 else
2936   _def_cdrom='#undef DVD_STRUCT_IN_LINUX_CDROM_H'
2937 fi
2938 echores "$_cdrom"
2939
2940
2941 echocheck "dvd.h"
2942 cat > $TMPC << EOF
2943 #include <dvd.h>
2944 int main(void) { return 0; }
2945 EOF
2946 _dvd=no
2947 cc_check && _dvd=yes
2948 if test "$_dvd" = yes ; then
2949   _def_dvd='#define DVD_STRUCT_IN_DVD_H 1'
2950 else
2951   _def_dvd='#undef DVD_STRUCT_IN_DVD_H'
2952 fi
2953 echores "$_dvd"
2954
2955
2956 echocheck "BSDI dvd.h"
2957 cat > $TMPC << EOF
2958 #include <dvd.h>
2959 int main(void) { return 0; }
2960 EOF
2961 _bsdi_dvd=no
2962 cc_check && _bsdi_dvd=yes
2963 if test "$_bsdi_dvd" = yes ; then
2964   _def_bsdi_dvd='#define DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H 1'
2965 else
2966   _def_bsdi_dvd='#undef DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H'
2967 fi
2968 echores "$_bsdi_dvd"
2969
2970
2971 echocheck "HPUX SCSI header"
2972 cat > $TMPC << EOF
2973 #include <sys/scsi.h>
2974 int main(void) { return 0; }
2975 EOF
2976 _hpux_scsi_h=no
2977 cc_check && _hpux_scsi_h=yes
2978 if test "$_hpux_scsi_h" = yes ; then
2979   _def_hpux_scsi_h='#define HPUX_SCTL_IO 1'
2980 else
2981   _def_hpux_scsi_h='#undef HPUX_SCTL_IO'
2982 fi
2983 echores "$_hpux_scsi_h"
2984
2985
2986 echocheck "userspace SCSI headers (Solaris)"
2987 cat > $TMPC << EOF
2988 #   include <unistd.h>
2989 #   include <stropts.h>
2990 #   include <sys/scsi/scsi_types.h>
2991 #   include <sys/scsi/impl/uscsi.h>
2992 int main(void) { return 0; }
2993 EOF
2994 _sol_scsi_h=no
2995 cc_check && _sol_scsi_h=yes
2996 if test "$_sol_scsi_h" = yes ; then
2997   _def_sol_scsi_h='#define SOLARIS_USCSI 1'
2998 else
2999   _def_sol_scsi_h='#undef SOLARIS_USCSI'
3000 fi
3001 echores "$_sol_scsi_h"
3002
3003
3004 echocheck "termcap"
3005 if test "$_termcap" = auto ; then
3006   cat > $TMPC <<EOF
3007 int main(void) { return 0; }
3008 EOF
3009   _termcap=no
3010   cc_check -ltermcap && _termcap=yes && _ld_termcap='-ltermcap'
3011   cc_check -ltinfo && _termcap=yes && _ld_termcap='-ltinfo'
3012 fi
3013 if test "$_termcap" = yes ; then
3014   _def_termcap='#define USE_TERMCAP 1'
3015   echores "yes (using $_ld_termcap)"
3016 else
3017   _def_termcap='#undef USE_TERMCAP'
3018   echores no
3019 fi
3020
3021
3022 echocheck "termios"
3023 if test "$_termios" = auto ; then
3024   cat > $TMPC <<EOF
3025 #include <sys/termios.h>
3026 int main(void) { return 0; }
3027 EOF
3028   _termios=auto
3029   cc_check && _termios=yes
3030   _def_termios_h_name='sys/termios.h'
3031 fi
3032 # second test:
3033 if test "$_termios" = auto ; then
3034   cat > $TMPC <<EOF
3035 #include <termios.h>
3036 int main(void) { return 0; }
3037 EOF
3038   _termios=no
3039   cc_check && _termios=yes
3040   _def_termios_h_name='termios.h'
3041 fi
3042
3043 if test "$_termios" = yes ; then
3044   _def_termios='#define HAVE_TERMIOS 1'
3045   _def_termios_h='#undef HAVE_TERMIOS_H'
3046   _def_termios_sys_h='#undef HAVE_SYS_TERMIOS_H'
3047
3048   if test "$_def_termios_h_name" = 'sys/termios.h' ; then
3049     _def_termios_sys_h='#define HAVE_SYS_TERMIOS_H 1'
3050   elif test "$_def_termios_h_name" = 'termios.h' ; then
3051     _def_termios_h='#define HAVE_TERMIOS_H 1'
3052   fi
3053   echores "yes (using $_def_termios_h_name)"
3054 else
3055   _def_termios='#undef HAVE_TERMIOS'
3056   _def_termios_h_name=''
3057   echores "no"
3058 fi
3059
3060
3061 echocheck "shm"
3062 if test "$_shm" = auto ; then
3063   cat > $TMPC << EOF
3064 #include <sys/types.h>
3065 #include <sys/shm.h>
3066 int main(void) { shmget(0, 0, 0); shmat(0, 0, 0); shmctl(0, 0, 0); return 0; }
3067 EOF
3068   _shm=no
3069   cc_check && _shm=yes
3070 fi
3071 if test "$_shm" = yes ; then
3072   _def_shm='#define HAVE_SHM 1'
3073 else
3074   _def_shm='#undef HAVE_SHM'
3075 fi
3076 echores "$_shm"
3077
3078
3079 # XXX: FIXME, add runtime checking
3080 echocheck "linux devfs"
3081 echores "$_linux_devfs"
3082
3083
3084 echocheck "scandir()"
3085 cat > $TMPC << EOF
3086 int main (void) { scandir("", 0, 0, 0); alphasort(0, 0); return 0; }
3087 EOF
3088 _scandir=no
3089 cc_check && _scandir=yes
3090 if test "$_scandir" = yes ; then
3091  _def_scandir='#define HAVE_SCANDIR 1'
3092 else
3093  _def_scandir='#undef HAVE_SCANDIR'
3094 fi
3095 echores "$_scandir"
3096
3097
3098 echocheck "strsep()"
3099 cat > $TMPC << EOF
3100 #include <string.h>
3101 int main (void) { char *s = "Hello, world!"; (void) strsep(&s, ","); return 0; }
3102 EOF
3103 _strsep=no
3104 cc_check && _strsep=yes
3105 if test "$_strsep" = yes ; then
3106  _def_strsep='#define HAVE_STRSEP 1'
3107 else
3108  _def_strsep='#undef HAVE_STRSEP'
3109 fi
3110 echores "$_strsep"
3111
3112 echocheck "strlcpy()"
3113 cat > $TMPC << EOF
3114 #include <string.h>
3115 int main (void) { char *s = "Hello, world!", t[20]; (void) strlcpy(t, s, sizeof( t )); return 0; }
3116 EOF
3117 _strlcpy=no
3118 cc_check && _strlcpy=yes
3119 if test "$_strlcpy" = yes ; then
3120  _def_strlcpy='#define HAVE_STRLCPY 1'
3121 else
3122  _def_strlcpy='#undef HAVE_STRLCPY'
3123 fi
3124 echores "$_strlcpy"
3125
3126 echocheck "strlcat()"
3127 cat > $TMPC << EOF
3128 #include <string.h>
3129 int main (void) { char *s = "Hello, world!", t[20]; (void) strlcat(t, s, sizeof( t )); return 0; }
3130 EOF
3131 _strlcat=no
3132 cc_check && _strlcat=yes
3133 if test "$_strlcat" = yes ; then
3134  _def_strlcat='#define HAVE_STRLCAT 1'
3135 else
3136  _def_strlcat='#undef HAVE_STRLCAT'
3137 fi
3138 echores "$_strlcat"
3139
3140 echocheck "fseeko()"
3141 cat > $TMPC << EOF
3142 #include <stdio.h>
3143 int main (void) { int i; i = fseeko(stdin, 0, 0); return 0; }
3144 EOF
3145 _fseeko=no
3146 cc_check && _fseeko=yes
3147 if test "$_fseeko" = yes ; then
3148  _def_fseeko='#define HAVE_FSEEKO 1'
3149 else
3150  _def_fseeko='#undef HAVE_FSEEKO'
3151 fi
3152 echores "$_fseeko"
3153
3154 echocheck "localtime_r()"
3155 cat > $TMPC << EOF
3156 #include <time.h>
3157 int main( void ) { localtime_r(NULL, NULL); }
3158 EOF
3159 _localtime_r=no
3160 cc_check && _localtime_r=yes
3161 if test "$_localtime_r" = yes ; then
3162  _def_localtime_r='#define HAVE_LOCALTIME_R 1'
3163 else
3164  _def_localtime_r='#undef HAVE_LOCALTIME_R'
3165 fi
3166 echores "$_localtime_r"
3167
3168 echocheck "vsscanf()"
3169 cat > $TMPC << EOF
3170 #include <stdarg.h>
3171 int main(void) { vsscanf(0, 0, 0); return 0; }
3172 EOF
3173 _vsscanf=no
3174 cc_check && _vsscanf=yes
3175 if test "$_vsscanf" = yes ; then
3176   _def_vsscanf='#define HAVE_VSSCANF 1'
3177 else
3178   _def_vsscanf='#undef HAVE_VSSCANF'
3179 fi
3180 echores "$_vsscanf"
3181
3182
3183 echocheck "swab()"
3184 cat > $TMPC << EOF
3185 #include <unistd.h>
3186 int main(void) { swab(0, 0, 0); return 0; }
3187 EOF
3188 _swab=no
3189 cc_check && _swab=yes
3190 if test "$_swab" = yes ; then
3191   _def_swab='#define HAVE_SWAB 1'
3192 else
3193   _def_swab='#undef HAVE_SWAB'
3194 fi
3195 echores "$_swab"
3196
3197 echocheck "posix select()"
3198 cat > $TMPC << EOF
3199 #include <stdio.h>
3200 #include <stdlib.h>
3201 #include <sys/types.h>
3202 #include <string.h>
3203 #include <sys/time.h>
3204 #include <unistd.h>
3205 int main(void) {int nfds = 1; fd_set readfds; struct timeval timeout; select(nfds,&readfds,NULL,NULL,&timeout); return 0; }
3206 EOF
3207 _posix_select=no
3208 cc_check && _posix_select=yes
3209 if test "$_posix_select" = no ; then
3210   _def_no_posix_select='#define HAVE_NO_POSIX_SELECT 1'
3211 else
3212   _def_no_posix_select='#undef HAVE_NO_POSIX_SELECT'
3213 fi
3214 echores "$_posix_select"
3215
3216
3217 echocheck "gettimeofday()"
3218 cat > $TMPC << EOF
3219 #include <stdio.h>
3220 #include <sys/time.h>
3221 int main(void) {struct timeval tv_start; gettimeofday(&tv_start, NULL); return 0; }
3222 EOF
3223 _gettimeofday=no
3224 cc_check && _gettimeofday=yes
3225 if test "$_gettimeofday" = yes ; then
3226   _def_gettimeofday='#define HAVE_GETTIMEOFDAY 1'
3227 else
3228   _def_gettimeofday='#undef HAVE_GETTIMEOFDAY'
3229 fi
3230 echores "$_gettimeofday"
3231
3232
3233 echocheck "glob()"
3234 cat > $TMPC << EOF
3235 #include <stdio.h>
3236 #include <glob.h>
3237 int main(void) { glob_t gg; glob("filename",0,NULL,&gg); return 0; }
3238 EOF
3239 _glob=no
3240 cc_check && _glob=yes
3241 if test "$_glob" = yes ; then
3242   _def_glob='#define HAVE_GLOB 1'
3243 else
3244   _def_glob='#undef HAVE_GLOB'
3245 fi
3246 echores "$_glob"
3247
3248
3249 echocheck "sys/sysinfo.h"
3250 cat > $TMPC << EOF
3251 #include <sys/sysinfo.h>
3252 int main(void) {
3253   struct sysinfo s_info;
3254   sysinfo(&s_info);
3255   return 0;
3256 }
3257 EOF
3258 _sys_sysinfo=no
3259 cc_check && _sys_sysinfo=yes
3260 if test "$_sys_sysinfo" = yes ; then
3261   _def_sys_sysinfo='#define HAVE_SYS_SYSINFO_H 1'
3262   _inc_sysinfo='#include <sys/sysinfo.h>'
3263 else
3264   _def_sys_sysinfo='#undef HAVE_SYS_SYSINFO_H'
3265 fi
3266 echores "$_sys_sysinfo"
3267
3268
3269 echocheck "Mac OS X APIs"
3270 if test "$_macosx" = auto ; then
3271     if darwin && ppc; then
3272         _macosx=yes
3273     else
3274         _macosx=no
3275         _def_macosx='#undef MACOSX'
3276         _noaomodules="macosx $_noaomodules"
3277         _novomodules="quartz $_novomodules"
3278     fi
3279 fi
3280 if test "$_macosx" = yes ; then
3281   cat > $TMPC <<EOF
3282 #include <Carbon/Carbon.h>
3283 #include <QuickTime/QuickTime.h>
3284 #include <CoreAudio/CoreAudio.h>
3285 int main(void) {
3286     EnterMovies();
3287     ExitMovies();
3288     CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, false);
3289 }
3290 EOF
3291   if cc_check -framework Carbon -framework QuickTime -framework CoreAudio; then 
3292     _macosx=yes
3293     _macosx_frameworks="-framework Carbon -framework QuickTime -framework CoreAudio -framework AudioUnit -framework AudioToolbox"
3294     _def_macosx='#define MACOSX 1'
3295     _aosrc="$_aosrc ao_macosx.c"
3296     _aomodules="macosx $_aomodules"
3297     _vosrc="$_vosrc vo_quartz.c"
3298     _vomodules="quartz $_vomodules"
3299   else
3300     _macosx=no
3301     _def_macosx='#undef MACOSX'
3302     _noaomodules="macosx $_noaomodules"
3303     _novomodules="quartz $_novomodules"
3304   fi
3305 cat > $TMPC <<EOF
3306 #include <Carbon/Carbon.h>
3307 #include <QuartzCore/CoreVideo.h>
3308 int main(void) {}
3309 EOF
3310         if cc_check -framework Carbon -framework QuartzCore -framework OpenGL; then
3311                 _vosrc="$_vosrc vo_macosx.m"
3312                 _vomodules="macosx $_vomodules"
3313                 _macosx_frameworks="$_macosx_frameworks -framework Cocoa -framework QuartzCore -framework OpenGL"
3314                 _def_macosx_corevideo='#define MACOSX_COREVIDEO 1'
3315                 _macosx_corevideo=yes
3316         else
3317                 _novomodules="macosx $_novomodules"
3318                 _def_macosx_corevideo='#undef MACOSX_COREVIDEO'
3319                 _macosx_corevideo=no
3320         fi
3321 fi
3322 echores "$_macosx"
3323
3324 echocheck "Mac OS X Finder Support"
3325 if test "$_macosx_finder_support" = auto ; then
3326   _macosx_finder_support=$_macosx
3327 fi
3328 if test "$_macosx_finder_support" = yes; then
3329   _def_macosx_finder_support='#define MACOSX_FINDER_SUPPORT 1'
3330   _macosx_finder_support=yes
3331 else
3332   _def_macosx_finder_support='#undef MACOSX_FINDER_SUPPORT'
3333   _macosx_finder_support=no
3334 fi 
3335 echores "$_macosx_finder_support"
3336
3337 echocheck "Mac OS X Bundle file locations"
3338 if test "$_macosx_bundle" = auto ; then
3339   _macosx_bundle=$_macosx_finder_support
3340 fi
3341 if test "$_macosx_bundle" = yes; then
3342   _def_macosx_bundle='#define MACOSX_BUNDLE 1'
3343 else
3344   _def_macosx_bundle='#undef MACOSX_BUNDLE'
3345   _macosx_bundle=no
3346 fi 
3347 echores "$_macosx_bundle"
3348
3349 echocheck "Samba support (libsmbclient)"
3350 if test "$_smbsupport" = yes; then
3351         _ld_smb="-lsmbclient"
3352 fi
3353 if test "$_smbsupport" = auto; then
3354     _smbsupport=no
3355     cat > $TMPC << EOF
3356 #include <libsmbclient.h>
3357 int main(void) { smbc_opendir("smb://"); return 0; }
3358 EOF
3359     if cc_check -lsmbclient ; then 
3360         _smbsupport=yes
3361         _ld_smb="-lsmbclient"
3362     else
3363         if cc_check -lsmbclient $_ld_dl ; then
3364             _smbsupport=yes
3365             _ld_smb="-lsmbclient $_ld_dl"
3366         else
3367             if cc_check -lsmbclient $_ld_dl -lnsl ; then
3368                 _smbsupport=yes
3369                 _ld_smb="-lsmbclient $_ld_dl -lnsl"
3370             else
3371             if cc_check -lsmbclient $_ld_dl -lssl -lnsl ; then
3372                 _smbsupport=yes
3373                 _ld_smb="-lsmbclient $_ld_dl -lssl -lnsl"
3374             fi
3375             fi
3376         fi
3377     fi
3378 fi
3379
3380 if test "$_smbsupport" = yes; then
3381     _def_smbsupport="#define LIBSMBCLIENT"
3382     _inputmodules="smb $_inputmodules"
3383 else
3384     _def_smbsupport="#undef LIBSMBCLIENT"
3385     _noinputmodules="smb $_noinputmodules"
3386 fi
3387 echores "$_smbsupport"
3388
3389
3390 #########
3391 # VIDEO #
3392 #########
3393
3394
3395 echocheck "3dfx"
3396 if test "$_3dfx" = yes ; then
3397   _def_3dfx='#define HAVE_3DFX 1'
3398   _vosrc="$_vosrc vo_3dfx.c"
3399   _vomodules="3dfx $_vomodules"
3400 else
3401   _def_3dfx='#undef HAVE_3DFX'
3402   _novomodules="3dfx $_novomodules"
3403 fi
3404 echores "$_3dfx"
3405
3406
3407 echocheck "tdfxfb"
3408 if test "$_tdfxfb" = yes ; then
3409   _def_tdfxfb='#define HAVE_TDFXFB 1'
3410   _vosrc="$_vosrc vo_tdfxfb.c"
3411   _vomodules="tdfxfb $_vomodules"
3412 else
3413   _def_tdfxfb='#undef HAVE_TDFXFB'
3414   _novomodules="tdfxfb $_novomodules"
3415 fi
3416 echores "$_tdfxfb"
3417
3418 echocheck "tdfxvid"
3419 if test "$_tdfxvid" = yes ; then
3420   _def_tdfxvid='#define HAVE_TDFX_VID 1'
3421   _vosrc="$_vosrc vo_tdfx_vid.c"
3422   _vomodules="tdfx_vid $_vomodules"
3423 else
3424   _def_tdfxvid='#undef HAVE_TDFX_VID'
3425   _novomodules="tdfx_vid $_novomodules"
3426 fi
3427 echores "$_tdfxfb"
3428
3429 echocheck "tga"
3430 if test "$_tga" = yes ; then
3431   _def_tga='#define HAVE_TGA 1'
3432   _vosrc="$_vosrc vo_tga.c"
3433   _vomodules="tga $_vomodules"
3434 else
3435   _def_tga='#undef HAVE_TGA'
3436   _novomodules="tga $_novomodules"
3437 fi
3438 echores "$_tga"
3439
3440 echocheck "DirectFB headers presence"
3441 if test -z "$_inc_directfb" ; then
3442   for I in /usr/include /usr/local/include $_inc_extra; do
3443     if test -d "$I/directfb" && test -f "$I/directfb/directfb.h" ; then
3444       _inc_directfb="-I$I/directfb"
3445       echores "yes (using $_inc_directfb)"
3446       break
3447     fi
3448     if test -d "$I" && test -f "$I/directfb.h" ; then
3449       _inc_directfb="-I$I"
3450       echores "yes (using $_inc_directfb)"
3451       break
3452     fi
3453   done
3454   if test -z "$_inc_directfb" ; then
3455     _directfb=no
3456     echores "not found"
3457   fi
3458 else
3459   echores "yes (using $_inc_directfb)"
3460 fi
3461 if test "$_inc_directfb" = "-I/usr/include" ; then
3462   _inc_directfb=""
3463 fi
3464
3465 echocheck "DirectFB"
3466 if test "$_directfb" = auto ; then
3467   _directfb=no
3468   cat > $TMPC <<EOF
3469 #include <directfb.h>
3470 int main(void) { IDirectFB *foo; return 0; }
3471 EOF
3472   linux && test -c /dev/fb0 && cc_check $_inc_directfb -ldirectfb && _directfb=yes
3473 fi
3474
3475 if test "$_directfb" = yes; then
3476 cat > $TMPC <<EOF
3477 #include <directfb.h>
3478 int main(void) { 
3479   printf ("%i",(directfb_major_version*100+directfb_minor_version)*100+directfb_micro_version);
3480   return 0; 
3481 }
3482 EOF
3483   if cc_check $_inc_directfb -ldirectfb && "$TMPO" >> "$TMPLOG" ; then
3484     _directfb_version=`"$TMPO"`
3485     _def_directfb_version="#define DIRECTFBVERSION $_directfb_version"
3486     if test "$_directfb_version" -ge 913; then
3487         echores "yes ($_directfb_version)"
3488     else
3489         _def_directfb_version='#undef DIRECTFBVERSION'
3490         _directfb=no
3491         echores "no (version >=0.9.13 required)"
3492     fi
3493   else
3494     _directfb=no
3495     echores "no (failed to get version)"
3496   fi
3497 else
3498   echores "$_directfb"
3499 fi
3500
3501 if test "$_directfb" = yes ; then
3502   _def_directfb='#define HAVE_DIRECTFB 1'
3503   if test "$_directfb_version" -ge 913; then
3504     _vosrc="$_vosrc vo_directfb2.c"
3505     _vomodules="directfb $_vomodules"
3506     _ld_directfb='-ldirectfb'
3507   fi
3508
3509   if test "$_directfb_version" -ge 915; then
3510     _vosrc="$_vosrc vo_dfbmga.c"
3511     _vomodules="dfbmga $_vomodules"
3512   fi
3513 else
3514   _def_directfb='#undef HAVE_DIRECTFB'
3515   _novomodules="directfb $_novomodules"
3516   _inc_directfb=""
3517 fi
3518
3519
3520 echocheck "X11 headers presence"
3521 if test -z "$_inc_x11" ; then
3522   for I in /usr/X11/include /usr/X11R6/include /usr/include/X11R6 /usr/include /usr/openwin/include ; do
3523     if test -d "$I/X11" && test -f "$I/X11/Xlib.h" ; then
3524       _inc_x11="-I$I"
3525       echores "yes (using $I)"
3526       break
3527     fi
3528   done
3529   if test -z "$_inc_x11" ; then
3530     _x11=no
3531     echores "not found (check if the dev(el) packages are installed)"
3532   fi
3533 else
3534   echores "yes (using $_inc_x11)"
3535 fi
3536 if test "$_inc_x11" = "-I/usr/include" ; then
3537   _inc_x11=""
3538 fi
3539
3540
3541 echocheck "X11"
3542 if test "$_x11" != no ; then
3543   cat > $TMPC <<EOF
3544 #include <X11/Xlib.h>
3545 #include <X11/Xutil.h>
3546 int main(void) { (void) XCreateWindow(0,0,0,0,0,0,0,0,0,0,0,0); return 0; }
3547 EOF
3548   if test -z "$_x11_paths" ; then
3549     _x11_paths="/usr/X11R6/lib /usr/lib/X11R6 /usr/X11/lib /usr/lib32 /usr/openwin/lib /usr/X11R6/lib64 /usr/lib"
3550   fi
3551   for I in $_x11_paths ; do
3552     _ld_x11="-L$I -lXext -lX11 $_ld_sock"
3553     if netbsd; then
3554       _ld_x11="$_ld_x11 -Wl,-R$I"
3555     fi
3556     if test -d "$I" && cc_check $_inc_x11 $_ld_x11 ; then
3557       _x11=yes
3558       break
3559     fi
3560   done
3561 fi
3562 if test "$_x11" = yes ; then
3563   _def_x11='#define HAVE_X11 1'
3564   _vosrc="$_vosrc x11_common.c vo_x11.c vo_xover.c"
3565   _vomodules="x11 xover $_vomodules"
3566   echores "yes (using $I)"
3567 else
3568   _x11=no
3569   _def_x11='#undef HAVE_X11'
3570   _inc_x11=''
3571   _ld_x11=''
3572   _novomodules="x11 $_novomodules"
3573   echores "no (check if the dev(el) packages are installed)"
3574 fi
3575
3576
3577 echocheck "DPMS"
3578 _xdpms3=no
3579 if test "$_x11" = yes ; then
3580   cat > $TMPC <<EOF
3581 #include <X11/Xmd.h>
3582 #include <X11/Xlib.h>
3583 #include <X11/Xutil.h>
3584 #include <X11/Xatom.h>
3585 #include <X11/extensions/dpms.h>
3586 int main(void) {
3587   (void) DPMSQueryExtension(0, 0, 0);
3588 }
3589 EOF
3590   cc_check $_inc_x11 -lXdpms $_ld_x11 && _xdpms3=yes
3591 fi
3592 _xdpms4=no
3593 if test "$_x11" = yes ; then
3594   cat > $TMPC <<EOF
3595 #include <X11/Xlib.h>
3596 #include <X11/extensions/dpms.h>
3597 int main(void) {
3598   (void) DPMSQueryExtension(0, 0, 0);
3599 }
3600 EOF
3601   cc_check $_inc_x11 $_ld_x11 && _xdpms4=yes
3602 fi
3603 if test "$_xdpms4" = yes ; then
3604   _def_xdpms='#define HAVE_XDPMS 1'
3605   echores "yes (using Xdpms 4)"
3606 elif test "$_xdpms3" = yes ; then
3607   _def_xdpms='#define HAVE_XDPMS 1'
3608   _ld_x11="-lXdpms $_ld_x11"
3609   echores "yes (using Xdpms 3)"
3610 else
3611   _def_xdpms='#undef HAVE_XDPMS'
3612   echores "no"
3613 fi
3614
3615
3616 echocheck "Xv"
3617 if test "$_x11" = yes && test "$_xv" != no ; then
3618   cat > $TMPC <<EOF
3619 #include <X11/Xlib.h>
3620 #include <X11/extensions/Xvlib.h>
3621 int main(void) {
3622   (void) XvGetPortAttribute(0, 0, 0, 0);
3623   (void) XvQueryPortAttributes(0, 0, 0);
3624   return 0; }
3625 EOF
3626   _xv=no
3627   cc_check $_inc_x11 -lXv $_ld_x11 && _xv=yes
3628 else
3629   _xv=no
3630 fi
3631 if test "$_xv" = yes ; then
3632   _def_xv='#define HAVE_XV 1'
3633   _ld_xv='-lXv'
3634   _vosrc="$_vosrc vo_xv.c"
3635   _vomodules="xv $_vomodules"
3636 else
3637   _def_xv='#undef HAVE_XV'
3638   _novomodules="xv $_novomodules"
3639 fi
3640 echores "$_xv"
3641
3642
3643 echocheck "XvMC"
3644 if test "$_x11" = yes && test "$_xv" = yes && test "$_xvmc" != no ; then
3645   _xvmc=no
3646   cat > $TMPC <<EOF
3647 #include <X11/Xlib.h>
3648 #include <X11/extensions/Xvlib.h>
3649 #include <X11/extensions/XvMClib.h>
3650 int main(void) { 
3651   (void) XvMCQueryExtension(0,0,0);
3652   (void) XvMCCreateContext(0,0,0,0,0,0,0);
3653   return 0; }
3654 EOF
3655   cc_check $_inc_x11 -lXvMC -l$_xvmclib $_ld_xv $_ld_x11 && _xvmc=yes
3656 fi
3657 if test "$_xvmc" = yes ; then
3658   _def_xvmc='#define HAVE_XVMC 1'
3659   _ld_xvmc="-lXvMC -l$_xvmclib"
3660   _vosrc="$_vosrc vo_xvmc.c"
3661   _vomodules="xvmc $_vomodules"
3662 else
3663   _def_xvmc='#undef HAVE_XVMC'
3664   _novomodules="xvmc $_novomodules"
3665 fi
3666 echores "$_xvmc"
3667
3668
3669 echocheck "Xinerama"
3670 if test "$_x11" = yes && test "$_xinerama" != no ; then
3671   cat > $TMPC <<EOF
3672 #include <X11/Xlib.h>
3673 #include <X11/extensions/Xinerama.h>
3674 int main(void) { (void) XineramaIsActive(0); return 0; }
3675 EOF
3676   _xinerama=no
3677   cc_check $_inc_x11 -lXinerama $_ld_x11 && _xinerama=yes
3678 else
3679   _xinerama=no
3680 fi
3681 if test "$_xinerama" = yes ; then
3682   _def_xinerama='#define HAVE_XINERAMA 1'
3683   _ld_xinerama='-lXinerama'
3684 else
3685   _def_xinerama='#undef HAVE_XINERAMA'
3686 fi
3687 echores "$_xinerama"
3688
3689
3690 # Note: the -lXxf86vm library is the VideoMode extension and though it's not
3691 # needed for DGA, AFAIK every distribution packages together with DGA stuffs
3692 # named 'X extensions' or something similar.
3693 # This check may be useful for future mplayer versions (to change resolution)
3694 # If you run into problems, remove '-lXxf86vm'.
3695 echocheck "Xxf86vm"
3696 if test "$_x11" = yes && test "$_vm" = auto ; then
3697   cat > $TMPC <<EOF
3698 #include <X11/Xlib.h>
3699 #include <X11/extensions/xf86vmode.h>
3700 int main(void) { (void) XF86VidModeQueryExtension(0, 0, 0); return 0; }
3701 EOF
3702   _vm=no
3703   cc_check $_inc_x11 -lXxf86vm $_ld_x11 && _vm=yes
3704 fi
3705 if test "$_vm" = yes ; then
3706   _def_vm='#define HAVE_XF86VM 1'
3707   _ld_vm='-lXxf86vm'
3708 else
3709   _def_vm='#undef HAVE_XF86VM'
3710 fi
3711 echores "$_vm"
3712
3713 # Check for the presence of special keycodes, like audio control buttons
3714 # that XFree86 might have.  Used to be bundled with the xf86vm check, but
3715 # has nothing to do with xf86vm and XFree 3.x has xf86vm but does NOT
3716 # have these new keycodes.
3717 echocheck "XF86keysym"
3718 if test "$_xf86keysym" = auto; then
3719   _xf86keysym=no
3720   if test "$_x11" = yes ; then
3721     cat > $TMPC <<EOF
3722 #include <X11/Xlib.h>
3723 #include <X11/XF86keysym.h>
3724 int main(void) { return XF86XK_AudioPause; }
3725 EOF
3726     cc_check $_inc_x11 $_ld_x11 && _xf86keysym=yes
3727   fi
3728 fi
3729 if test "$_xf86keysym" = yes ; then
3730   _def_xf86keysym='#define HAVE_XF86XK 1'
3731 else
3732   _def_xf86keysym='#undef HAVE_XF86XK'
3733 fi
3734 echores "$_xf86keysym"
3735
3736 echocheck "DGA"
3737 if test "$_x11" = no ; then
3738   _dga=no
3739 fi
3740 # Version 2 is preferred to version 1 if available
3741 if test "$_dga" = auto ; then
3742   cat > $TMPC << EOF
3743 #include <X11/Xlib.h>
3744 #include <X11/extensions/xf86dga.h>
3745 int main (void) { (void) XF86DGASetViewPort(0, 0, 0, 0); return 0; }
3746 EOF
3747   _dga=no
3748   cc_check $_inc_x11 -lXxf86dga -lXxf86vm $_ld_x11 && _dga=1
3749
3750   cat > $TMPC << EOF
3751 #include <X11/Xlib.h>
3752 #include <X11/extensions/xf86dga.h>
3753 int main (void) { (void) XDGASetViewport(0, 0, 0, 0, 0); return 0; }
3754 EOF
3755   cc_check $_inc_x11 -lXxf86dga $_ld_x11 && _dga=2
3756 fi
3757
3758 _def_dga='#undef HAVE_DGA'
3759 _def_dga2='#undef HAVE_DGA2'
3760 if test "$_dga" = 1 ; then
3761   _def_dga='#define HAVE_DGA 1'
3762   _ld_dga='-lXxf86dga'
3763   _vosrc="$_vosrc vo_dga.c"
3764   _vomodules="dga $_vomodules"
3765   echores "yes (using DGA 1.0)"
3766 elif test "$_dga" = 2 ; then
3767   _def_dga='#define HAVE_DGA 1'
3768   _def_dga2='#define HAVE_DGA2 1'
3769   _ld_dga='-lXxf86dga'
3770   _vosrc="$_vosrc vo_dga.c"
3771   _vomodules="dga $_vomodules"
3772   echores "yes (using DGA 2.0)"
3773 elif test "$_dga" = no ; then
3774   echores "no"
3775   _novomodules="dga $_novomodules"
3776 else
3777   die "DGA version must be 1 or 2"
3778 fi
3779
3780
3781 echocheck "OpenGL"
3782 #Note: this test is run even with --enable-gl since we autodetect $_ld_gl
3783 if (test "$_x11" = yes || win32) && test "$_gl" != no ; then
3784   cat > $TMPC << EOF
3785 #include <GL/gl.h>
3786 int main(void) { return 0; }
3787 EOF
3788   _gl=no
3789   if cc_check $_inc_x11 $_ld_x11 -lGL $_ld_lm ; then
3790     _gl=yes
3791     _ld_gl="-lGL"
3792   elif cc_check $_inc_x11 $_ld_x11 -lGL $_ld_lm $_ld_pthread ; then
3793     _gl=yes
3794     _ld_gl="-lGL $_ld_pthread"
3795   elif cc_check -lopengl32 ; then
3796     _gl=yes
3797     _gl_win32=yes
3798     _ld_gl="-lopengl32 -lgdi32"
3799   fi
3800 else
3801   _gl=no
3802 fi
3803 if test "$_gl" = yes ; then
3804   _def_gl='#define HAVE_GL 1'
3805   if test "$_gl_win32" = yes ; then
3806     _def_gl_win32='#define GL_WIN32 1' 
3807     _vosrc="$_vosrc vo_gl2.c w32_common.c gl_common.c"
3808   else
3809     _vosrc="$_vosrc vo_gl.c vo_gl2.c gl_common.c"
3810   fi
3811   _vomodules="opengl $_vomodules"
3812 else
3813   _def_gl='#undef HAVE_GL'
3814   _def_gl_win32='#undef GL_WIN32'
3815   _novomodules="opengl $_novomodules"
3816 fi
3817 echores "$_gl"
3818
3819
3820 echocheck "/dev/mga_vid"
3821 if test "$_mga" = auto ; then
3822   _mga=no
3823   test -c /dev/mga_vid && _mga=yes
3824 fi
3825 if test "$_mga" = yes ; then
3826   _def_mga='#define HAVE_MGA 1'
3827   _vosrc="$_vosrc vo_mga.c"
3828   _vomodules="mga $_vomodules"
3829 else
3830   _def_mga='#undef HAVE_MGA'
3831   _novomodules="mga $_novomodules"
3832 fi
3833 echores "$_mga"
3834
3835
3836 # echocheck "syncfb"
3837 # _syncfb=no
3838 # test "$_mga" = yes && _syncfb=yes
3839 # if test "$_syncfb" = yes ; then
3840 #   _def_syncfb='#define HAVE_SYNCFB 1'
3841 #   _vosrc="$_vosrc vo_syncfb.c"
3842 # else
3843 #   _def_syncfb='#undef HAVE_SYNCFB'
3844 # fi
3845 # echores "$_syncfb"
3846
3847
3848 echocheck "xmga"
3849 if test "$_xmga" = auto ; then
3850   _xmga=no
3851   test "$_x11" = yes && test "$_mga" = yes && _xmga=yes
3852 fi
3853 if test "$_xmga" = yes ; then
3854   _def_xmga='#define HAVE_XMGA 1'
3855   _vosrc="$_vosrc vo_xmga.c"
3856   _vomodules="xmga $_vomodules"
3857 else
3858   _def_xmga='#undef HAVE_XMGA'
3859   _novomodules="xmga $_novomodules"
3860 fi
3861 echores "$_xmga"
3862
3863
3864 echocheck "GGI"
3865 if test "$_ggi" = auto ; then
3866   cat > $TMPC << EOF
3867 #include <ggi/ggi.h>
3868 int main(void) { return 0; }
3869 EOF
3870   _ggi=no
3871   cc_check -lggi && _ggi=yes
3872 fi
3873 if test "$_ggi" = yes ; then
3874   _def_ggi='#define HAVE_GGI 1'
3875   _ld_ggi='-lggi'
3876   _vosrc="$_vosrc vo_ggi.c"
3877   _vomodules="ggi $_vomodules"
3878 else
3879   _def_ggi='#undef HAVE_GGI'
3880   _novomodules="ggi $_novomodules"
3881 fi
3882 echores "$_ggi"
3883
3884 echocheck "GGI extension: libggiwmh"
3885 if test "$_ggiwmh" = auto ; then
3886   _ggiwmh=no
3887   cat > $TMPC << EOF
3888 #include <ggi/ggi.h>
3889 #include <ggi/wmh.h>
3890 int main(void) { return 0; }
3891 EOF
3892   cc_check -lggi -lggiwmh && _ggiwmh=yes
3893 fi
3894 # needed to get right output on obscure combination
3895 # like --disable-ggi --enable-ggiwmh
3896 if test "$_ggi" = yes && test "$_ggiwmh" = yes ; then
3897   _def_ggiwmh='#define HAVE_GGIWMH 1'
3898   _ld_ggi="$_ld_ggi -lggiwmh"
3899 else
3900   _ggiwmh=no
3901   _def_ggiwmh='#undef HAVE_GGIWMH'
3902 fi
3903 echores "$_ggiwmh"
3904
3905
3906 echocheck "AA"
3907 if test "$_aa" = auto ; then
3908   cat > $TMPC << EOF
3909 #include <aalib.h>
3910 int main(void) { (void) aa_init(0, 0, 0); return 0; }
3911 EOF
3912   _aa=no
3913   if cc_check -laa ; then
3914     _aa=yes
3915     _ld_aa="-laa"
3916   elif cc_check $_ld_x11 -laa ; then
3917     _aa=yes
3918     _ld_aa="$_ld_x11 -laa"
3919   fi
3920 fi
3921 if test "$_aa" = yes ; then
3922   _def_aa='#define HAVE_AA 1'
3923   if cygwin ; then
3924     _ld_aa=`aalib-config --libs | cut -d " " -f 2,5,6`
3925   fi
3926   _vosrc="$_vosrc vo_aa.c"
3927   _vomodules="aa $_vomodules"
3928 else
3929   _def_aa='#undef HAVE_AA'
3930   _novomodules="aa $_novomodules"
3931 fi
3932 echores "$_aa"
3933
3934
3935 echocheck "CACA"
3936 if test "$_caca" = auto ; then
3937   _caca=no
3938   if ( caca-config --version ) >> "$TMPLOG" 2>&1 ; then
3939   cat > $TMPC << EOF
3940 #include <caca.h>
3941 int main(void) { (void) caca_init(); return 0; }
3942 EOF
3943   cc_check `caca-config --libs` && _caca=yes
3944   fi
3945 fi
3946 if test "$_caca" = yes ; then
3947   _def_caca='#define HAVE_CACA 1'
3948   _inc_caca=`caca-config --cflags`
3949   _ld_caca=`caca-config --libs`
3950   _vosrc="$_vosrc vo_caca.c"
3951   _vomodules="caca $_vomodules"
3952 else
3953   _def_caca='#undef HAVE_CACA'
3954   _novomodules="caca $_novomodules"
3955 fi
3956 echores "$_caca"
3957
3958
3959 echocheck "SVGAlib"
3960 if test "$_svga" = auto ; then
3961   cat > $TMPC << EOF
3962 #include <vga.h>
3963 #include <vgagl.h>
3964 int main(void) { return 0; }
3965 EOF
3966   _svga=no
3967   cc_check  -lvgagl -lvga $_ld_lm && _svga=yes
3968 fi
3969 if test "$_svga" = yes ; then
3970   _def_svga='#define HAVE_SVGALIB 1'
3971   _ld_svga="-lvgagl -lvga $_ld_lm"
3972   _vosrc="$_vosrc vo_svga.c"
3973   _vomodules="svga $_vomodules"
3974 else
3975   _def_svga='#undef HAVE_SVGALIB'
3976   _novomodules="svga $_novomodules"
3977 fi
3978 echores "$_svga"
3979
3980
3981 echocheck "FBDev"
3982 if test "$_fbdev" = auto ; then
3983   _fbdev=no
3984   linux && test -c /dev/fb0 && _fbdev=yes
3985 fi
3986 if test "$_fbdev" = yes ; then
3987   _def_fbdev='#define HAVE_FBDEV 1'
3988   _vosrc="$_vosrc vo_fbdev.c vo_fbdev2.c"
3989   _vomodules="fbdev $_vomodules"
3990 else
3991   _def_fbdev='#undef HAVE_FBDEV'
3992   _novomodules="fbdev $_novomodules"
3993 fi
3994 echores "$_fbdev"
3995
3996
3997
3998 echocheck "DVB"
3999 if test "$_dvb" != no ; then
4000   _dvb=no
4001 cat >$TMPC << EOF
4002 #include <sys/poll.h>
4003 #include <sys/ioctl.h>
4004 #include <stdio.h>
4005 #include <time.h>
4006 #include <unistd.h>
4007
4008 #include <ost/dmx.h>
4009 #include <ost/frontend.h>
4010 #include <ost/sec.h>
4011 #include <ost/video.h>
4012 #include <ost/audio.h>
4013 int main(void) {return 0;}
4014 EOF
4015     if cc_check ; then
4016         _dvb=yes
4017         echores "yes"
4018     else
4019       for I in "$_inc_dvb" "-I/usr/src/DVB/ost/include" ; do
4020         if cc_check "$I" ; then
4021           _dvb=yes
4022           _inc_dvb="$I"
4023           echores "yes (using $_inc_dvb)"
4024           break
4025         fi
4026       done
4027       test "$_dvb" = no && echores "no (specify path to DVB/ost/include with --with-dvbincdir=DIR)"
4028     fi
4029 else
4030     echores "no"
4031 fi
4032 if test "$_dvb" = yes ; then
4033   _def_dvb='#define HAVE_DVB 1'
4034   _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4035   _aomodules="mpegpes(dvb) $_aomodules"
4036   _vomodules="mpegpes(dvb) $_vomodules"
4037 fi
4038 if test "$_dvbhead" != no ; then
4039   echocheck "DVB HEAD"
4040   if test "$_dvbhead" != no ; then
4041     _dvbhead=no
4042
4043 cat >$TMPC << EOF
4044 #include <sys/poll.h>
4045 #include <sys/ioctl.h>
4046 #include <stdio.h>
4047 #include <time.h>
4048 #include <unistd.h>
4049
4050 #include <linux/dvb/dmx.h>
4051 #include <linux/dvb/frontend.h>
4052 #include <linux/dvb/video.h>
4053 #include <linux/dvb/audio.h>
4054 int main(void) {return 0;}
4055 EOF
4056     if cc_check ; then
4057       _dvbhead=yes
4058       echores "yes"
4059     else
4060       for I in "$_inc_dvb" "-I/usr/src/DVB/include" ; do
4061         if cc_check "$I" ; then
4062           _dvbhead=yes
4063           _inc_dvb="$I"
4064           echores "yes (using $_inc_dvb)"
4065           break
4066         fi
4067       done
4068       test "$_dvbhead" = no && echores "no (specify path to DVB/include (HEAD Version) with --with-dvbincdir=DIR)"
4069     fi
4070   else
4071     echores "no"
4072   fi
4073   if test "$_dvbhead" = yes ; then
4074     _def_dvb='#define HAVE_DVB_HEAD 1'
4075     _def_dvb_in='#define HAS_DVBIN_SUPPORT 1'
4076     _aomodules="mpegpes(dvb) $_aomodules"
4077     _vomodules="mpegpes(dvb) $_vomodules"
4078   fi
4079 fi
4080 if test "$_dvbhead" = no && test "$_dvb" = no ; then
4081   _def_dvb='#undef HAVE_DVB'
4082   _def_dvb_in='#undef HAS_DVBIN_SUPPORT '
4083   _aomodules="mpegpes(file) $_aomodules"
4084   _vomodules="mpegpes(file) $_vomodules"
4085 fi
4086
4087 if test "$_dvb" = yes || test "$_dvbhead" = yes ; then
4088     _dvbin=yes
4089     _inputmodules="dvb $_inputmodules"
4090 else
4091     _dvbin=no
4092     _noinputmodules="dvb $_noinputmodules"
4093 fi
4094
4095 echocheck "PNG support"
4096 if test "$_png" = auto ; then
4097   _png=no
4098   if irix ; then
4099     # Don't check for -lpng on irix since it has its own libpng
4100     # incompatible with the GNU libpng
4101     echores "disabled on irix (not GNU libpng)"
4102   else
4103 cat > $TMPC << EOF
4104 #include <png.h>
4105 #include <string.h>
4106 int main(void) {
4107   printf("png.h : %s\n", PNG_LIBPNG_VER_STRING);
4108   printf("libpng: %s\n", png_libpng_ver);
4109   return (strcmp(PNG_LIBPNG_VER_STRING, png_libpng_ver));
4110 }
4111 EOF
4112     if cc_check -lpng -lz $_ld_lm ; then
4113       if "$TMPO" >> "$TMPLOG" ; then
4114         _png=yes
4115         echores yes
4116       else
4117         echores "no (mismatch of library and header versions)"
4118       fi
4119     else
4120       echores no
4121     fi
4122   fi
4123 else
4124   echores "$_png"
4125 fi
4126 if test "$_png" = yes ; then
4127   _def_png='#define HAVE_PNG 1'
4128   _ld_png='-lpng -lz'
4129   _vosrc="$_vosrc vo_png.c"
4130   _vomodules="png $_vomodules"
4131   _mkf_png="yes"
4132 else
4133   _def_png='#undef HAVE_PNG'
4134   _novomodules="png $_novomodules"
4135   _mkf_png="no"
4136 fi
4137
4138 echocheck "JPEG support"
4139 if test "$_jpg" = auto ; then
4140   _jpg=no
4141 cat > $TMPC << EOF
4142 #include <stdio.h>
4143 #include <stdlib.h>
4144 #include <setjmp.h>
4145 #include <string.h>
4146 #include <jpeglib.h>
4147 int main(void) {
4148   return 0;
4149 }
4150 EOF
4151     if cc_check -ljpeg $_ld_lm ; then
4152       if "$TMPO" >> "$TMPLOG" ; then
4153         _jpg=yes
4154       fi
4155     fi
4156 fi
4157 echores "$_jpg"
4158
4159 if test "$_jpg" = yes ; then
4160   _def_jpg='#define HAVE_JPEG 1'
4161   _vosrc="$_vosrc vo_jpeg.c"
4162   _vomodules="jpeg $_vomodules"
4163   _ld_jpg="-ljpeg"
4164   _mkf_jpg="yes"
4165 else
4166   _def_jpg='#undef HAVE_JPEG'
4167   _novomodules="jpeg $_novomodules"
4168   _mkf_jpg="no"
4169 fi
4170
4171
4172
4173 echocheck "PNM support"
4174 if test "$_pnm" = yes; then
4175   _def_pnm="#define HAVE_PNM"
4176   _vosrc="$_vosrc vo_pnm.c"
4177   _vomodules="pnm $_vomodules"
4178 else
4179   _def_pnm="#undef HAVE_PNM"
4180   _novomodules="pnm $_novomodules"
4181 fi
4182 echores "$_pnm"
4183
4184
4185
4186 echocheck "md5sum support"
4187 if test "$_md5sum" = yes; then
4188   _def_md5sum="#define HAVE_MD5SUM"
4189   _vosrc="$_vosrc vo_md5sum.c md5sum.c"
4190   _vomodules="md5sum $_vomodules"
4191 else
4192   _def_md5sum="#undef HAVE_MD5SUM"
4193   _novomodules="md5sum $_novomodules"
4194 fi
4195 echores "$_md5sum"
4196
4197
4198
4199 echocheck "GIF support"
4200 # This is to appease people who want to force gif support.
4201 # If it is forced to yes, then we still do checks to determine
4202 # which gif library to use.
4203 if test "$_gif" = yes ; then
4204   _force_gif=yes
4205   _gif=auto
4206 fi
4207
4208 if test "$_gif" = auto ; then
4209   _gif=no
4210 cat > $TMPC << EOF
4211 #include <gif_lib.h>
4212 int main(void) {
4213   return 0;
4214 }
4215 EOF
4216   if cc_check -lungif && "$TMPO" >> "$TMPLOG" ; then
4217     _gif=yes
4218     _ld_gif="-lungif"
4219   elif cc_check -lungif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
4220     _gif=yes
4221     _ld_gif="-lungif $_ld_x11"
4222   elif cc_check -lgif && "$TMPO" >> "$TMPLOG" ; then
4223     _gif=yes
4224     _ld_gif="-lgif"
4225   elif cc_check -lgif $_ld_x11 && "$TMPO" >> "$TMPLOG" ; then
4226     _gif=yes
4227     _ld_gif="-lgif $_ld_x11"
4228   fi
4229 fi
4230
4231 # If no library was found, and the user wants support forced,
4232 # then we force it on with libgif, as this is the safest
4233 # assumption IMHO.  (libungif & libregif both create symbolic
4234 # links to libgif.  We also assume that no x11 support is needed,
4235 # because if you are forcing this, then you _should_ know what
4236 # you are doing.  [ Besides, package maintainers should never
4237 # have compiled x11 deps into libungif in the first place. ] )
4238 # </rant>
4239 #   --Joey
4240 if test "$_force_gif" = yes && test "$_gif" = no ; then
4241   _gif=yes
4242   _ld_gif="-lgif"
4243 fi
4244
4245 if test "$_gif" = yes ; then
4246   _def_gif='#define HAVE_GIF 1'
4247   _vosrc="$_vosrc vo_gif89a.c"
4248   _codecmodules="gif $_codecmodules"
4249   _vomodules="gif89a $_vomodules"
4250   _mkf_gif="yes"
4251   _gif="yes (old version, some encoding functions disabled)"
4252   _def_gif_4='#undef HAVE_GIF_4'
4253
4254   cat > $TMPC << EOF
4255 #include <signal.h>
4256 #include <gif_lib.h>
4257 void catch() { exit(1); }
4258 int main(void) {
4259   signal(SIGSEGV, catch);  // catch segfault
4260   printf("EGifPutExtensionFirst is at address %p\n", EGifPutExtensionFirst);
4261   EGifSetGifVersion("89a");   // this will segfault a buggy gif lib.
4262   return 0;
4263 }
4264 EOF
4265   if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
4266     _def_gif_4='#define HAVE_GIF_4 1'
4267     _gif="yes"
4268   fi
4269 else
4270   _def_gif='#undef HAVE_GIF'
4271   _def_gif_4='#undef HAVE_GIF_4'
4272   _novomodules="gif89a $_novomodules"
4273   _nocodecmodules="gif $_nocodecmodules"
4274   _mkf_gif="no"
4275 fi
4276 echores "$_gif"
4277
4278
4279 case "$_gif" in yes*)
4280   echocheck "broken giflib workaround"
4281   _def_gif_tvt_hack='#define HAVE_GIF_TVT_HACK 1'
4282
4283   cat > $TMPC << EOF
4284 #include <gif_lib.h>
4285 int main(void) {
4286   GifFileType gif;
4287   printf("UserData is at address %p\n", gif.UserData);
4288   return 0;
4289 }
4290 EOF
4291   if cc_check "$_ld_gif" && ( "$TMPO" ) >>"$TMPLOG" 2>&1 ; then
4292     _def_gif_tvt_hack='#undef HAVE_GIF_TVT_HACK'
4293     echores "disabled"
4294   else
4295     echores "enabled"
4296   fi
4297   ;;
4298 esac
4299
4300
4301 echocheck "VESA support"
4302 if test "$_vesa" = auto ; then
4303 if x86 && linux ; then
4304   _vesa=no
4305   cat > $TMPC << EOF
4306 #include <sys/io.h>
4307 int main(void) { return 0; }
4308 EOF
4309   cc_check && _vesa=yes
4310 fi
4311 fi
4312 if test "$_vesa" = yes ; then
4313   _def_vesa='#define HAVE_VESA 1'
4314   _vosrc="$_vosrc vo_vesa.c vesa_lvo.c"
4315   _vomodules="vesa $_vomodules"
4316   echores "yes"
4317 else
4318   _def_vesa='#undef HAVE_VESA'
4319   echores "no (not supported on this OS/architecture)"
4320   _novomodules="vesa $_novomodules"
4321 fi
4322
4323 #################
4324 # VIDEO + AUDIO #
4325 #################
4326
4327
4328 echocheck "SDL"
4329 if test -z "$_sdlconfig" ; then
4330   if ( sdl-config --version ) >>"$TMPLOG" 2>&1 ; then
4331     _sdlconfig="sdl-config"
4332   elif ( sdl11-config --version ) >>"$TMPLOG" 2>&1 ; then
4333     _sdlconfig="sdl11-config"
4334   else
4335     _sdlconfig=false
4336   fi
4337 fi
4338 if test "$_sdl" = auto || test "$_sdl" = yes ; then
4339   cat > $TMPC << EOF
4340 #include <SDL.h>
4341 int main(int argc, char *argv[]) { return 0; }
4342 EOF
4343   _sdl=no
4344   if "$_sdlconfig" --version >>"$TMPLOG" 2>&1 ; then
4345     if cc_check `$_sdlconfig --cflags` `$_sdlconfig --libs` >>"$TMPLOG" 2>&1 ; then
4346       _sdlversion=`$_sdlconfig --version | sed 's/[^0-9]//g'`
4347         if test "$_sdlversion" -gt 116 ; then
4348           if test "$_sdlversion" -lt 121 ; then
4349             _def_sdlbuggy='#define BUGGY_SDL'
4350           else
4351             _def_sdlbuggy='#undef BUGGY_SDL'
4352           fi
4353           _sdl=yes
4354         else
4355           _sdl=outdated
4356         fi
4357      fi
4358   fi
4359 fi
4360 if test "$_sdl" = yes ; then
4361   _def_sdl='#define HAVE_SDL 1'
4362   if cygwin ; then
4363     _ld_sdl=`$_sdlconfig --libs | cut -d " " -f 1,4,6 | sed s/no-cygwin/cygwin/`
4364     _inc_sdl=`$_sdlconfig --cflags | cut -d " " -f 1,5,6 | sed s/no-cygwin/cygwin/`
4365   elif mingw32 ; then
4366     _ld_sdl=`$_sdlconfig --libs | sed s/-mwindows//`
4367     _inc_sdl=`$_sdlconfig --cflags | sed s/-Dmain=SDL_main//`
4368   else
4369     _ld_sdl=`$_sdlconfig --libs`
4370     _inc_sdl=`$_sdlconfig --cflags`
4371   fi
4372   _vosrc="$_vosrc vo_sdl.c"
4373   _vomodules="sdl $_vomodules"
4374   _aosrc="$_aosrc ao_sdl.c"
4375   _aomodules="sdl $_aomodules"
4376   echores "yes (using $_sdlconfig)"
4377 else
4378   _def_sdl='#undef HAVE_SDL'
4379   _novomodules="sdl $_novomodules"
4380   _noaomodules="sdl $_noaomodules"
4381   echores "no"
4382 fi
4383
4384 echocheck "Windows waveout"
4385 if test "$_win32waveout" = auto ; then
4386   cat > $TMPC << EOF
4387 #include <windows.h>
4388 #include <mmsystem.h>
4389 int main(void) { return 0; }
4390 EOF
4391   _win32waveout=no
4392   cc_check -lwinmm && _win32waveout=yes
4393 fi
4394 if test "$_win32waveout" = yes ; then
4395   _def_win32waveout='#define HAVE_WIN32WAVEOUT 1'
4396   _ld_win32libs="-lwinmm $_ld_win32libs"
4397   _aosrc="$_aosrc ao_win32.c"
4398   _aomodules="win32 $_aomodules"
4399 else
4400   _def_win32waveout='#undef HAVE_WIN32WAVEOUT'
4401   _noaomodules="win32 $_noaomodules"
4402 fi
4403 echores "$_win32waveout"
4404
4405 echocheck "Directx"
4406 if test "$_directx" = auto ; then
4407   cat > $TMPC << EOF
4408 #include <windows.h>
4409 #include <ddraw.h>
4410 #include <dsound.h>
4411 int main(void) { return 0; }
4412 EOF
4413   _directx=no
4414   cc_check -lgdi32 && _directx=yes
4415 fi
4416 if test "$_directx" = yes ; then
4417   _def_directx='#define HAVE_DIRECTX 1'
4418   _ld_win32libs="-lgdi32 $_ld_win32libs"
4419   _vosrc="$_vosrc vo_directx.c"
4420   _vomodules="directx $_vomodules"
4421   _aosrc="$_aosrc ao_dsound.c"
4422   _aomodules="dsound $_aomodules"
4423 else
4424   _def_directx='#undef HAVE_DIRECTX'
4425   _novomodules="directx $_novomodules"
4426   _noaomodules="dsound $_noaomodules"
4427 fi
4428 echores "$_directx"
4429
4430 echocheck "NAS"
4431 if test "$_nas" = auto || test "$_nas" = yes ; then
4432   cat > $TMPC << EOF
4433 #include <audio/audiolib.h>
4434 int main(void) { return 0; }
4435 EOF
4436   _nas=no
4437   cc_check -laudio $_inc_x11 -lXt $_ld_x11 $_ld_lm && _nas=yes
4438 fi
4439 if test "$_nas" = yes ; then
4440   _def_nas='#define HAVE_NAS 1'
4441   _ld_nas="-laudio -lXt $_ld_x11"
4442   _aosrc="$_aosrc ao_nas.c"
4443   _aomodules="nas $_aomodules"
4444 else
4445   _noaomodules="nas $_noaomodules"
4446   _def_nas='#undef HAVE_NAS'
4447 fi
4448 echores "$_nas"
4449
4450 echocheck "DXR2"
4451 if test "$_dxr2" = auto; then
4452   _dxr2=no
4453   for _inc_dxr2 in "$_inc_dxr2" \
4454                    "-I/usr/local/include/dxr2" \
4455                    "-I/usr/include/dxr2"; do
4456     cat > $TMPC << EOF
4457 #include <dxr2ioctl.h>
4458 int main(void) { return 0; }
4459 EOF
4460     cc_check $_inc_dxr2 && _dxr2=yes && break
4461   done
4462 fi
4463 if test "$_dxr2" = yes; then
4464   _def_dxr2='#define HAVE_DXR2 1'
4465   _vosrc="$_vosrc vo_dxr2.c"
4466   _aosrc="$_aosrc ao_dxr2.c"
4467   _aomodules="dxr2 $_aomodules"
4468   _vomodules="dxr2 $_vomodules"
4469   echores "yes (using $_inc_dxr2)"
4470 else
4471   _def_dxr2='#undef HAVE_DXR2'
4472   _noaomodules="dxr2 $_noaomodules"
4473   _novomodules="dxr2 $_novomodules"
4474   _inc_dxr2=""
4475   echores "no"
4476 fi
4477
4478 echocheck "DXR3/H+"
4479 if test "$_dxr3" = auto ; then
4480   cat > $TMPC << EOF
4481 #include <linux/em8300.h>
4482 int main(void) { return 0; }
4483 EOF
4484   _dxr3=no
4485   cc_check && _dxr3=yes
4486 fi
4487 if test "$_dxr3" = yes ; then
4488   _def_dxr3='#define HAVE_DXR3 1'
4489   _vosrc="$_vosrc vo_dxr3.c"
4490   _vomodules="dxr3 $_vomodules"
4491 else
4492   _def_dxr3='#undef HAVE_DXR3'
4493   _novomodules="dxr3 $_novomodules"
4494   if test "$_mp1e" = auto ; then
4495     # we don't need mp1e
4496     _mp1e=no
4497   fi
4498 fi
4499 echores "$_dxr3"
4500
4501 echocheck "libmp1e"
4502 if test "$_mmx" = no ; then
4503   # mp1e REQUIRES mmx!
4504   _mp1e=no
4505 fi
4506 if test "$_mp1e" != no ; then
4507   _mp1e=yes
4508   _def_mp1e='#define USE_MP1E'
4509   _ld_mp1e='libmp1e/libmp1e.a'
4510   _dep_mp1e='libmp1e/libmp1e.a'
4511 else
4512   _mp1e=no
4513   _def_mp1e='#undef USE_MP1E'
4514   _ld_mp1e=""
4515   _dep_mp1e=''
4516 fi
4517 echores "$_mp1e"
4518
4519
4520 echocheck "libfame"
4521 if test "$_fame" = auto ; then
4522   _fame=no
4523   test "$_dxr2" = yes && _fame=auto
4524   test "$_dxr3" = yes && _fame=auto
4525   test "$_dvb" = yes && _fame=auto
4526 fi
4527 if test "$_fame" = auto ; then
4528   _fame=no
4529   if test -d libfame && test -f libfame/fame.h ; then
4530     # disable fame on cygwin as no sense to port - atmos          
4531     cygwin || _fame=yes
4532     echores $_fame
4533   else
4534     echores "no (no fame dir)"
4535   fi
4536 else
4537   echores "$_fame"
4538 fi
4539
4540 _def_fame='#undef USE_LIBFAME'
4541 if test "$_fame" = yes ; then
4542   _def_fame='#define USE_LIBFAME 1'     
4543   _ld_fame='libfame/libfame.a'
4544 fi
4545
4546
4547 #########
4548 # AUDIO #
4549 #########
4550
4551
4552 echocheck "OSS Audio"
4553 if test "$_ossaudio" = auto ; then
4554   cat > $TMPC << EOF
4555 #include <sys/ioctl.h>
4556 $_inc_soundcard
4557 int main(void) { int arg = SNDCTL_DSP_SETFRAGMENT; return 0; }
4558 EOF
4559   _ossaudio=no
4560   cc_check && _ossaudio=yes
4561 fi
4562 if test "$_ossaudio" = yes ; then
4563   _def_ossaudio='#define USE_OSS_AUDIO 1'
4564   _aosrc="$_aosrc ao_oss.c"
4565   _aomodules="oss $_aomodules"
4566   if test "$_linux_devfs" = yes; then
4567     _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound/dsp"'
4568     _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/sound/mixer"'
4569   else
4570      cat > $TMPC << EOF
4571 #include <sys/ioctl.h>
4572 $_inc_soundcard
4573 #ifdef OPEN_SOUND_SYSTEM
4574 int main(void) { return 0; }
4575 #else
4576 #error Not the real thing
4577 #endif
4578 EOF
4579      _real_ossaudio=no
4580      cc_check && _real_ossaudio=yes
4581      if test "$_real_ossaudio" = yes; then
4582        _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4583      elif netbsd || openbsd ; then
4584        _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/sound"'
4585        _ld_arch="$_ld_arch -lossaudio"
4586      else
4587        _def_ossaudio_devdsp='#define PATH_DEV_DSP "/dev/dsp"'
4588      fi
4589     _def_ossaudio_devmixer='#define PATH_DEV_MIXER "/dev/mixer"'
4590   fi  
4591 else
4592   _def_ossaudio='#undef USE_OSS_AUDIO'
4593   _def_ossaudio_devdsp='#define PATH_DEV_DSP ""'
4594   _def_ossaudio_devmixer='#define PATH_DEV_MIXER ""'
4595   _noaomodules="oss $_noaomodules"
4596 fi
4597 echores "$_ossaudio"
4598
4599
4600 echocheck "aRts"
4601 if test "$_arts" = auto ; then
4602   _arts=no
4603   if ( artsc-config --version ) >> "$TMPLOG" 2>&1 ; then
4604
4605 cat > $TMPC << EOF
4606 #include <artsc.h>
4607 int main(void) { return 0; }
4608 EOF
4609 cc_check `artsc-config --libs` `artsc-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _arts=yes
4610
4611   fi
4612 fi
4613
4614 if test "$_arts" = yes ; then
4615   _def_arts='#define USE_ARTS 1'
4616   _aosrc="$_aosrc ao_arts.c"
4617   _aomodules="arts $_aomodules"
4618   _ld_arts=`artsc-config --libs`
4619   _inc_arts=`artsc-config --cflags`
4620 else
4621   _noaomodules="arts $_noaomodules"
4622 fi
4623 echores "$_arts"
4624
4625
4626 echocheck "EsounD"
4627 if test "$_esd" = auto ; then
4628   _esd=no
4629   if ( esd-config --version ) >> "$TMPLOG" 2>&1 ; then
4630
4631 cat > $TMPC << EOF
4632 #include <esd.h>
4633 int main(void) { return 0; }
4634 EOF
4635 cc_check `esd-config --libs` `esd-config --cflags` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _esd=yes
4636
4637   fi
4638 fi
4639 echores "$_esd"
4640
4641 if test "$_esd" = yes ; then
4642   _def_esd='#define USE_ESD 1'
4643   _aosrc="$_aosrc ao_esd.c"
4644   _aomodules="esd $_aomodules"
4645   _ld_esd=`esd-config --libs`
4646   _inc_esd=`esd-config --cflags`
4647
4648   echocheck "esd_get_latency()"
4649   cat > $TMPC << EOF
4650 #include <esd.h>
4651 int main(void) { return esd_get_latency(0); }
4652 EOF
4653   cc_check `esd-config --libs` `esd-config --cflags` && _esd_latency=yes && _def_esd_latency='#define HAVE_ESD_LATENCY'
4654   echores "$_esd_latency"
4655 else
4656   _def_esd='#undef USE_ESD'
4657   _def_esd_latency='#undef HAVE_ESD_LATENCY'
4658   _noaomodules="esd $_noaomodules"
4659 fi
4660
4661 echocheck "Polyp"
4662 if test "$_polyp" = auto ; then
4663   _polyp=no
4664   if ( pkg-config --exists 'polyplib >= 0.6 polyplib-error >= 0.6 polyplib-mainloop >= 0.6' ) >> "$TMPLOG" 2>&1 ; then
4665
4666 cat > $TMPC << EOF
4667 #include <polyp/polyplib.h>
4668 #include <polyp/mainloop.h>
4669 #include <polyp/polyplib-error.h>
4670 int main(void) { return 0; }
4671 EOF
4672 cc_check `pkg-config --libs --cflags polyplib polyplib-error polyplib-mainloop` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _polyp=yes
4673
4674   fi
4675 fi
4676 echores "$_polyp"
4677
4678 if test "$_polyp" = yes ; then
4679   _def_polyp='#define USE_POLYP 1'
4680   _aosrc="$_aosrc ao_polyp.c"
4681   _aomodules="polyp $_aomodules"
4682   _ld_polyp=`pkg-config --libs polyplib polyplib-error polyplib-mainloop`
4683   _inc_polyp=`pkg-config --cflags polyplib polyplib-error polyplib-mainloop`
4684 else
4685   _def_polyp='#undef USE_POLYP'
4686   _noaomodules="polyp $_noaomodules"
4687 fi
4688
4689
4690 echocheck "JACK"
4691 if test "$_jack" = auto ; then
4692   _jack=no
4693   if ( ( pkg-config --modversion jack ) > /dev/null 2>&1 ) &&
4694      ( jackd --version | grep version | awk '{ print $3 }' ) >> "$TMPLOG" 2>&1 ; then
4695
4696 cat > $TMPC << EOF
4697 #include <jack/jack.h>
4698 int main(void) { jack_client_new("test"); return 0; }
4699 EOF
4700         cc_check `pkg-config --libs --cflags jack` && ( "$TMPO" >> "$TMPLOG" 2>&1 ) && _jack=yes
4701 fi
4702 fi
4703
4704 if test "$_jack" = yes ; then
4705   _def_jack='#define USE_JACK 1'
4706   _aosrc="$_aosrc ao_jack.c"
4707   _aomodules="jack $_aomodules"
4708   _ld_jack="`pkg-config --libs jack`"
4709   _inc_jack=`pkg-config --cflags jack`
4710 else
4711   _noaomodules="jack $_noaomodules"
4712 fi
4713 echores "$_jack"
4714
4715
4716 echocheck "ALSA audio"
4717 if test "$_alsa" != no ; then
4718   _alsa=no
4719   cat > $TMPC << EOF
4720 #include <sys/asoundlib.h>
4721 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==5)); }
4722 EOF
4723   cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.5.x'
4724
4725   cat > $TMPC << EOF
4726 #include <sys/asoundlib.h>
4727 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
4728 EOF
4729   cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-sys'
4730   cat > $TMPC << EOF
4731 #include <alsa/asoundlib.h>
4732 int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }
4733 EOF
4734   cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='0.9.x-alsa'
4735
4736   cat > $TMPC << EOF
4737 #include <sys/asoundlib.h>
4738 int main(void) { return (!(SND_LIB_MAJOR==1 && SND_LIB_MINOR==0)); }
4739 EOF
4740   cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='1.0.x-sys'
4741   cat > $TMPC << EOF
4742 #include <alsa/asoundlib.h>
4743 int main(void) { return (!(SND_LIB_MAJOR==1 && SND_LIB_MINOR==0)); }
4744 EOF
4745   cc_check -lasound $_ld_dl $_ld_pthread && $TMPO && _alsaver='1.0.x-alsa'
4746 fi
4747 _def_alsa5='#undef HAVE_ALSA5'
4748 _def_alsa9='#undef HAVE_ALSA9'
4749 _def_alsa1x='#undef HAVE_ALSA1X'
4750 _def_sys_asoundlib_h='#undef HAVE_SYS_ASOUNDLIB_H'
4751 _def_alsa_asoundlib_h='#undef HAVE_ALSA_ASOUNDLIB_H'
4752 if test "$_alsaver" ; then
4753   if test "$_alsaver" = '0.5.x' ; then
4754     _aosrc="$_aosrc ao_alsa5.c"
4755     _aomodules="alsa5 $_aomodules"
4756     _def_alsa5='#define HAVE_ALSA5 1'
4757     _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4758     echores "yes (using alsa 0.5.x and sys/asoundlib.h)"
4759   elif test "$_alsaver" = '0.9.x-sys' ; then
4760     _aosrc="$_aosrc ao_alsa.c"
4761     _aomodules="alsa $_aomodules"
4762     _def_alsa9='#define HAVE_ALSA9 1'
4763     _def_sys_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4764     echores "yes (using alsa 0.9.x and sys/asoundlib.h)"
4765   elif test "$_alsaver" = '0.9.x-alsa' ; then
4766     _aosrc="$_aosrc ao_alsa.c"
4767     _aomodules="alsa $_aomodules"
4768     _def_alsa9='#define HAVE_ALSA9 1'
4769     _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
4770     echores "yes (using alsa 0.9.x and alsa/asoundlib.h)"
4771   elif test "$_alsaver" = '1.0.x-sys' ; then
4772     _aosrc="$_aosrc ao_alsa.c"
4773     _aomodules="alsa $_aomodules"
4774     _def_alsa1x="#define HAVE_ALSA1X 1"
4775     _def_alsa_asoundlib_h='#define HAVE_SYS_ASOUNDLIB_H 1'
4776     echores "yes (using alsa 1.0.x and sys/asoundlib.h)"
4777   elif test "$_alsaver" = '1.0.x-alsa' ; then
4778     _aosrc="$_aosrc ao_alsa.c"
4779     _aomodules="alsa $_aomodules"
4780     _def_alsa1x="#define HAVE_ALSA1X 1"
4781     _def_alsa_asoundlib_h='#define HAVE_ALSA_ASOUNDLIB_H 1'
4782     echores "yes (using alsa 1.0.x and alsa/asoundlib.h)"
4783   fi
4784   _ld_alsa="-lasound $_ld_dl $_ld_pthread"
4785 else
4786   _noaomodules="alsa $_noaomodules"
4787   echores "no"
4788 fi
4789
4790
4791 echocheck "Sun audio"
4792 if test "$_sunaudio" = auto ; then
4793   cat > $TMPC << EOF
4794 #include <sys/types.h>
4795 #include <sys/audioio.h>
4796 int main(void) { audio_info_t info; AUDIO_INITINFO(&info); return 0; }
4797 EOF
4798   _sunaudio=no
4799   cc_check && _sunaudio=yes
4800 fi
4801 if test "$_sunaudio" = yes ; then
4802   _def_sunaudio='#define USE_SUN_AUDIO 1'
4803   _aosrc="$_aosrc ao_sun.c"
4804   _aomodules="sun $_aomodules"
4805 else
4806   _def_sunaudio='#undef USE_SUN_AUDIO'
4807   _noaomodules="sun $_noaomodules"
4808 fi
4809 echores "$_sunaudio"
4810
4811
4812 echocheck "Sun mediaLib"
4813 if test "$_mlib" = auto ; then
4814   _mlib=no
4815   test -z "$_mlibdir" && _mlibdir=/opt/SUNWmlib
4816   cat > $TMPC << EOF
4817 #include <mlib.h>
4818 int main(void) { mlib_VideoColorYUV2ABGR420(0,0,0,0,0,0,0,0,0); return 0; }
4819 EOF
4820   cc_check  -I${_mlibdir}/include -L${_mlibdir}/lib -lmlib && _mlib=yes
4821 fi
4822 if test "$_mlib" = yes ; then
4823   _def_mlib='#define HAVE_MLIB 1'
4824   _inc_mlib=" -I${_mlibdir}/include "
4825   _ld_mlib=" -L${_mlibdir}/lib -R${_mlibdir}/lib -lmlib "
4826 else
4827   _def_mlib='#undef HAVE_MLIB'
4828 fi
4829 echores "$_mlib"
4830
4831
4832 echocheck "SGI audio"
4833 if test "$_sgiaudio" = auto ; then
4834   # check for SGI audio
4835   cat > $TMPC << EOF
4836 #include <dmedia/audio.h>
4837 int main(void) { return 0; }
4838 EOF
4839   _sgiaudio=no
4840   cc_check && _sgiaudio=yes
4841 fi
4842 if test "$_sgiaudio" = "yes" ; then
4843   _def_sgiaudio='#define USE_SGI_AUDIO 1'
4844   _ld_sgiaudio='-laudio'
4845   _aosrc="$_aosrc ao_sgi.c"
4846   _aomodules="sgi $_aomodules"
4847 else
4848   _def_sgiaudio='#undef USE_SGI_AUDIO'
4849   _noaomodules="sgi $_noaomodules"
4850 fi
4851 echores "$_sgiaudio"
4852
4853
4854 echocheck "VCD support"
4855 if linux || bsdos || freebsd || netbsd || sunos || darwin ; then
4856   _inputmodules="vcd $_inputmodules"
4857   _def_vcd='#define HAVE_VCD 1'
4858   echores "ok"
4859 else
4860   _def_vcd='#undef HAVE_VCD'
4861   _noinputmodules="vcd $_noinputmodules"
4862   echores "not supported on this OS"
4863 fi
4864
4865 echocheck "DVD support (libmpdvdkit)"
4866 if test "$_dvdkit" = auto ; then
4867  _dvdkit=no
4868  if linux || freebsd || netbsd || darwin || openbsd || win32 || sunos || hpux; then
4869   test -f "./libmpdvdkit2/Makefile" && _dvdkit=yes
4870   test -f "./libmpdvdkit/Makefile" && _dvdkit=yes
4871  fi
4872 fi
4873 if test "$_dvdkit" = yes ; then
4874   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
4875    if test -f "./libmpdvdkit2/Makefile" ; then
4876     _inputmodules="mpdvdkit2 $_inputmodules"
4877     _dvdread=libmpdvdkit2
4878     _dvdkit2=yes
4879     _dvdkit=no
4880    else
4881     _inputmodules="mpdvdkit $_inputmodules"
4882     _dvdread=libmpdvdkit
4883    fi
4884   else
4885     _noinputmodules="mpdvdkit $_noinputmodules"
4886   fi
4887   _def_dvd_linux='#undef HAVE_LINUX_DVD_STRUCT'
4888   _def_dvd_bsd='#undef HAVE_BSD_DVD_STRUCT'
4889   _dev_dvd_openbsd='#undef HAVE_OPENBSD_DVD_STRUCT'
4890   _def_dvd_darwin='#undef DARWIN_DVD_IOCTL'
4891   if linux || netbsd || openbsd || bsdos ; then
4892     _def_dvd_linux='#define HAVE_LINUX_DVD_STRUCT 1'
4893     if openbsd ; then
4894       _dev_dvd_openbsd='#define HAVE_OPENBSD_DVD_STRUCT 1'
4895     fi
4896   else
4897     if freebsd ; then
4898      _def_dvd_bsd='#define HAVE_BSD_DVD_STRUCT 1'
4899     else
4900       if darwin ; then
4901        _def_dvd_darwin='#define DARWIN_DVD_IOCTL'
4902       fi
4903     fi
4904   fi
4905 else
4906   _noinputmodules="mpdvdkit $_noinputmodules"
4907 fi
4908 if test "$_dvdkit" = yes || test "$_dvdkit2" = yes; then
4909   echores "yes"
4910 else
4911   echores "no"
4912 fi  
4913
4914 echocheck "DVD support (libdvdread)"
4915 if test "$_dvdread" = auto ; then
4916   cat > $TMPC << EOF
4917 #include <inttypes.h>
4918 #include <dvdread/dvd_reader.h>
4919 #include <dvdread/ifo_types.h>
4920 #include <dvdread/ifo_read.h>
4921 #include <dvdread/nav_read.h>
4922 int main(void) { return 0; }
4923 EOF
4924   _dvdread=no
4925   if test "$_dl" = yes; then
4926    cc_check  \
4927      -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -ldvdread $_ld_dl && \
4928      _dvdread=yes
4929   fi
4930 fi
4931 _def_mpdvdkit="#undef USE_MPDVDKIT"
4932 case "$_dvdread" in
4933   yes)
4934         _largefiles=yes
4935         _def_dvdread='#define USE_DVDREAD 1'
4936         _ld_dvdread='-ldvdread'
4937         _inputmodules="dvdread $_inputmodules"
4938         echores "yes"
4939         ;;
4940   no)
4941         _def_dvdread='#undef USE_DVDREAD'
4942         _noinputmodules="dvdread $_noinputmodules"
4943         echores "no"
4944         ;;
4945   libmpdvdkit)
4946         _largefiles=yes
4947         _def_dvdread='#define USE_DVDREAD 1'
4948         _ld_dvdread='-Llibmpdvdkit -lmpdvdkit'
4949         _noinputmodules="dvdread $_noinputmodules"
4950         _def_mpdvdkit="#define USE_MPDVDKIT 1"
4951         echores "disabled by libmpdvdkit"
4952         ;;
4953   libmpdvdkit2)
4954         _largefiles=yes
4955         _def_dvdread='#define USE_DVDREAD 1'
4956         _ld_dvdread='-Llibmpdvdkit2 -lmpdvdkit'
4957         _noinputmodules="dvdread $_noinputmodules"
4958         _def_mpdvdkit="#define USE_MPDVDKIT 2"
4959         echores "disabled by libmpdvdkit2"
4960         ;;
4961 esac
4962
4963 # dvdnav disabled, it does not work
4964 # echocheck "DVD support (libdvdnav)"
4965 # if test "$_dvdnav" = yes ; then
4966 #   cat > $TMPC <<EOF
4967 # #include <dvdnav.h>
4968 # int main(void) { dvdnav_t *dvd=0; return 0; }
4969 # EOF
4970 #   _dvdnav=no
4971 #   test -n "$_dvdnavdir" && _legal_dvdnavdir=-L$_dvdnavdir/.libs
4972 #   if test -z "$_dvdnavconfig" ; then
4973 #     if ( dvdnav-config --version ) >/dev/null 2>&1 ; then
4974 #       _dvdnavconfig="dvdnav-config"
4975 #     fi
4976 #   fi
4977 #   test -z "$_dvdnavdir" && test -n "$_dvdnavconfig" && _dvdnavdir=`$_dvdnavconfig --cflags`
4978 #   _used_css=
4979 #   test "$_dvdkit" = no && test "$_dvdkit2" = no && _used_css=$_ld_css
4980 #   cc_check $_inc_extra -I$_dvdnavdir $_legal_dvdnavdir -ldvdnav $_used_css $_ld_dl $_ld_pthread && _dvdnav=yes
4981 # fi
4982 # if test "$_dvdnav" = yes ; then
4983 #   _largefiles=yes
4984 #   _def_dvdnav='#define USE_DVDNAV 1'
4985 #   if test -n "$_legal_dvdnavdir" ; then
4986 #    _ld_css="$_ld_css $_legal_dvdnavdir -ldvdnav"
4987 #   elif test -n "$_dvdnavconfig" ; then
4988 #    _ld_css="$_ld_css `$_dvdnavconfig --libs`"
4989 #   else