configure: update FFmpeg revision (93e75c7).
[vaapi: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 Subversion log.
7 #
8 # Cleanups all over the place (c) 2001 pl
9 #
10 #
11 # This configure script is *not* autoconf-based and has different semantics.
12 # It attempts to autodetect all settings and options where possible. It is
13 # possible to override autodetection with the --enable-option/--disable-option
14 # command line parameters.  --enable-option forces the option on skipping
15 # autodetection. Yes, this means that compilation may fail and yes, this is not
16 # how autoconf-based configure scripts behave.
17 #
18 # configure generates a series of configuration files:
19 #  - config.h contains #defines that are used in the C code.
20 #  - config.mak is included from the Makefiles.
21 #
22 # If you want to add a new check for $feature, look at the existing checks
23 # and try to use helper functions where you can.
24 #
25 # Furthermore you need to add the variable _feature to the list of default
26 # settings and set it to one of yes/no/auto. Also add appropriate
27 # --enable-feature/--disable-feature command line options.
28 # The results of the check should be written to config.h and config.mak
29 # at the end of this script. The variable names used for this should be
30 # uniform, i.e. if the option is named 'feature':
31 #
32 # _feature     : should have a value of yes/no/auto
33 # def_feature  : '#define ... 1' or '#undef ...' for conditional compilation
34 # ld_feature   : '-L/path/dir -lfeature' GCC options
35 #
36 #############################################################################
37
38 if test -e ffmpeg/.svn ; then
39     echo "You have an outdated FFmpeg SVN checkout in ffmpeg/, please (re)move or replace it"
40     exit 1
41 fi
42
43 if test -e ffmpeg/mp_auto_pull ; then
44     if ! (cd ffmpeg && git pull --rebase --ff-only) ; then
45         echo "git pull failed, (re)move ffmpeg/mp_auto_pull to disable pulling"
46         exit 1
47     fi
48 fi
49
50 if ! test -e ffmpeg ; then
51     echo "No FFmpeg checkout, press enter to download one with git or CTRL+C to abort"
52     read tmp
53     if ! git clone git://git.videolan.org/ffmpeg.git ffmpeg ; then
54         rm -rf ffmpeg
55         echo "Failed to get a FFmpeg checkout"
56         exit 1
57     fi
58     ffrevision=93e75c78ddae7ac1fd7211b9269b5cdcfd30c665
59     cd ffmpeg && git checkout $ffrevision && cd ..
60 fi
61
62 # Prevent locale nonsense from breaking basic text processing utilities
63 export LC_ALL=C
64
65 # Store the configure line that was used
66 configuration="$*"
67
68 # Prefer these macros to full length text !
69 # These macros only return an error code - NO display is done
70 compile_check() {
71   source="$1"
72   shift
73   echo >> "$TMPLOG"
74   cat "$source" >> "$TMPLOG"
75   echo >> "$TMPLOG"
76   echo "$_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS $source $extra_cflags $ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o $TMPEXE $@ -lm" >> "$TMPLOG"
77   rm -f "$TMPEXE"
78   $_cc $WARNFLAGS $WARN_CFLAGS $CFLAGS "$source" $extra_cflags $ld_static $extra_ldflags $libs_mplayer $libs_mencoder -o "$TMPEXE" "$@" -lm >> "$TMPLOG" 2>&1
79   TMPRES="$?"
80   echo >> "$TMPLOG"
81   echo >> "$TMPLOG"
82   return "$TMPRES"
83 }
84
85 cc_check() {
86   compile_check $TMPC $@
87 }
88
89 cxx_check() {
90   compile_check $TMPCPP $@ -lstdc++
91 }
92
93 cpp_condition_check() {
94   inc=""
95   if test -n "$1" ; then
96     inc="#include <$1>"
97   fi
98   cat > $TMPC << EOF
99 $inc
100 #if !($2)
101 #error condition not true: $2
102 #endif
103 int main(void) { return 0; }
104 EOF
105   shift 2
106   compile_check $TMPC $@
107 }
108
109 cflag_check() {
110   cat > $TMPC << EOF
111 int main(void) { return 0; }
112 EOF
113   compile_check $TMPC $@
114 }
115
116 header_check() {
117   cat > $TMPC << EOF
118 #include <$1>
119 int main(void) { return 0; }
120 EOF
121   shift
122   compile_check $TMPC $@
123 }
124
125 return_check() {
126   cat > $TMPC << EOF
127 #include <$1>
128 int main(void) { return $2; }
129 EOF
130   shift 2
131   compile_check $TMPC $@
132 }
133
134 statement_check() {
135   cat > $TMPC << EOF
136 #include <$1>
137 int main(void) { $2; return 0; }
138 EOF
139   shift
140   shift
141   compile_check $TMPC $@
142 }
143
144 define_statement_check() {
145   cat > $TMPC << EOF
146 #define $1
147 #include <$2>
148 int main(void) { $3; return 0; }
149 EOF
150   shift 3
151   compile_check $TMPC $@
152 }
153
154 return_statement_check() {
155   cat > $TMPC << EOF
156 #include <$1>
157 int main(void) { $2; return $3; }
158 EOF
159   shift 3
160   compile_check $TMPC $@
161 }
162
163 inline_asm_check() {
164   cat > $TMPC << EOF
165 int main(void) { __asm__ volatile ($1); return 0; }
166 EOF
167   shift
168   compile_check $TMPC $@
169 }
170
171 # The following checks are special and should only be used with broken and
172 # non-self-sufficient headers that do not include all of their dependencies.
173
174 header_check_broken() {
175   cat > $TMPC << EOF
176 #include <$1>
177 #include <$2>
178 int main(void) { return 0; }
179 EOF
180   shift
181   shift
182   compile_check $TMPC $@
183 }
184
185 statement_check_broken() {
186   cat > $TMPC << EOF
187 #include <$1>
188 #include <$2>
189 int main(void) { $3; return 0; }
190 EOF
191   shift 3
192   compile_check $TMPC $@
193 }
194
195 yasm_check() {
196   echo >> "$TMPLOG"
197   cat "$TMPS" >> "$TMPLOG"
198   echo >> "$TMPLOG"
199   echo "$_yasm $YASMFLAGS -o $TMPEXE $TMPS $@" >> "$TMPLOG"
200   rm -f "$TMPEXE"
201   $_yasm $YASMFLAGS -o "$TMPEXE" "$TMPS" "$@" >> "$TMPLOG" 2>&1
202   TMPRES="$?"
203   echo >> "$TMPLOG"
204   echo >> "$TMPLOG"
205   return "$TMPRES"
206 }
207
208 tmp_run() {
209   "$TMPEXE" >> "$TMPLOG" 2>&1
210 }
211
212 # Display error message, flush temporary file, exit.
213 die () {
214   echo
215   echo "Error: $@" >&2
216   echo >&2
217   rm -f "$TMPEXE" "$TMPC" "$TMPS" "$TMPCPP"
218   echo "Check \"$TMPLOG\" if you do not understand why it failed."
219   exit 1
220 }
221
222 # OS test booleans functions
223 issystem() {
224   test "$(echo $system_name | tr A-Z a-z)" = "$(echo $1 | tr A-Z a-z)"
225 }
226 aix()       { issystem "AIX"; }
227 amigaos()   { issystem "AmigaOS"; }
228 bsdos()     { issystem "BSD/OS"; }
229 cygwin()    { issystem "CYGWIN"; }
230 darwin()    { issystem "Darwin"; }
231 dragonfly() { issystem "DragonFly"; }
232 freebsd()   { issystem "FreeBSD" || issystem "GNU/kFreeBSD"; }
233 gnu()       { issystem "GNU"; }
234 hpux()      { issystem "HP-UX"; }
235 irix()      { issystem "IRIX"; }
236 linux()     { issystem "Linux"; }
237 mingw32()   { issystem "MINGW32"; }
238 morphos()   { issystem "MorphOS"; }
239 netbsd()    { issystem "NetBSD"; }
240 openbsd()   { issystem "OpenBSD"; }
241 os2()       { issystem "OS/2"; }
242 qnx()       { issystem "QNX"; }
243 sunos()     { issystem "SunOS"; }
244 wine()      { issystem "Wine"; }
245 win32()     { cygwin || mingw32 || wine; }
246
247 # arch test boolean functions
248 # x86/x86pc is used by QNX
249 x86_32() {
250   case "$host_arch" in
251     i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686) return 0 ;;
252     *) return 1 ;;
253   esac
254 }
255
256 x86_64() {
257   case "$host_arch" in
258     x86_64|amd64) return 0 ;;
259     *) return 1 ;;
260   esac
261 }
262
263 x86() {
264   x86_32 || x86_64
265 }
266
267 ppc() {
268   case "$host_arch" in
269     ppc*|powerpc*) return 0;;
270     *) return 1;;
271   esac
272 }
273
274 sparc() {
275   case "$host_arch" in
276     sparc*) return 0;;
277     *) return 1;;
278   esac
279 }
280
281 alpha() {
282   case "$host_arch" in
283     alpha*) return 0;;
284     *) return 1;;
285   esac
286 }
287
288 arm() {
289   case "$host_arch" in
290     arm*) return 0;;
291     *) return 1;;
292   esac
293 }
294
295 # Use this before starting a check
296 echocheck() {
297   echo "============ Checking for $@ ============" >> "$TMPLOG"
298   echo ${_echo_n} "Checking for $@ ... ${_echo_c}"
299 }
300
301 # Use this to echo the results of a check
302 echores() {
303   if test "$res_comment" ; then
304     res_comment="($res_comment)"
305   fi
306   echo "Result is: $@ $res_comment" >> "$TMPLOG"
307   echo "##########################################" >> "$TMPLOG"
308   echo "" >> "$TMPLOG"
309   echo "$@ $res_comment"
310   res_comment=""
311 }
312 #############################################################################
313
314 # Check how echo works in this /bin/sh
315 case $(echo -n) in
316   -n)   _echo_n=        _echo_c='\c'    ;;      # SysV echo
317   *)    _echo_n='-n '   _echo_c=        ;;      # BSD echo
318 esac
319
320 msg_lang_all=$(echo help/help_mp-??.h help/help_mp-??_??.h | sed -e "s:help/help_mp-\(..\).h:\1:g" -e "s:help/help_mp-\(.....\).h:\1:g")
321 man_lang_all=$(echo DOCS/man/??/mplayer.1 DOCS/man/??_??/mplayer.1 | sed -e "s:DOCS/man/\(..\)/mplayer.1:\1:g" -e "s:DOCS/man/\(.._..\)/mplayer.1:\1:g")
322 doc_lang_all=$(echo DOCS/xml/??/ DOCS/xml/??_??/ | sed -e "s:DOCS/xml/\(..\)/:\1:g" -e "s:DOCS/xml/\(.._..\)/:\1:g")
323
324 show_help(){
325 cat << EOF
326 Usage: $0 [OPTIONS]...
327
328 Configuration:
329   -h, --help             display this help and exit
330
331 Installation directories:
332   --prefix=DIR           prefix directory for installation [/usr/local]
333   --bindir=DIR           directory for installing binaries [PREFIX/bin]
334   --datadir=DIR          directory for installing machine independent
335                          data files (skins, etc) [PREFIX/share/mplayer]
336   --mandir=DIR           directory for installing man pages [PREFIX/share/man]
337   --confdir=DIR          directory for installing configuration files
338                          [PREFIX/etc/mplayer]
339   --libdir=DIR           directory for object code libraries [PREFIX/lib]
340   --codecsdir=DIR        directory for binary codecs [LIBDIR/codecs]
341
342 Optional features:
343   --disable-mencoder     disable MEncoder (A/V encoder) compilation [enable]
344   --disable-mplayer      disable MPlayer compilation [enable]
345   --enable-gui           enable GMPlayer compilation (GTK+ GUI) [disable]
346   --enable-gtk1          force using GTK 1.2 for the GUI  [disable]
347   --enable-termcap       use termcap database for key codes [autodetect]
348   --enable-termios       use termios database for key codes [autodetect]
349   --disable-iconv        disable iconv for encoding conversion [autodetect]
350   --disable-langinfo     do not use langinfo [autodetect]
351   --enable-lirc          enable LIRC (remote control) support [autodetect]
352   --enable-lircc         enable LIRCCD (LIRC client daemon) input [autodetect]
353   --enable-joystick      enable joystick support [disable]
354   --enable-apple-remote  enable Apple Remote input (Mac OS X only) [autodetect]
355   --enable-apple-ir      enable Apple IR Remote input (Linux only) [autodetect]
356   --disable-vm           disable X video mode extensions [autodetect]
357   --disable-xf86keysym   disable support for multimedia keys [autodetect]
358   --enable-radio         enable radio interface [disable]
359   --enable-radio-capture enable radio capture (through PCI/line-in) [disable]
360   --disable-radio-v4l2   disable Video4Linux2 radio interface [autodetect]
361   --disable-radio-bsdbt848   disable BSD BT848 radio interface [autodetect]
362   --disable-tv           disable TV interface (TV/DVB grabbers) [enable]
363   --disable-tv-v4l1      disable Video4Linux TV interface [autodetect]
364   --disable-tv-v4l2      disable Video4Linux2 TV interface [autodetect]
365   --disable-tv-bsdbt848  disable BSD BT848 interface [autodetect]
366   --disable-pvr          disable Video4Linux2 MPEG PVR [autodetect]
367   --disable-rtc          disable RTC (/dev/rtc) on Linux [autodetect]
368   --disable-networking   disable networking [enable]
369   --enable-winsock2_h    enable winsock2_h [autodetect]
370   --enable-smb           enable Samba (SMB) input [autodetect]
371   --enable-live          enable LIVE555 Streaming Media [autodetect]
372   --enable-nemesi        enable Nemesi Streaming Media [autodetect]
373   --enable-librtmp       enable RTMPDump Streaming Media [autodetect]
374   --disable-vcd          disable VCD support [autodetect]
375   --disable-bluray       disable Blu-ray support [autodetect]
376   --disable-dvdnav       disable libdvdnav [autodetect]
377   --disable-dvdread      disable libdvdread [autodetect]
378   --disable-dvdread-internal  disable internal libdvdread [autodetect]
379   --disable-libdvdcss-internal  disable internal libdvdcss [autodetect]
380   --disable-cdparanoia   disable cdparanoia [autodetect]
381   --disable-cddb         disable cddb [autodetect]
382   --disable-bitmap-font  disable bitmap font support [enable]
383   --disable-freetype     disable FreeType 2 font rendering [autodetect]
384   --disable-fontconfig   disable fontconfig font lookup [autodetect]
385   --disable-unrarexec    disable using of UnRAR executable [enabled]
386   --enable-menu          enable OSD menu (not DVD menu) [disabled]
387   --disable-sortsub      disable subtitle sorting [enabled]
388   --enable-fribidi       enable the FriBiDi libs [autodetect]
389   --disable-enca         disable ENCA charset oracle library [autodetect]
390   --disable-maemo        disable maemo specific features [autodetect]
391   --enable-macosx-finder enable Mac OS X Finder invocation parameter
392                          parsing [disabled]
393   --enable-macosx-bundle enable Mac OS X bundle file locations [autodetect]
394   --disable-inet6        disable IPv6 support [autodetect]
395   --disable-sctp         disable SCTP support [autodetect]
396   --disable-gethostbyname2  gethostbyname2 part of the C library [autodetect]
397   --disable-ftp          disable FTP support [enabled]
398   --disable-vstream      disable TiVo vstream client support [autodetect]
399   --disable-pthreads     disable Posix threads support [autodetect]
400   --disable-w32threads   disable Win32 threads support [autodetect]
401   --disable-os2threads   disable OS/2 threads support [autodetect]
402   --enable-ass-internal  enable internal SSA/ASS subtitle support [autodetect]
403   --disable-ass          disable SSA/ASS subtitle support [autodetect]
404   --enable-rpath         enable runtime linker path for extra libs [disabled]
405
406 Codecs:
407   --enable-gif              enable GIF support [autodetect]
408   --enable-png              enable PNG input/output support [autodetect]
409   --enable-mng              enable MNG input/output support [autodetect]
410   --enable-jpeg             enable JPEG input/output support [autodetect]
411   --enable-libcdio          enable libcdio support [autodetect]
412   --enable-liblzo           enable liblzo support [autodetect]
413   --disable-win32dll        disable Win32 DLL support [autodetect]
414   --disable-qtx             disable QuickTime codecs support [enabled]
415   --disable-xanim           disable XAnim codecs support [enabled]
416   --disable-real            disable RealPlayer codecs support [enabled]
417   --disable-xvid            disable Xvid [autodetect]
418   --disable-xvid-lavc       disable Xvid in libavcodec [autodetect]
419   --disable-x264            disable x264 [autodetect]
420   --disable-x264-lavc       disable x264 in libavcodec [autodetect]
421   --disable-libdirac-lavc   disable Dirac in libavcodec [autodetect]
422   --disable-libschroedinger-lavc   disable Dirac in libavcodec (Schroedinger
423                                    decoder) [autodetect]
424   --disable-libvpx-lavc     disable libvpx in libavcodec [autodetect]
425   --disable-libnut          disable libnut [autodetect]
426   --disable-ffmpeg_a        disable static FFmpeg [autodetect]
427   --disable-ffmpeg_so       disable shared FFmpeg [autodetect]
428   --disable-postproc        disable libpostproc [autodetect]
429   --enable-vf-lavfi         enable libavfilter wrapper [disabled]
430   --disable-libavcodec_mpegaudio_hp disable high precision audio decoding
431                                     in libavcodec [enabled]
432   --disable-tremor-internal disable internal Tremor [enabled]
433   --enable-tremor-low       enable lower accuracy internal Tremor [disabled]
434   --enable-tremor           enable external Tremor [autodetect]
435   --disable-libvorbis       disable libvorbis support [autodetect]
436   --disable-speex           disable Speex support [autodetect]
437   --disable-libgsm          disable libgsm support [autodetect]
438   --enable-theora           enable OggTheora libraries [autodetect]
439   --enable-faad             enable FAAD2 (AAC) [autodetect]
440   --disable-faac            disable support for FAAC (AAC encoder) [autodetect]
441   --disable-faac-lavc       disable support for FAAC in libavcodec [autodetect]
442   --disable-ladspa          disable LADSPA plugin support [autodetect]
443   --disable-libbs2b         disable libbs2b audio filter support [autodetect]
444   --disable-libdv           disable libdv 0.9.5 en/decoding support [autodetect]
445   --disable-libopus         disable libopus decoding support [autodetect]
446   --disable-mpg123          disable libmpg123 MP3 decoding support [autodetect]
447   --disable-mad             disable libmad (MPEG audio) support [autodetect]
448   --disable-mp3lame         disable LAME MP3 encoding support [autodetect]
449   --disable-mp3lame-lavc    disable LAME in libavcodec [autodetect]
450   --disable-toolame         disable Toolame (MPEG layer 2) encoding [autodetect]
451   --disable-twolame         disable Twolame (MPEG layer 2) encoding [autodetect]
452   --enable-xmms             enable XMMS input plugin support [disabled]
453   --enable-libdca           enable libdca support [autodetect]
454   --disable-mp3lib          disable builtin mp3lib [autodetect]
455   --disable-liba52          disable liba52 [autodetect]
456   --disable-libmpeg2        disable libmpeg2 [autodetect]
457   --disable-libmpeg2-internal disable builtin libmpeg2 [autodetect]
458   --enable-musepack         enable libmpcdec support (deprecated in favour of libavcodec) [disabled]
459   --disable-libopencore_amrnb disable libopencore_amr narrowband [autodetect]
460   --disable-libopencore_amrwb disable libopencore_amr wideband [autodetect]
461   --disable-libopenjpeg     disable OpenJPEG (JPEG 2000) input/output support [autodetect]
462   --disable-crystalhd       disable CrystalHD support [autodetect]
463   --disable-decoder=DECODER disable specified FFmpeg decoder
464   --enable-decoder=DECODER  enable specified FFmpeg decoder
465   --disable-encoder=ENCODER disable specified FFmpeg encoder
466   --enable-encoder=ENCODER  enable specified FFmpeg encoder
467   --disable-parser=PARSER   disable specified FFmpeg parser
468   --enable-parser=PARSER    enable specified FFmpeg parser
469   --disable-protocol=PROTO  disable specified FFmpeg protocol
470   --enable-protocol=PROTO   enable specified FFmpeg protocol
471   --disable-demuxer=DEMUXER disable specified FFmpeg demuxer
472   --enable-demuxer=DEMUXER  enable specified FFmpeg demuxer
473   --disable-muxer=MUXER     disable specified FFmpeg muxer
474   --enable-muxer=MUXER      enable specified FFmpeg muxer
475
476 Video output:
477   --disable-vidix          disable VIDIX [for x86 *nix]
478   --with-vidix-drivers[=*] list of VIDIX drivers to be compiled in
479                            Available: cyberblade, ivtv, mach64, mga, mga_crtc2,
480                            nvidia, pm2, pm3, radeon, rage128, s3, sis, unichrome
481   --disable-vidix-pcidb    disable VIDIX PCI device name database
482   --enable-dhahelper       enable VIDIX dhahelper support
483   --enable-svgalib_helper  enable VIDIX svgalib_helper support
484   --enable-gl              enable OpenGL video output [autodetect]
485   --disable-matrixview     disable OpenGL MatrixView video output [autodetect]
486   --enable-dga2            enable DGA 2 support [autodetect]
487   --enable-dga1            enable DGA 1 support [autodetect]
488   --enable-vesa            enable VESA video output [autodetect]
489   --enable-svga            enable SVGAlib video output [autodetect]
490   --enable-sdl             enable SDL video output [autodetect]
491   --enable-kva             enable KVA video output [autodetect]
492   --enable-aa              enable AAlib video output [autodetect]
493   --enable-caca            enable CACA  video output [autodetect]
494   --enable-ggi             enable GGI video output [autodetect]
495   --enable-ggiwmh          enable GGI libggiwmh extension [autodetect]
496   --enable-direct3d        enable Direct3D video output [autodetect]
497   --enable-directx         enable DirectX video output [autodetect]
498   --enable-dxr2            enable DXR2 video output [autodetect]
499   --enable-dxr3            enable DXR3/H+ video output [autodetect]
500   --enable-ivtv            enable IVTV TV-Out video output [autodetect]
501   --enable-v4l2            enable V4L2 Decoder audio/video output [autodetect]
502   --enable-dvb             enable DVB video output [autodetect]
503   --enable-mga             enable mga_vid video output [autodetect]
504   --enable-xmga            enable mga_vid X11 video output [autodetect]
505   --enable-xv              enable Xv video output [autodetect]
506   --enable-xvmc            enable XvMC acceleration [disable]
507   --enable-vdpau           enable VDPAU acceleration [autodetect]
508   --enable-vm              enable XF86VidMode support [autodetect]
509   --enable-xinerama        enable Xinerama support [autodetect]
510   --enable-x11             enable X11 video output [autodetect]
511   --enable-xshape          enable XShape support [autodetect]
512   --disable-xss            disable screensaver support via xss [autodetect]
513   --enable-fbdev           enable FBDev video output [autodetect]
514   --enable-mlib            enable mediaLib video output (Solaris) [disable]
515   --enable-3dfx            enable obsolete /dev/3dfx video output [disable]
516   --enable-tdfxfb          enable tdfxfb video output [disable]
517   --enable-s3fb            enable s3fb (S3 ViRGE) video output [disable]
518   --enable-wii             enable Nintendo Wii/GameCube video output [disable]
519   --enable-directfb        enable DirectFB video output [autodetect]
520   --enable-zr              enable ZR360[56]7/ZR36060 video output [autodetect]
521   --enable-bl              enable Blinkenlights video output [disable]
522   --enable-tdfxvid         enable tdfx_vid video output [disable]
523   --enable-xvr100          enable SUN XVR-100 video output [autodetect]
524   --disable-tga            disable Targa video output [enable]
525   --disable-pnm            disable PNM video output [enable]
526   --disable-md5sum         disable md5sum video output [enable]
527   --disable-yuv4mpeg       disable yuv4mpeg video output [enable]
528   --disable-corevideo      disable CoreVideo video output [autodetect]
529   --disable-quartz         disable Quartz video output [autodetect]
530
531 Audio output:
532   --disable-alsa         disable ALSA audio output [autodetect]
533   --disable-ossaudio     disable OSS audio output [autodetect]
534   --disable-arts         disable aRts audio output [autodetect]
535   --disable-esd          disable esd audio output [autodetect]
536   --disable-pulse        disable Pulseaudio audio output [autodetect]
537   --disable-jack         disable JACK audio output [autodetect]
538   --disable-openal       disable OpenAL audio output [autodetect]
539   --disable-nas          disable NAS audio output [autodetect]
540   --disable-sgiaudio     disable SGI audio output [autodetect]
541   --disable-sunaudio     disable Sun audio output [autodetect]
542   --disable-kai          disable KAI audio output [autodetect]
543   --disable-dart         disable DART audio output [autodetect]
544   --disable-win32waveout disable Windows waveout audio output [autodetect]
545   --disable-coreaudio    disable CoreAudio audio output [autodetect]
546   --disable-select       disable using select() on the audio device [enable]
547
548 Language options:
549   --charset=charset      convert the console messages to this character set
550   --language-doc=lang    language to use for the documentation [en]
551   --language-man=lang    language to use for the man pages [en]
552   --language-msg=lang    language to use for the messages and the GUI [en]
553   --language=lang        default language to use [en]
554 Specific options override --language. You can pass a list of languages separated
555 by whitespace or commas instead of a single language. Nonexisting translations
556 will be dropped from each list. All documentation and man page translations
557 available in the list will be installed, for the messages the first available
558 translation will be used. The value "all" will activate all translations. The
559 LINGUAS environment variable is honored. In all cases the fallback is English.
560 Available values are: all $msg_lang_all
561
562 Miscellaneous options:
563   --enable-runtime-cpudetection    enable runtime CPU detection [disable]
564   --enable-cross-compile enable cross-compilation [autodetect]
565   --cc=COMPILER          C compiler to build MPlayer [gcc]
566   --host-cc=COMPILER     C compiler for tools needed while building [gcc]
567   --as=ASSEMBLER         assembler to build MPlayer [as]
568   --nm=NM                nm tool to build MPlayer [nm]
569   --yasm=YASM            Yasm assembler to build MPlayer [yasm]
570   --ar=AR                librarian to build MPlayer [ar]
571   --ranlib=RANLIB        ranlib to build MPlayer [ranlib]
572   --windres=WINDRES      windres to build MPlayer [windres]
573   --target=PLATFORM      target platform (i386-linux, arm-linux, etc)
574   --enable-static        build a statically linked binary
575   --with-install=PATH    path to a custom install program
576
577 Advanced options:
578   --enable-mmx              enable MMX [autodetect]
579   --enable-mmxext           enable MMX2 (Pentium III, Athlon) [autodetect]
580   --enable-3dnow            enable 3DNow! [autodetect]
581   --enable-3dnowext         enable extended 3DNow! [autodetect]
582   --enable-sse              enable SSE [autodetect]
583   --enable-sse2             enable SSE2 [autodetect]
584   --enable-ssse3            enable SSSE3 [autodetect]
585   --enable-shm              enable shm [autodetect]
586   --enable-altivec          enable AltiVec (PowerPC) [autodetect]
587   --enable-armv5te          enable DSP extensions (ARM) [autodetect]
588   --enable-armv6            enable ARMv6 (ARM) [autodetect]
589   --enable-armv6t2          enable ARMv6t2 (ARM) [autodetect]
590   --enable-armvfp           enable ARM VFP (ARM) [autodetect]
591   --enable-vfpv3            enable ARM VFPV3 (ARM) [autodetect]
592   --enable-neon             enable NEON (ARM) [autodetect]
593   --enable-thumb            enable THUMB (ARM) [autodetect]
594   --enable-iwmmxt           enable iWMMXt (ARM) [autodetect]
595   --disable-fastmemcpy      disable 3DNow!/SSE/MMX optimized memcpy [enable]
596   --enable-hardcoded-tables put tables in binary instead of calculating them at startup [disable]
597   --enable-big-endian       force byte order to big-endian [autodetect]
598   --enable-debug[=1-3]      compile-in debugging information [disable]
599   --enable-profile          compile-in profiling information [disable]
600   --disable-sighandler      disable sighandler for crashes [enable]
601   --enable-relocatable      enable compiling as relocatable/PIE executable [disable]
602   --enable-crash-debug      enable automatic gdb attach on crash [disable]
603   --enable-dynamic-plugins  enable dynamic A/V plugins [disable]
604
605 Use these options if autodetection fails:
606   --extra-cflags=FLAGS        extra CFLAGS
607   --extra-ldflags=FLAGS       extra LDFLAGS
608   --extra-libs=FLAGS          extra linker flags
609   --extra-libs-mplayer=FLAGS  extra linker flags for MPlayer
610   --extra-libs-mencoder=FLAGS extra linker flags for MEncoder
611   --with-xvmclib=NAME         adapter-specific library name (e.g. XvMCNVIDIA)
612
613   --with-freetype-config=PATH path to freetype-config
614   --with-glib-config=PATH     path to glib*-config
615   --with-gtk-config=PATH      path to gtk*-config
616   --with-sdl-config=PATH      path to sdl*-config
617   --with-dvdnav-config=PATH   path to dvdnav-config
618   --with-dvdread-config=PATH  path to dvdread-config
619
620 This configure script is NOT autoconf-based, even though its output is similar.
621 It will try to autodetect all configuration options. If you --enable an option
622 it will be forcefully turned on, skipping autodetection. This can break
623 compilation, so you need to know what you are doing.
624 EOF
625 exit 0
626 } #show_help()
627
628 # GOTCHA: the variables below defines the default behavior for autodetection
629 # and have - unless stated otherwise - at least 2 states : yes no
630 # If autodetection is available then the third state is: auto
631 _mmx=auto
632 _3dnow=auto
633 _3dnowext=auto
634 _mmxext=auto
635 _sse=auto
636 _sse2=auto
637 _ssse3=auto
638 _cmov=auto
639 _fast_cmov=auto
640 _fast_clz=auto
641 _armv5te=auto
642 _armv6=auto
643 _armv6t2=auto
644 _armvfp=auto
645 vfpv3=auto
646 neon=auto
647 armthumb=auto
648 _iwmmxt=auto
649 _mtrr=auto
650 _altivec=auto
651 _install=install
652 _ranlib=ranlib
653 _windres=windres
654 _cc=cc
655 _ar=ar
656 test "$CC" && _cc="$CC"
657 _as=auto
658 _nm=auto
659 _yasm=yasm
660 _runtime_cpudetection=no
661 _cross_compile=auto
662 _prefix="/usr/local"
663 ffmpeg_a=auto
664 ffmpeg_so=auto
665 postproc=auto
666 _vf_lavfi=no
667 _libavcodec_mpegaudio_hp=yes
668 _libopencore_amrnb=auto
669 _libopencore_amrwb=auto
670 libopenjpeg=auto
671 libavdecoders_all=$(sed -n 's/^[^#]*DEC.*(.*, *\(.*\)).*/\1_decoder/p' ffmpeg/libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
672 libavdecoders=$(echo $libavdecoders_all | sed -e 's/ LIB[A-Z0-9_]*_DECODER//g')
673 libavencoders_all=$(sed -n 's/^[^#]*ENC.*(.*, *\(.*\)).*/\1_encoder/p' ffmpeg/libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
674 libavencoders=$(echo $libavencoders_all | sed -e 's/ LIB[A-Z0-9_]*_ENCODER//g')
675 libavparsers_all=$(sed -n 's/^[^#]*PARSER.*(.*, *\(.*\)).*/\1_parser/p' ffmpeg/libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
676 libavparsers=$libavparsers_all
677 libavbsfs_all=$(sed -n 's/^[^#]*BSF.*(.*, *\(.*\)).*/\1_bsf/p' ffmpeg/libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
678 libavbsfs=$libavbsfs_all
679 libavhwaccels_all=$(sed -n 's/^[^#]*HWACCEL.*(.*, *\(.*\)).*/\1_hwaccel/p' ffmpeg/libavcodec/allcodecs.c | tr '[a-z]' '[A-Z]')
680 # Disable all hardware accelerators for now.
681 libavhwaccels=
682 libavdemuxers_all=$(sed -n 's/^[^#]*DEMUX.*(.*, *\(.*\)).*/\1_demuxer/p' ffmpeg/libavformat/allformats.c | tr '[a-z]' '[A-Z]')
683 libavdemuxers=$(echo $libavdemuxers_all | sed -e 's/ LIB[A-Z0-9_]*_DEMUXER//g' -e s/REDIR_DEMUXER// -e s/AVISYNTH_DEMUXER//)
684 libavmuxers_all=$(sed -n 's/^[^#]*_MUX.*(.*, *\(.*\)).*/\1_muxer/p' ffmpeg/libavformat/allformats.c | tr '[a-z]' '[A-Z]')
685 libavmuxers=$(echo $libavmuxers_all | sed -e 's/ LIB[A-Z0-9_]*_MUXER//g' -e s/RTP_MUXER// -e s/RTSP_MUXER// -e s/SAP_MUXER//)
686 libavprotocols_all=$(sed -n 's/^[^#]*PROTOCOL.*(.*, *\(.*\)).*/\1_protocol/p' ffmpeg/libavformat/allformats.c | tr '[a-z]' '[A-Z]')
687 libavprotocols=$libavprotocols_all
688 libavprotocols=$(echo $libavprotocols | sed -e s/HTTPS_PROTOCOL// -e s/TLS_PROTOCOL// -e s/BLURAY_PROTOCOL// -e s/FFRTMPCRYPT_PROTOCOL//)
689 libavfilters_all=$(sed -n 's/^[^#]*FILTER.*(.*, *\(.*\),.*).*/\1_filter/p' ffmpeg/libavfilter/allfilters.c | tr '[a-z]' '[A-Z]')
690 libavfilters=$(echo $libavfilters_all | sed -e 's/ LIB[A-Z0-9_]*_FILTER//g' -e 's/ FREI0R[A-Z0-9_]*_FILTER//g' -e 's/ OCV_FILTER//g' -e 's/ MP_FILTER//g')
691 _mencoder=yes
692 _mplayer=yes
693 _x11=auto
694 _xshape=auto
695 _xss=auto
696 _dga1=auto
697 _dga2=auto
698 _xv=auto
699 _xvmc=no  #auto when complete
700 _vdpau=auto
701 _sdl=auto
702 _kva=auto
703 _direct3d=auto
704 _directx=auto
705 _win32waveout=auto
706 _nas=auto
707 _png=auto
708 _mng=auto
709 _jpeg=auto
710 _pnm=yes
711 _md5sum=yes
712 _yuv4mpeg=yes
713 _gif=auto
714 _gl=auto
715 matrixview=auto
716 _ggi=auto
717 _ggiwmh=auto
718 _aa=auto
719 _caca=auto
720 _svga=auto
721 _vesa=auto
722 _fbdev=auto
723 _dvb=auto
724 _dxr2=auto
725 _dxr3=auto
726 _ivtv=auto
727 _v4l2=auto
728 _iconv=auto
729 _langinfo=auto
730 _rtc=auto
731 _ossaudio=auto
732 _arts=auto
733 _esd=auto
734 _pulse=auto
735 _jack=auto
736 _kai=auto
737 _dart=auto
738 _openal=auto
739 _libcdio=auto
740 _liblzo=auto
741 _mad=auto
742 _mp3lame=auto
743 _mp3lame_lavc=auto
744 _toolame=auto
745 _twolame=auto
746 _tremor=auto
747 _tremor_internal=yes
748 _tremor_low=no
749 _libvorbis=auto
750 _speex=auto
751 _libgsm=auto
752 _theora=auto
753 _mpg123=auto
754 _mp3lib=auto
755 _liba52=auto
756 _libdca=auto
757 _libmpeg2=auto
758 _libmpeg2_internal=auto
759 _faad=auto
760 _faac=auto
761 _faac_lavc=auto
762 _ladspa=auto
763 _libbs2b=auto
764 _libopus=auto
765 _xmms=no
766 _vcd=auto
767 _bluray=auto
768 _dvdnav=auto
769 _dvdnavconfig=dvdnav-config
770 _dvdreadconfig=dvdread-config
771 _dvdread=auto
772 _dvdread_internal=auto
773 _libdvdcss_internal=auto
774 _xanim=auto
775 _real=auto
776 _live=auto
777 _nemesi=auto
778 _librtmp=auto
779 _native_rtsp=yes
780 _xinerama=auto
781 _mga=auto
782 _xmga=auto
783 _vm=auto
784 _xf86keysym=auto
785 _mlib=no #broken, thus disabled
786 _sgiaudio=auto
787 _sunaudio=auto
788 _alsa=auto
789 _fastmemcpy=yes
790 hardcoded_tables=no
791 _unrar_exec=auto
792 _win32dll=auto
793 _select=yes
794 _radio=no
795 _radio_capture=no
796 _radio_v4l=auto
797 _radio_v4l2=auto
798 _radio_bsdbt848=auto
799 _tv=yes
800 _tv_v4l1=auto
801 _tv_v4l2=auto
802 _tv_bsdbt848=auto
803 _tv_dshow=auto
804 _pvr=auto
805 networking=yes
806 _winsock2_h=auto
807 _struct_addrinfo=auto
808 _getaddrinfo=auto
809 _struct_sockaddr_storage=auto
810 _smb=auto
811 _vidix=auto
812 _vidix_pcidb=yes
813 _dhahelper=no
814 _svgalib_helper=no
815 _joystick=no
816 crystalhd=auto
817 _xvid=auto
818 _xvid_lavc=auto
819 _x264=auto
820 _x264_lavc=auto
821 _libdirac_lavc=auto
822 _libschroedinger_lavc=auto
823 _libvpx_lavc=auto
824 _libnut=auto
825 _lirc=auto
826 _lircc=auto
827 _apple_remote=auto
828 _apple_ir=auto
829 _gui=no
830 _gtk1=no
831 _termcap=auto
832 _termios=auto
833 _3dfx=no
834 _s3fb=no
835 _wii=no
836 _tdfxfb=no
837 _tdfxvid=no
838 _xvr100=auto
839 _tga=yes
840 _directfb=auto
841 _zr=auto
842 _bl=no
843 #language=en
844 _shm=auto
845 _charset="UTF-8"
846 _dynamic_plugins=no
847 _crash_debug=no
848 _sighandler=yes
849 relocatable=no
850 _libdv=auto
851 _cdparanoia=auto
852 _cddb=auto
853 _big_endian=auto
854 _bitmap_font=yes
855 _freetype=auto
856 _fontconfig=auto
857 _menu=no
858 _qtx=auto
859 _maemo=auto
860 _coreaudio=auto
861 _corevideo=auto
862 _quartz=auto
863 quicktime=auto
864 _macosx_finder=no
865 _macosx_bundle=auto
866 _sortsub=yes
867 _freetypeconfig='freetype-config'
868 _fribidi=auto
869 _enca=auto
870 _inet6=auto
871 _sctp=auto
872 _gethostbyname2=auto
873 _ftp=auto
874 _musepack=no
875 _vstream=auto
876 _pthreads=auto
877 _w32threads=auto
878 _os2threads=auto
879 _ass=auto
880 ass_internal=auto
881 _rpath=no
882 _asmalign_pot=auto
883 _stream_cache=yes
884 _priority=no
885 def_dos_paths="#define HAVE_DOS_PATHS 0"
886 def_stream_cache="#define CONFIG_STREAM_CACHE 1"
887 def_priority="#undef CONFIG_PRIORITY"
888 def_pthread_cache="#undef PTHREAD_CACHE"
889 shmem=no
890 for ac_option do
891   case "$ac_option" in
892   --help|-help|-h)
893     show_help
894     ;;
895   --prefix=*)
896     _prefix=$(echo $ac_option | cut -d '=' -f 2)
897     ;;
898   --bindir=*)
899     _bindir=$(echo $ac_option | cut -d '=' -f 2)
900     ;;
901   --datadir=*)
902     _datadir=$(echo $ac_option | cut -d '=' -f 2)
903     ;;
904   --mandir=*)
905     _mandir=$(echo $ac_option | cut -d '=' -f 2)
906     ;;
907   --confdir=*)
908     _confdir=$(echo $ac_option | cut -d '=' -f 2)
909     ;;
910   --libdir=*)
911     _libdir=$(echo $ac_option | cut -d '=' -f 2)
912     ;;
913   --codecsdir=*)
914     _codecsdir=$(echo $ac_option | cut -d '=' -f 2)
915     ;;
916
917   --with-install=*)
918     _install=$(echo $ac_option | cut -d '=' -f 2 )
919     ;;
920   --with-xvmclib=*)
921     _xvmclib=$(echo $ac_option | cut -d '=' -f 2)
922     ;;
923
924   --with-sdl-config=*)
925     _sdlconfig=$(echo $ac_option | cut -d '=' -f 2)
926     ;;
927   --with-freetype-config=*)
928     _freetypeconfig=$(echo $ac_option | cut -d '=' -f 2)
929     ;;
930   --with-gtk-config=*)
931     _gtkconfig=$(echo $ac_option | cut -d '=' -f 2)
932     ;;
933   --with-glib-config=*)
934     _glibconfig=$(echo $ac_option | cut -d '=' -f 2)
935     ;;
936   --with-dvdnav-config=*)
937     _dvdnavconfig=$(echo $ac_option | cut -d '=' -f 2)
938     ;;
939   --with-dvdread-config=*)
940     _dvdreadconfig=$(echo $ac_option | cut -d '=' -f 2)
941     ;;
942
943   --extra-cflags=*)
944     extra_cflags=$(echo $ac_option | cut -d '=' -f 2-)
945     ;;
946   --extra-ldflags=*)
947     extra_ldflags=$(echo $ac_option | cut -d '=' -f 2-)
948     ;;
949   --extra-libs=*)
950     extra_libs=$(echo $ac_option | cut -d '=' -f 2)
951     ;;
952   --extra-libs-mplayer=*)
953     libs_mplayer=$(echo $ac_option | cut -d '=' -f 2)
954     ;;
955   --extra-libs-mencoder=*)
956     libs_mencoder=$(echo $ac_option | cut -d '=' -f 2)
957     ;;
958
959   --target=*)
960     _target=$(echo $ac_option | cut -d '=' -f 2)
961     ;;
962   --cc=*)
963     _cc=$(echo $ac_option | cut -d '=' -f 2)
964     ;;
965   --host-cc=*)
966     _host_cc=$(echo $ac_option | cut -d '=' -f 2)
967     ;;
968   --as=*)
969     _as=$(echo $ac_option | cut -d '=' -f 2)
970     ;;
971   --nm=*)
972     _nm=$(echo $ac_option | cut -d '=' -f 2)
973     ;;
974   --yasm=*)
975     _yasm=$(echo $ac_option | cut -d '=' -f 2)
976     ;;
977   --ar=*)
978     _ar=$(echo $ac_option | cut -d '=' -f 2)
979     ;;
980   --ranlib=*)
981     _ranlib=$(echo $ac_option | cut -d '=' -f 2)
982     ;;
983   --windres=*)
984     _windres=$(echo $ac_option | cut -d '=' -f 2)
985     ;;
986   --charset=*)
987     _charset=$(echo $ac_option | cut -d '=' -f 2)
988     ;;
989   --language-doc=*)
990     language_doc=$(echo $ac_option | cut -d '=' -f 2)
991     ;;
992   --language-man=*)
993     language_man=$(echo $ac_option | cut -d '=' -f 2)
994     ;;
995   --language-msg=*)
996     language_msg=$(echo $ac_option | cut -d '=' -f 2)
997     ;;
998   --language=*)
999     language=$(echo $ac_option | cut -d '=' -f 2)
1000     ;;
1001
1002   --enable-static)
1003     ld_static='-static'
1004     ;;
1005   --disable-static)
1006     ld_static=''
1007     ;;
1008   --enable-profile)
1009     _profile='-p'
1010     ;;
1011   --disable-profile)
1012     _profile=
1013     ;;
1014   --enable-debug)
1015     _debug='-g'
1016     ;;
1017   --enable-debug=*)
1018     _debug=$(echo $_echo_n '-g'$_echo_c; echo $ac_option | cut -d '=' -f 2)
1019     ;;
1020   --disable-debug)
1021     _debug=
1022     ;;
1023   --enable-runtime-cpudetection)    _runtime_cpudetection=yes   ;;
1024   --disable-runtime-cpudetection)   _runtime_cpudetection=no    ;;
1025   --enable-cross-compile)           _cross_compile=yes          ;;
1026   --disable-cross-compile)          _cross_compile=no           ;;
1027   --enable-mencoder)    _mencoder=yes   ;;
1028   --disable-mencoder)   _mencoder=no    ;;
1029   --enable-mplayer)     _mplayer=yes    ;;
1030   --disable-mplayer)    _mplayer=no     ;;
1031   --enable-dynamic-plugins) _dynamic_plugins=yes ;;
1032   --disable-dynamic-plugins) _dynamic_plugins=no ;;
1033   --enable-x11)         _x11=yes        ;;
1034   --disable-x11)        _x11=no         ;;
1035   --enable-xshape)      _xshape=yes     ;;
1036   --disable-xshape)     _xshape=no      ;;
1037   --enable-xss)         _xss=yes        ;;
1038   --disable-xss)        _xss=no         ;;
1039   --enable-xv)          _xv=yes         ;;
1040   --disable-xv)         _xv=no          ;;
1041   --enable-xvmc)        _xvmc=yes       ;;
1042   --disable-xvmc)       _xvmc=no        ;;
1043   --enable-vdpau)       _vdpau=yes      ;;
1044   --disable-vdpau)      _vdpau=no       ;;
1045   --enable-sdl)         _sdl=yes        ;;
1046   --disable-sdl)        _sdl=no         ;;
1047   --enable-kva)         _kva=yes        ;;
1048   --disable-kva)        _kva=no         ;;
1049   --enable-direct3d)    _direct3d=yes   ;;
1050   --disable-direct3d)   _direct3d=no    ;;
1051   --enable-directx)     _directx=yes    ;;
1052   --disable-directx)    _directx=no     ;;
1053   --enable-win32waveout)  _win32waveout=yes ;;
1054   --disable-win32waveout) _win32waveout=no  ;;
1055   --enable-nas)         _nas=yes        ;;
1056   --disable-nas)        _nas=no         ;;
1057   --enable-png)         _png=yes        ;;
1058   --disable-png)        _png=no         ;;
1059   --enable-mng)         _mng=yes        ;;
1060   --disable-mng)        _mng=no         ;;
1061   --enable-jpeg)        _jpeg=yes       ;;
1062   --disable-jpeg)       _jpeg=no        ;;
1063   --enable-libopenjpeg) libopenjpeg=yes ;;
1064   --disable-libopenjpeg)libopenjpeg=no  ;;
1065   --enable-pnm)         _pnm=yes        ;;
1066   --disable-pnm)        _pnm=no         ;;
1067   --enable-md5sum)      _md5sum=yes     ;;
1068   --disable-md5sum)     _md5sum=no      ;;
1069   --enable-yuv4mpeg)    _yuv4mpeg=yes   ;;
1070   --disable-yuv4mpeg)   _yuv4mpeg=no    ;;
1071   --enable-gif)         _gif=yes        ;;
1072   --disable-gif)        _gif=no         ;;
1073   --enable-gl)          _gl=yes         ;;
1074   --disable-gl)         _gl=no          ;;
1075   --enable-matrixview)  matrixview=yes  ;;
1076   --disable-matrixview) matrixview=no   ;;
1077   --enable-ggi)         _ggi=yes        ;;
1078   --disable-ggi)        _ggi=no         ;;
1079   --enable-ggiwmh)      _ggiwmh=yes     ;;
1080   --disable-ggiwmh)     _ggiwmh=no      ;;
1081   --enable-aa)          _aa=yes         ;;
1082   --disable-aa)         _aa=no          ;;
1083   --enable-caca)        _caca=yes       ;;
1084   --disable-caca)       _caca=no        ;;
1085   --enable-svga)        _svga=yes       ;;
1086   --disable-svga)       _svga=no        ;;
1087   --enable-vesa)        _vesa=yes       ;;
1088   --disable-vesa)       _vesa=no        ;;
1089   --enable-fbdev)       _fbdev=yes      ;;
1090   --disable-fbdev)      _fbdev=no       ;;
1091   --enable-dvb)         _dvb=yes        ;;
1092   --disable-dvb)        _dvb=no         ;;
1093   --enable-dxr2)        _dxr2=yes       ;;
1094   --disable-dxr2)       _dxr2=no        ;;
1095   --enable-dxr3)        _dxr3=yes       ;;
1096   --disable-dxr3)       _dxr3=no        ;;
1097   --enable-ivtv)        _ivtv=yes       ;;
1098   --disable-ivtv)       _ivtv=no        ;;
1099   --enable-v4l2)        _v4l2=yes       ;;
1100   --disable-v4l2)       _v4l2=no        ;;
1101   --enable-iconv)       _iconv=yes      ;;
1102   --disable-iconv)      _iconv=no       ;;
1103   --enable-langinfo)    _langinfo=yes   ;;
1104   --disable-langinfo)   _langinfo=no    ;;
1105   --enable-rtc)         _rtc=yes        ;;
1106   --disable-rtc)        _rtc=no         ;;
1107   --enable-libdv)       _libdv=yes      ;;
1108   --disable-libdv)      _libdv=no       ;;
1109   --enable-ossaudio)    _ossaudio=yes   ;;
1110   --disable-ossaudio)   _ossaudio=no    ;;
1111   --enable-arts)        _arts=yes       ;;
1112   --disable-arts)       _arts=no        ;;
1113   --enable-esd)         _esd=yes        ;;
1114   --disable-esd)        _esd=no         ;;
1115   --enable-pulse)       _pulse=yes      ;;
1116   --disable-pulse)      _pulse=no       ;;
1117   --enable-jack)        _jack=yes       ;;
1118   --disable-jack)       _jack=no        ;;
1119   --enable-openal)      _openal=yes     ;;
1120   --disable-openal)     _openal=no      ;;
1121   --enable-kai)         _kai=yes        ;;
1122   --disable-kai)        _kai=no         ;;
1123   --enable-dart)        _dart=yes       ;;
1124   --disable-dart)       _dart=no        ;;
1125   --enable-mad)         _mad=yes        ;;
1126   --disable-mad)        _mad=no         ;;
1127   --enable-mp3lame)     _mp3lame=yes    ;;
1128   --disable-mp3lame)    _mp3lame=no     ;;
1129   --enable-mp3lame-lavc)  _mp3lame_lavc=yes       ;;
1130   --disable-mp3lame-lavc) _mp3lame_lavc=no        ;;
1131   --enable-toolame)     _toolame=yes    ;;
1132   --disable-toolame)    _toolame=no     ;;
1133   --enable-twolame)     _twolame=yes    ;;
1134   --disable-twolame)    _twolame=no     ;;
1135   --enable-libcdio)     _libcdio=yes    ;;
1136   --disable-libcdio)    _libcdio=no     ;;
1137   --enable-liblzo)      _liblzo=yes     ;;
1138   --disable-liblzo)     _liblzo=no      ;;
1139   --enable-libvorbis)   _libvorbis=yes  ;;
1140   --disable-libvorbis)  _libvorbis=no   ;;
1141   --enable-speex)       _speex=yes      ;;
1142   --disable-speex)      _speex=no       ;;
1143   --enable-libgsm)      _libgsm=yes     ;;
1144   --disable-libgsm)     _libgsm=no      ;;
1145   --enable-tremor)      _tremor=yes     ;;
1146   --disable-tremor)     _tremor=no      ;;
1147   --enable-tremor-internal)     _tremor_internal=yes    ;;
1148   --disable-tremor-internal)    _tremor_internal=no     ;;
1149   --enable-tremor-low)  _tremor_low=yes ;;
1150   --disable-tremor-low) _tremor_low=no  ;;
1151   --enable-theora)      _theora=yes     ;;
1152   --disable-theora)     _theora=no      ;;
1153   --enable-mpg123)      _mpg123=yes     ;;
1154   --disable-mpg123)     _mpg123=no      ;;
1155   --enable-mp3lib)      _mp3lib=yes     ;;
1156   --disable-mp3lib)     _mp3lib=no      ;;
1157   --enable-liba52)      _liba52=yes     ;;
1158   --disable-liba52)     _liba52=no      ;;
1159   --enable-libdca)      _libdca=yes     ;;
1160   --disable-libdca)     _libdca=no      ;;
1161   --enable-libmpeg2)    _libmpeg2=yes   ;;
1162   --disable-libmpeg2)   _libmpeg2=no    ;;
1163   --enable-libmpeg2-internal)    _libmpeg2_internal=yes   ;;
1164   --disable-libmpeg2-internal)   _libmpeg2_internal=no    ;;
1165   --enable-musepack)    _musepack=yes   ;;
1166   --disable-musepack)   _musepack=no    ;;
1167   --enable-faad)        _faad=yes       ;;
1168   --disable-faad)       _faad=no        ;;
1169   --enable-faac)        _faac=yes       ;;
1170   --disable-faac)       _faac=no        ;;
1171   --enable-faac-lavc)   _faac_lavc=yes  ;;
1172   --disable-faac-lavc)  _faac_lavc=no   ;;
1173   --enable-ladspa)      _ladspa=yes     ;;
1174   --disable-ladspa)     _ladspa=no      ;;
1175   --enable-libbs2b)     _libbs2b=yes    ;;
1176   --disable-libbs2b)    _libbs2b=no     ;;
1177   --enable-libopus)     _libopus=yes    ;;
1178   --disable-libopus)    _libopus=no     ;;
1179   --enable-xmms)        _xmms=yes       ;;
1180   --disable-xmms)       _xmms=no        ;;
1181   --enable-vcd)         _vcd=yes        ;;
1182   --disable-vcd)        _vcd=no         ;;
1183   --enable-bluray)      _bluray=yes     ;;
1184   --disable-bluray)     _bluray=no      ;;
1185   --enable-dvdread)     _dvdread=yes    ;;
1186   --disable-dvdread)    _dvdread=no     ;;
1187   --enable-dvdread-internal)    _dvdread_internal=yes   ;;
1188   --disable-dvdread-internal)   _dvdread_internal=no    ;;
1189   --enable-libdvdcss-internal)  _libdvdcss_internal=yes ;;
1190   --disable-libdvdcss-internal) _libdvdcss_internal=no  ;;
1191   --enable-dvdnav)      _dvdnav=yes     ;;
1192   --disable-dvdnav)     _dvdnav=no      ;;
1193   --enable-xanim)       _xanim=yes      ;;
1194   --disable-xanim)      _xanim=no       ;;
1195   --enable-real)        _real=yes       ;;
1196   --disable-real)       _real=no        ;;
1197   --enable-live)        _live=yes       ;;
1198   --disable-live)       _live=no        ;;
1199   --enable-nemesi)      _nemesi=yes     ;;
1200   --disable-nemesi)     _nemesi=no      ;;
1201   --enable-librtmp)     _librtmp=yes    ;;
1202   --disable-librtmp)    _librtmp=no     ;;
1203   --enable-xinerama)    _xinerama=yes   ;;
1204   --disable-xinerama)   _xinerama=no    ;;
1205   --enable-mga)         _mga=yes        ;;
1206   --disable-mga)        _mga=no         ;;
1207   --enable-xmga)        _xmga=yes       ;;
1208   --disable-xmga)       _xmga=no        ;;
1209   --enable-vm)          _vm=yes         ;;
1210   --disable-vm)         _vm=no          ;;
1211   --enable-xf86keysym)  _xf86keysym=yes ;;
1212   --disable-xf86keysym) _xf86keysym=no  ;;
1213   --enable-mlib)        _mlib=yes       ;;
1214   --disable-mlib)       _mlib=no        ;;
1215   --enable-sunaudio)    _sunaudio=yes   ;;
1216   --disable-sunaudio)   _sunaudio=no    ;;
1217   --enable-sgiaudio)    _sgiaudio=yes   ;;
1218   --disable-sgiaudio)   _sgiaudio=no    ;;
1219   --enable-alsa)        _alsa=yes       ;;
1220   --disable-alsa)       _alsa=no        ;;
1221   --enable-tv)          _tv=yes         ;;
1222   --disable-tv)         _tv=no          ;;
1223   --enable-tv-bsdbt848)  _tv_bsdbt848=yes ;;
1224   --disable-tv-bsdbt848) _tv_bsdbt848=no  ;;
1225   --enable-tv-v4l1)     _tv_v4l1=yes    ;;
1226   --disable-tv-v4l1)    _tv_v4l1=no     ;;
1227   --enable-tv-v4l2)     _tv_v4l2=yes    ;;
1228   --disable-tv-v4l2)    _tv_v4l2=no     ;;
1229   --enable-tv-dshow)    _tv_dshow=yes   ;;
1230   --disable-tv-dshow)   _tv_dshow=no    ;;
1231   --enable-radio)       _radio=yes      ;;
1232   --enable-radio-capture)       _radio_capture=yes      ;;
1233   --disable-radio-capture)      _radio_capture=no       ;;
1234   --disable-radio)      _radio=no       ;;
1235   --enable-radio-v4l)   _radio_v4l=yes  ;;
1236   --disable-radio-v4l)  _radio_v4l=no   ;;
1237   --enable-radio-v4l2)  _radio_v4l2=yes ;;
1238   --disable-radio-v4l2) _radio_v4l2=no  ;;
1239   --enable-radio-bsdbt848)      _radio_bsdbt848=yes     ;;
1240   --disable-radio-bsdbt848)     _radio_bsdbt848=no      ;;
1241   --enable-pvr)         _pvr=yes        ;;
1242   --disable-pvr)        _pvr=no         ;;
1243   --enable-fastmemcpy)  _fastmemcpy=yes ;;
1244   --disable-fastmemcpy) _fastmemcpy=no  ;;
1245   --enable-hardcoded-tables)  hardcoded_tables=yes ;;
1246   --disable-hardcoded-tables) hardcoded_tables=no  ;;
1247   --enable-networking)     networking=yes    ;;
1248   --disable-networking)    networking=no     ;;
1249   --enable-winsock2_h)  _winsock2_h=yes ;;
1250   --disable-winsock2_h) _winsock2_h=no  ;;
1251   --enable-smb)         _smb=yes        ;;
1252   --disable-smb)        _smb=no ;;
1253   --enable-vidix)       _vidix=yes      ;;
1254   --disable-vidix)      _vidix=no       ;;
1255   --with-vidix-drivers=*)
1256     _vidix_drivers=$(echo $ac_option | cut -d '=' -f 2)
1257     ;;
1258   --disable-vidix-pcidb)  _vidix_pcidb=no         ;;
1259   --enable-dhahelper)   _dhahelper=yes  ;;
1260   --disable-dhahelper)  _dhahelper=no   ;;
1261   --enable-svgalib_helper)      _svgalib_helper=yes     ;;
1262   --disable-svgalib_helper)     _svgalib_helper=no      ;;
1263   --enable-joystick)    _joystick=yes   ;;
1264   --disable-joystick)   _joystick=no    ;;
1265   --enable-crystalhd)   crystalhd=yes  ;;
1266   --disable-crystalhd)  crystalhd=no   ;;
1267   --enable-xvid)        _xvid=yes       ;;
1268   --disable-xvid)       _xvid=no        ;;
1269   --enable-xvid-lavc)   _xvid_lavc=yes  ;;
1270   --disable-xvid-lavc)  _xvid_lavc=no   ;;
1271   --enable-x264)        _x264=yes       ;;
1272   --disable-x264)       _x264=no        ;;
1273   --enable-x264-lavc)   _x264_lavc=yes  ;;
1274   --disable-x264-lavc)  _x264_lavc=no   ;;
1275   --enable-libdirac-lavc)   _libdirac_lavc=yes  ;;
1276   --disable-libdirac-lavc)  _libdirac_lavc=no   ;;
1277   --enable-libschroedinger-lavc)   _libschroedinger_lavc=yes  ;;
1278   --disable-libschroedinger-lavc)  _libschroedinger_lavc=no   ;;
1279   --enable-libvpx-lavc)   _libvpx_lavc=yes  ;;
1280   --disable-libvpx-lavc)  _libvpx_lavc=no   ;;
1281   --enable-libnut)      _libnut=yes     ;;
1282   --disable-libnut)     _libnut=no      ;;
1283   --enable-libopencore_amrnb)   _libopencore_amrnb=yes  ;;
1284   --disable-libopencore_amrnb)  _libopencore_amrnb=no   ;;
1285   --enable-libopencore_amrwb)   _libopencore_amrwb=yes  ;;
1286   --disable-libopencore_amrwb)  _libopencore_amrwb=no   ;;
1287   --enable-decoder=*)  libavdecoders="$libavdecoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1288   --disable-decoder=*) libavdecoders=$(echo $libavdecoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1289   --enable-encoder=*)  libavencoders="$libavencoders $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1290   --disable-encoder=*) libavencoders=$(echo $libavencoders | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1291   --enable-parser=*)   libavparsers="$libavparsers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1292   --disable-parser=*)  libavparsers=$(echo $libavparsers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1293   --enable-protocol=*)   libavprotocols="$libavprotocols $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1294   --disable-protocol=*)  libavprotocols=$(echo $libavprotocols | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1295   --enable-demuxer=*)  libavdemuxers="$libavdemuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1296   --disable-demuxer=*) libavdemuxers=$(echo $libavdemuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1297   --enable-muxer=*)    libavmuxers="$libavmuxers $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1298   --disable-muxer=*)    libavmuxers=$(echo $libavmuxers | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1299   --enable-filter=*)    libavfilters="$libavfilters $(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')" ;;
1300   --disable-filter=*)    libavfilters=$(echo $libavfilters | sed "s/$(echo $ac_option | cut -d '=' -f 2 | tr '[a-z]' '[A-Z]')//g") ;;
1301   --enable-ffmpeg_a)    ffmpeg_a=yes    ;;
1302   --disable-ffmpeg_a)   ffmpeg_a=no     ;;
1303   --enable-ffmpeg_so)   ffmpeg_so=yes   ;;
1304   --disable-ffmpeg_so)  ffmpeg_so=no    ;;
1305   --enable-postproc)    postproc=yes    ;;
1306   --disable-postproc)   postproc=no     ;;
1307   --enable-vf-lavfi)    _vf_lavfi=yes   ;;
1308   --disable-vf-lavfi)   _vf_lavfi=no    ;;
1309   --enable-libavcodec_mpegaudio_hp)     _libavcodec_mpegaudio_hp=yes    ;;
1310   --disable-libavcodec_mpegaudio_hp)    _libavcodec_mpegaudio_hp=no     ;;
1311
1312   --enable-lirc)        _lirc=yes       ;;
1313   --disable-lirc)       _lirc=no        ;;
1314   --enable-lircc)       _lircc=yes      ;;
1315   --disable-lircc)      _lircc=no       ;;
1316   --enable-apple-remote)  _apple_remote=yes ;;
1317   --disable-apple-remote) _apple_remote=no  ;;
1318   --enable-apple-ir)    _apple_ir=yes   ;;
1319   --disable-apple-ir)   _apple_ir=no    ;;
1320   --enable-gui)         _gui=yes        ;;
1321   --disable-gui)        _gui=no         ;;
1322   --enable-gtk1)        _gtk1=yes       ;;
1323   --disable-gtk1)       _gtk1=no        ;;
1324   --enable-termcap)     _termcap=yes    ;;
1325   --disable-termcap)    _termcap=no     ;;
1326   --enable-termios)     _termios=yes    ;;
1327   --disable-termios)    _termios=no     ;;
1328   --enable-3dfx)        _3dfx=yes       ;;
1329   --disable-3dfx)       _3dfx=no        ;;
1330   --enable-s3fb)        _s3fb=yes       ;;
1331   --disable-s3fb)       _s3fb=no        ;;
1332   --enable-wii)         _wii=yes        ;;
1333   --disable-wii)        _wii=no         ;;
1334   --enable-tdfxfb)      _tdfxfb=yes     ;;
1335   --disable-tdfxfb)     _tdfxfb=no      ;;
1336   --disable-tdfxvid)    _tdfxvid=no     ;;
1337   --enable-tdfxvid)     _tdfxvid=yes    ;;
1338   --disable-xvr100)     _xvr100=no      ;;
1339   --enable-xvr100)      _xvr100=yes     ;;
1340   --disable-tga)        _tga=no         ;;
1341   --enable-tga)         _tga=yes        ;;
1342   --enable-directfb)    _directfb=yes   ;;
1343   --disable-directfb)   _directfb=no    ;;
1344   --enable-zr)          _zr=yes         ;;
1345   --disable-zr)         _zr=no          ;;
1346   --enable-bl)          _bl=yes         ;;
1347   --disable-bl)         _bl=no          ;;
1348   --enable-mtrr)        _mtrr=yes       ;;
1349   --disable-mtrr)       _mtrr=no        ;;
1350   --enable-shm)         _shm=yes        ;;
1351   --disable-shm)        _shm=no         ;;
1352   --enable-select)      _select=yes     ;;
1353   --disable-select)     _select=no      ;;
1354   --enable-cdparanoia)  _cdparanoia=yes ;;
1355   --disable-cdparanoia) _cdparanoia=no  ;;
1356   --enable-cddb)        _cddb=yes       ;;
1357   --disable-cddb)       _cddb=no        ;;
1358   --enable-big-endian)  _big_endian=yes ;;
1359   --disable-big-endian) _big_endian=no  ;;
1360   --enable-bitmap-font)    _bitmap_font=yes   ;;
1361   --disable-bitmap-font)   _bitmap_font=no    ;;
1362   --enable-freetype)    _freetype=yes   ;;
1363   --disable-freetype)   _freetype=no    ;;
1364   --enable-fontconfig)  _fontconfig=yes ;;
1365   --disable-fontconfig) _fontconfig=no  ;;
1366   --enable-unrarexec)   _unrar_exec=yes ;;
1367   --disable-unrarexec)  _unrar_exec=no  ;;
1368   --enable-ftp)         _ftp=yes        ;;
1369   --disable-ftp)        _ftp=no         ;;
1370   --enable-vstream)     _vstream=yes    ;;
1371   --disable-vstream)    _vstream=no     ;;
1372   --enable-pthreads)    _pthreads=yes   ;;
1373   --disable-pthreads)   _pthreads=no    ;;
1374   --enable-w32threads)  _w32threads=yes ;;
1375   --disable-w32threads) _w32threads=no  ;;
1376   --enable-os2threads)  _os2threads=yes ;;
1377   --disable-os2threads) _os2threads=no  ;;
1378   --enable-ass)         _ass=yes        ;;
1379   --disable-ass)        _ass=no         ;;
1380   --enable-ass-internal)  ass_internal=yes ;;
1381   --disable-ass-internal) ass_internal=no  ;;
1382   --enable-rpath)       _rpath=yes      ;;
1383   --disable-rpath)      _rpath=no       ;;
1384
1385   --enable-fribidi)     _fribidi=yes    ;;
1386   --disable-fribidi)    _fribidi=no     ;;
1387
1388   --enable-enca)        _enca=yes       ;;
1389   --disable-enca)       _enca=no        ;;
1390
1391   --enable-inet6)       _inet6=yes      ;;
1392   --disable-inet6)      _inet6=no       ;;
1393
1394   --enable-sctp)        _sctp=yes       ;;
1395   --disable-sctp)       _sctp=no        ;;
1396
1397   --enable-gethostbyname2)      _gethostbyname2=yes     ;;
1398   --disable-gethostbyname2)     _gethostbyname2=no      ;;
1399
1400   --enable-dga1) _dga1=yes ;;
1401   --disable-dga1) _dga1=no ;;
1402   --enable-dga2) _dga2=yes ;;
1403   --disable-dga2) _dga2=no ;;
1404
1405   --enable-menu) _menu=yes ;;
1406   --disable-menu) _menu=no ;;
1407
1408   --enable-qtx) _qtx=yes ;;
1409   --disable-qtx) _qtx=no ;;
1410
1411   --enable-coreaudio) _coreaudio=yes ;;
1412   --disable-coreaudio) _coreaudio=no ;;
1413   --enable-corevideo) _corevideo=yes ;;
1414   --disable-corevideo) _corevideo=no ;;
1415   --enable-quartz) _quartz=yes ;;
1416   --disable-quartz) _quartz=no ;;
1417   --enable-macosx-finder) _macosx_finder=yes ;;
1418   --disable-macosx-finder) _macosx_finder=no ;;
1419   --enable-macosx-bundle) _macosx_bundle=yes ;;
1420   --disable-macosx-bundle) _macosx_bundle=no ;;
1421
1422   --enable-maemo) _maemo=yes ;;
1423   --disable-maemo) _maemo=no ;;
1424
1425   --enable-sortsub) _sortsub=yes ;;
1426   --disable-sortsub) _sortsub=no ;;
1427
1428   --enable-crash-debug) _crash_debug=yes ;;
1429   --disable-crash-debug) _crash_debug=no ;;
1430   --enable-sighandler)  _sighandler=yes  ;;
1431   --disable-sighandler) _sighandler=no   ;;
1432   --enable-relocatable)  relocatable=yes  ;;
1433   --disable-relocatable) relocatable=no   ;;
1434   --enable-win32dll) _win32dll=yes ;;
1435   --disable-win32dll) _win32dll=no ;;
1436
1437   --enable-sse) _sse=yes ;;
1438   --disable-sse) _sse=no ;;
1439   --enable-sse2) _sse2=yes ;;
1440   --disable-sse2) _sse2=no ;;
1441   --enable-ssse3) _ssse3=yes ;;
1442   --disable-ssse3) _ssse3=no ;;
1443   --enable-mmxext) _mmxext=yes ;;
1444   --disable-mmxext) _mmxext=no ;;
1445   --enable-3dnow) _3dnow=yes ;;
1446   --disable-3dnow) _3dnow=no _3dnowext=no ;;
1447   --enable-3dnowext) _3dnow=yes _3dnowext=yes ;;
1448   --disable-3dnowext) _3dnowext=no ;;
1449   --enable-cmov) _cmov=yes ;;
1450   --disable-cmov) _cmov=no ;;
1451   --enable-fast-cmov) _fast_cmov=yes ;;
1452   --disable-fast-cmov) _fast_cmov=no ;;
1453   --enable-fast-clz) _fast_clz=yes ;;
1454   --disable-fast-clz) _fast_clz=no ;;
1455   --enable-altivec) _altivec=yes ;;
1456   --disable-altivec) _altivec=no ;;
1457   --enable-armv5te) _armv5te=yes ;;
1458   --disable-armv5te) _armv5te=no ;;
1459   --enable-armv6) _armv6=yes ;;
1460   --disable-armv6) _armv6=no ;;
1461   --enable-armv6t2) _armv6t2=yes ;;
1462   --disable-armv6t2) _armv6t2=no ;;
1463   --enable-armvfp) _armvfp=yes ;;
1464   --disable-armvfp) _armvfp=no ;;
1465   --enable-vfpv3) vfpv3=yes ;;
1466   --disable-vfpv3) vfpv3=no ;;
1467   --enable-neon) neon=yes ;;
1468   --disable-neon) neon=no ;;
1469   --enable-thumb) armthumb=yes ;;
1470   --disable-thumb) armthumb=no ;;
1471   --enable-iwmmxt) _iwmmxt=yes ;;
1472   --disable-iwmmxt) _iwmmxt=no ;;
1473   --enable-mmx) _mmx=yes ;;
1474   --disable-mmx) # 3DNow! and MMX2 require MMX
1475         _3dnow=no _3dnowext=no _mmx=no _mmxext=no ;;
1476
1477   *)
1478     echo "Unknown parameter: $ac_option"
1479     exit 1
1480     ;;
1481
1482   esac
1483 done
1484
1485 # Atmos: moved this here, to be correct, if --prefix is specified
1486 test -z "$_bindir"  && _bindir="$_prefix/bin"
1487 test -z "$_datadir" && _datadir="$_prefix/share/mplayer"
1488 test -z "$_mandir"  && _mandir="$_prefix/share/man"
1489 test -z "$_confdir" && _confdir="$_prefix/etc/mplayer"
1490 test -z "$_libdir"  && _libdir="$_prefix/lib"
1491
1492 # Determine our OS name and CPU architecture
1493 if test -z "$_target" ; then
1494   # OS name
1495   system_name=$(uname -s 2>&1)
1496   case "$system_name" in
1497   Linux|FreeBSD|NetBSD|OpenBSD|DragonFly|BSD/OS|Darwin|SunOS|QNX|GNU|MorphOS|AIX|AmigaOS|Haiku)
1498     ;;
1499   IRIX*)
1500     system_name=IRIX
1501     ;;
1502   GNU/kFreeBSD)
1503     system_name=FreeBSD
1504     ;;
1505   HP-UX*)
1506     system_name=HP-UX
1507     ;;
1508   [cC][yY][gG][wW][iI][nN]*)
1509     system_name=CYGWIN
1510     ;;
1511   MINGW32*)
1512     system_name=MINGW32
1513     ;;
1514   OS/2*)
1515     system_name=OS/2
1516     ;;
1517   *)
1518     system_name="$system_name-UNKNOWN"
1519     ;;
1520   esac
1521
1522
1523   # host's CPU/instruction set
1524   case "$(uname -m 2>&1)" in
1525       x86_64|amd64|i[3-9]86*|i86pc|x86|x86pc|k5|k6|k6_2|k6_3|k6-2|k6-3|pentium*|athlon*|i586_i686|i586-i686) host_arch=i386 ;;
1526       ia64) host_arch=ia64 ;;
1527       macppc|ppc*|Power*) host_arch=ppc ;;
1528       alpha) host_arch=alpha ;;
1529       sun4*|sparc*) host_arch=sparc ;;
1530       parisc*|hppa*|9000*) host_arch=hppa ;;
1531       arm*|zaurus|cats) host_arch=arm ;;
1532       sh3|sh4|sh4a) host_arch=sh ;;
1533       s390) host_arch=s390 ;;
1534       s390x) host_arch=s390x ;;
1535       *mips*) host_arch=mips ;;
1536       vax) host_arch=vax ;;
1537       xtensa*) host_arch=xtensa ;;
1538       *) host_arch=UNKNOWN ;;
1539   esac
1540 else # if test -z "$_target"
1541   for component in 3 2; do
1542     system_name=$(echo $_target | cut -d '-' -f $component)
1543     case "$(echo $system_name | tr A-Z a-z)" in
1544       linux) system_name=Linux ;;
1545       freebsd) system_name=FreeBSD ;;
1546       gnu/kfreebsd) system_name=FreeBSD ;;
1547       netbsd) system_name=NetBSD ;;
1548       bsd/os) system_name=BSD/OS ;;
1549       openbsd) system_name=OpenBSD ;;
1550       dragonfly) system_name=DragonFly ;;
1551       sunos) system_name=SunOS ;;
1552       qnx) system_name=QNX ;;
1553       morphos) system_name=MorphOS ;;
1554       amigaos) system_name=AmigaOS ;;
1555       mingw32*) system_name=MINGW32 ;;
1556       wine) system_name=Wine ;;
1557     esac
1558   done
1559   # We need to convert underscores so that values like k6-2 and pentium-mmx can be passed
1560   host_arch=$(echo $_target | cut -d '-' -f 1)
1561   if test $(echo $host_arch) != "x86_64" ; then
1562     host_arch=$(echo $host_arch | tr '_' '-')
1563   fi
1564 fi
1565
1566 extra_cflags="-I. -Iffmpeg $extra_cflags"
1567 _timer=timer-linux.c
1568 _getch=getch2.c
1569
1570 if darwin; then
1571   extra_cflags="-mdynamic-no-pic $extra_cflags"
1572   if test "$(basename $_cc)" != "clang" ; then
1573     extra_cflags="-falign-loops=16 -shared-libgcc $extra_cflags"
1574   fi
1575   _timer=timer-darwin.c
1576 fi
1577
1578 if aix ; then
1579   extra_ldflags="$extra_ldflags -lC"
1580 fi
1581
1582 if irix ; then
1583   _ranlib='ar -r'
1584 elif linux ; then
1585   _ranlib='true'
1586 fi
1587
1588 if win32 ; then
1589   _exesuf=".exe"
1590   extra_cflags="$extra_cflags -fno-common"
1591   # -lwinmm is always needed for osdep/timer-win2.c
1592   extra_ldflags="$extra_ldflags -lwinmm"
1593   _pe_executable=yes
1594   _timer=timer-win2.c
1595   _priority=yes
1596   def_dos_paths="#define HAVE_DOS_PATHS 1"
1597   def_priority="#define CONFIG_PRIORITY 1"
1598 fi
1599
1600 if mingw32 ; then
1601   _getch=getch2-win.c
1602   shmem=yes
1603 fi
1604
1605 if amigaos ; then
1606   _select=no
1607   _sighandler=no
1608   _stream_cache=no
1609   def_stream_cache="#undef CONFIG_STREAM_CACHE"
1610   extra_cflags="-DNEWLIB -D__USE_INLINE__ $extra_cflags"
1611 fi
1612
1613 if qnx ; then
1614   extra_ldflags="$extra_ldflags -lph"
1615 fi
1616
1617 if os2 ; then
1618   _exesuf=".exe"
1619   _getch=getch2-os2.c
1620   shmem=yes
1621   _priority=yes
1622   def_dos_paths="#define HAVE_DOS_PATHS 1"
1623   def_priority="#define CONFIG_PRIORITY 1"
1624 fi
1625
1626 if wine ; then
1627   extra_cflags="-fno-pic -UWIN32 -U_WIN32 -U__WIN32 -U__WIN32__ -DWINE_NOWINSOCK -Dstricmp=strcasecmp $extra_cflags"
1628 fi
1629
1630 for tmpdir in "$TMPDIR" "$TEMPDIR" "/tmp" ; do
1631   test "$tmpdir" && break
1632 done
1633
1634 mplayer_tmpdir="$tmpdir/mplayer-configure-$RANDOM-$$"
1635 mkdir $mplayer_tmpdir || die "Unable to create tmpdir."
1636
1637 TMPLOG="config.log"
1638 TMPC="$mplayer_tmpdir/tmp.c"
1639 TMPCPP="$mplayer_tmpdir/tmp.cpp"
1640 TMPEXE="$mplayer_tmpdir/tmp$_exesuf"
1641 TMPH="$mplayer_tmpdir/tmp.h"
1642 TMPS="$mplayer_tmpdir/tmp.S"
1643
1644 rm -f "$TMPLOG"
1645 echo configuration: $configuration > "$TMPLOG"
1646 echo >> "$TMPLOG"
1647
1648
1649 if test "$_runtime_cpudetection" = yes && ! x86 && ! ppc; then
1650   die "Runtime CPU detection only works for x86, x86-64 and PPC!"
1651 fi
1652
1653
1654 # Checking CC version...
1655 # Intel C++ Compilers (no autoselect, use CC=/some/binary ./configure)
1656 if test "$(basename $_cc)" = "icc" || test "$(basename $_cc)" = "ecc"; then
1657   echocheck "$_cc version"
1658   cc_vendor=intel
1659   cc_name=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 1)
1660   cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ',' -f 2 | cut -d ' ' -f 3)
1661   _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1662   _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1663   # TODO verify older icc/ecc compatibility
1664   case $cc_version in
1665     '')
1666       cc_version="v. ?.??, bad"
1667       cc_fail=yes
1668       ;;
1669     10.1|11.1|12.0)
1670       cc_version="$cc_version, ok"
1671       ;;
1672     *)
1673       cc_version="$cc_version, bad"
1674       cc_fail=yes
1675       ;;
1676   esac
1677   echores "$cc_version"
1678 else
1679   for _cc in "$_cc" gcc cc ; do
1680     cc_name_tmp=$($_cc -v 2>&1 | tail -n 1 | cut -d ' ' -f 1)
1681     if test "$cc_name_tmp" = "gcc"; then
1682       cc_name=$cc_name_tmp
1683       echocheck "$_cc version"
1684       cc_vendor=gnu
1685       cc_version=$($_cc -dumpversion 2>&1)
1686       case $cc_version in
1687         2.96*)
1688           cc_fail=yes
1689           ;;
1690         *)
1691           _cc_major=$(echo $cc_version | cut -d '.' -f 1)
1692           _cc_minor=$(echo $cc_version | cut -d '.' -f 2)
1693           _cc_mini=$(echo $cc_version | cut -d '.' -f 3)
1694           ;;
1695       esac
1696       echores "$cc_version"
1697       break
1698     fi
1699     if $_cc -v 2>&1 | grep -q "clang"; then
1700       echocheck "$_cc version"
1701       cc_vendor=clang
1702       cc_version=$($_cc -dumpversion 2>&1)
1703       res_comment="experimental support only"
1704       echores "clang $cc_version"
1705       break
1706     fi
1707     cc_name_tmp=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 2,3)
1708     if test "$cc_name_tmp" = "Sun C"; then
1709       echocheck "$_cc version"
1710       cc_vendor=sun
1711       cc_version=$($_cc -V 2>&1 | head -n 1 | cut -d ' ' -f 4)
1712       res_comment="experimental support only"
1713       echores "Sun C $cc_version"
1714       break
1715     fi
1716   done
1717 fi # icc
1718 test "$cc_fail" = yes && die "unsupported compiler version"
1719
1720 echocheck "working compiler"
1721 cflag_check "" || die "Compiler is not functioning correctly. Check your installation and custom CFLAGS $CFLAGS ."
1722 echo "yes"
1723
1724 if test -z "$_target" ; then
1725   cat > $TMPC << EOF
1726 int main(void) {
1727     int test[(int)sizeof(char *)-7];
1728     return 0;
1729 }
1730 EOF
1731 if x86 ; then
1732   cc_check && host_arch=x86_64 || host_arch=i386
1733 fi
1734 if ppc ; then
1735   cc_check && host_arch=ppc64 || host_arch=ppc
1736 fi
1737 if sparc ; then
1738   cc_check && host_arch=sparc64 || host_arch=sparc
1739 fi
1740 fi
1741
1742 echo "Detected operating system: $system_name"
1743 echo "Detected host architecture: $host_arch"
1744
1745 echocheck "cross compilation"
1746 if test $_cross_compile = auto ; then
1747   _cross_compile=yes
1748   cflag_check "" && "$TMPEXE" && _cross_compile=no
1749 fi
1750 echores $_cross_compile
1751
1752 if test $_cross_compile = yes; then
1753   tmp_run() {
1754     return 0
1755   }
1756   test "$_host_cc" || _host_cc=cc
1757 fi
1758
1759 echocheck "host cc"
1760 test "$_host_cc" || _host_cc=$_cc
1761 echores $_host_cc
1762
1763 # ---
1764
1765 # now that we know what compiler should be used for compilation, try to find
1766 # out which assembler is used by the $_cc compiler
1767 if test "$_as" = auto ; then
1768   _as=$($_cc -print-prog-name=as)
1769   test -z "$_as" && _as=as
1770 fi
1771
1772 if test "$_nm" = auto ; then
1773   _nm=$($_cc -print-prog-name=nm)
1774   test -z "$_nm" && _nm=nm
1775 fi
1776
1777 # XXX: this should be OK..
1778 _cpuinfo="echo"
1779
1780 if test "$_runtime_cpudetection" = no ; then
1781
1782 # Cygwin has /proc/cpuinfo, but only supports Intel CPUs
1783 # FIXME: Remove the Cygwin check once AMD CPUs are supported
1784 if test -r /proc/cpuinfo && ! cygwin; then
1785   # Linux with /proc mounted, extract CPU information from it
1786   _cpuinfo="cat /proc/cpuinfo"
1787 elif test -r /compat/linux/proc/cpuinfo && ! x86 ; then
1788   # FreeBSD with Linux emulation /proc mounted,
1789   # extract CPU information from it
1790   # Don't use it on x86 though, it never reports 3DNow!
1791   _cpuinfo="cat /compat/linux/proc/cpuinfo"
1792 elif darwin && ! x86 ; then
1793   # use hostinfo on Darwin
1794   _cpuinfo="hostinfo"
1795 elif aix; then
1796   # use 'lsattr' on AIX
1797   _cpuinfo="lsattr -E -l proc0 -a type"
1798 elif x86; then
1799   # all other OSes try to extract CPU information from a small helper
1800   # program cpuinfo instead
1801   $_cc -o cpuinfo$_exesuf cpuinfo.c
1802   _cpuinfo="./cpuinfo$_exesuf"
1803 fi
1804
1805 if x86 ; then
1806   # gather more CPU information
1807   pname=$($_cpuinfo | grep 'model name' | cut -d ':' -f 2 | head -n 1)
1808   pvendor=$($_cpuinfo | grep 'vendor_id' | cut -d ':' -f 2  | cut -d ' ' -f 2 | head -n 1)
1809   pfamily=$($_cpuinfo | grep 'cpu family' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1810   pmodel=$($_cpuinfo | grep -v 'model name' | grep 'model' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1811   pstepping=$($_cpuinfo | grep 'stepping' | cut -d ':' -f 2 | cut -d ' ' -f 2 | head -n 1)
1812
1813   exts=$($_cpuinfo | egrep 'features|flags' | cut -d ':' -f 2 | head -n 1)
1814
1815   pparam=$(echo $exts | sed -e s/k6_mtrr/mtrr/ -e s/cyrix_arr/mtrr/ -e s/centaur_mcr/mtrr/ \
1816                             -e s/xmm/sse/ -e s/kni/sse/)
1817   # SSE implies MMX2, but not all SSE processors report the mmxext CPU flag.
1818   pparam=$(echo $pparam | sed -e 's/sse/sse mmxext/')
1819
1820   for ext in $pparam ; do
1821     eval test \"\$_$ext\" = auto 2>/dev/null && eval _$ext=kernel_check
1822   done
1823
1824   echocheck "CPU vendor"
1825   echores "$pvendor ($pfamily:$pmodel:$pstepping)"
1826
1827   echocheck "CPU type"
1828   echores "$pname"
1829 fi
1830
1831 fi # test "$_runtime_cpudetection" = no
1832
1833 if x86 && test "$_runtime_cpudetection" = no ; then
1834   extcheck() {
1835     if test "$1" = kernel_check ; then
1836       echocheck "kernel support of $2"
1837       cat > $TMPC <<EOF
1838 #include <stdlib.h>
1839 #include <signal.h>
1840 static void catch(int sig) { exit(1); }
1841 int main(void) {
1842   signal(SIGILL, catch);
1843   __asm__ volatile ("$3":::"memory"); return 0;
1844 }
1845 EOF
1846
1847       if cc_check && tmp_run ; then
1848         eval _$2=yes
1849         echores "yes"
1850         _optimizing="$_optimizing $2"
1851         return 0
1852       else
1853         eval _$2=no
1854         echores "failed"
1855         echo "It seems that your kernel does not correctly support $2."
1856         echo "To use $2 extensions in MPlayer, you have to upgrade/recompile your kernel!"
1857         return 1
1858       fi
1859     fi
1860     return 0
1861   }
1862
1863   extcheck $_mmx      "mmx"      "emms"
1864   extcheck $_mmxext   "mmxext"   "sfence"
1865   extcheck $_3dnow    "3dnow"    "femms"
1866   extcheck $_3dnowext "3dnowext" "pswapd %%mm0, %%mm0"
1867   extcheck $_sse      "sse"      "xorps %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse"
1868   extcheck $_sse2     "sse2"     "xorpd %%xmm0, %%xmm0" || _gcc3_ext="$_gcc3_ext -mno-sse2"
1869   extcheck $_ssse3    "ssse3"    "pabsd %%xmm0, %%xmm0"
1870   extcheck $_cmov     "cmov"     "cmovb %%eax,  %%ebx"
1871
1872   echocheck "mtrr support"
1873   if test "$_mtrr" = kernel_check ; then
1874     _mtrr="yes"
1875     _optimizing="$_optimizing mtrr"
1876   fi
1877   echores "$_mtrr"
1878
1879   if test "$_gcc3_ext" != ""; then
1880     # If we had to disable SSE/SSE2 because the active kernel does not
1881     # support this instruction set extension, we also have to tell
1882     # gcc3 to not generate SSE/SSE2 instructions for normal C code.
1883     cflag_check $_march $_gcc3_ext && _march="$_march $_gcc3_ext"
1884   fi
1885
1886 fi
1887
1888
1889 def_fast_64bit='#define HAVE_FAST_64BIT 0'
1890 def_fast_unaligned='#define HAVE_FAST_UNALIGNED 0'
1891 def_av_fast_unaligned='#define AV_HAVE_FAST_UNALIGNED 0'
1892 def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 0'
1893 def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 0'
1894 arch_all='X86 IA64 SPARC ARM AVR32 SH4 PPC ALPHA MIPS PA_RISC S390 S390X VAX BFIN XTENSA TOMI GENERIC'
1895 subarch_all='X86_32 X86_64 PPC64'
1896 case "$host_arch" in
1897   i[3-9]86|x86|x86pc|k5|k6|k6-2|k6-3|pentium*|athlon*|i586-i686)
1898   arch='x86'
1899   subarch='x86_32'
1900   def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
1901   def_av_fast_unaligned='#define AV_HAVE_FAST_UNALIGNED 1'
1902   def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
1903   def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
1904   iproc=486
1905   proc=i486
1906
1907
1908   if test "$_runtime_cpudetection" = no ; then
1909   case "$pvendor" in
1910   AuthenticAMD)
1911     case "$pfamily" in
1912     3) proc=i386 iproc=386 ;;
1913     4) proc=i486 iproc=486 ;;
1914     5) iproc=586       # LGB: models are: K5/SSA5 K5 K5 K5 ? ? K6 K6 K6-2 K6-3
1915         # K6 model 13 are the K6-2+ and K6-III+, only differing in cache size.
1916         if test "$pmodel" -eq 9 -o "$pmodel" -eq 13; then
1917             proc=k6-3
1918         elif test "$pmodel" -eq 5 -o "$pmodel" -eq 10; then
1919             proc=geode
1920         elif test "$pmodel" -ge 8; then
1921             proc=k6-2
1922         elif test "$pmodel" -ge 6; then
1923             proc=k6
1924         else
1925             proc=i586
1926         fi
1927         ;;
1928     6) iproc=686
1929         # It's a bit difficult to determine the correct type of Family 6
1930         # AMD CPUs just from their signature. Instead, we check directly
1931         # whether it supports SSE.
1932         if test "$_sse" = yes; then
1933             # gcc treats athlon-xp, athlon-4 and athlon-mp similarly.
1934             proc=athlon-xp
1935         else
1936             # Again, gcc treats athlon and athlon-tbird similarly.
1937             proc=athlon
1938         fi
1939         ;;
1940     15) iproc=686
1941         # k8 CPU type only supported in gcc >= 3.4.0, but that will be
1942         # caught and remedied in the optimization tests below.
1943         proc=k8
1944         ;;
1945
1946     *) proc=amdfam10 iproc=686
1947         test $_fast_clz = "auto" && _fast_clz=yes
1948         ;;
1949     esac
1950     ;;
1951   GenuineIntel)
1952     case "$pfamily" in
1953     3) proc=i386 iproc=386 ;;
1954     4) proc=i486 iproc=486 ;;
1955     5) iproc=586
1956         if test "$pmodel" -eq 4 || test "$pmodel" -eq 8; then
1957             proc=pentium-mmx # 4 is desktop, 8 is mobile
1958         else
1959             proc=i586
1960         fi
1961         ;;
1962     6) iproc=686
1963         if test "$pmodel" -ge 15; then
1964             proc=core2
1965         elif test "$pmodel" -eq 9 -o "$pmodel" -ge 13; then
1966             proc=pentium-m
1967         elif test "$pmodel" -ge 7; then
1968             proc=pentium3
1969         elif test "$pmodel" -ge 3; then
1970             proc=pentium2
1971         else
1972             proc=i686
1973         fi
1974         test $_fast_clz = "auto" && _fast_clz=yes
1975         ;;
1976     15) iproc=686
1977         # A nocona in 32-bit mode has no more capabilities than a prescott.
1978         if test "$pmodel" -ge 3; then
1979             proc=prescott
1980         else
1981             proc=pentium4
1982             test $_fast_clz = "auto" && _fast_clz=yes
1983         fi
1984         test $_fast_cmov = "auto" && _fast_cmov=no
1985         ;;
1986     *) proc=prescott iproc=686 ;;
1987     esac
1988     ;;
1989   CentaurHauls)
1990     case "$pfamily" in
1991     5) iproc=586
1992         if test "$pmodel" -ge 8; then
1993             proc=winchip2
1994         elif test "$pmodel" -ge 4; then
1995             proc=winchip-c6
1996         else
1997             proc=i586
1998         fi
1999         ;;
2000     6) iproc=686
2001         if test "$pmodel" -ge 9; then
2002             proc=c3-2
2003         else
2004             proc=c3
2005             iproc=586
2006         fi
2007         ;;
2008     *) proc=i686 iproc=i686 ;;
2009     esac
2010     ;;
2011   unknown)
2012     case "$pfamily" in
2013     3) proc=i386 iproc=386 ;;
2014     4) proc=i486 iproc=486 ;;
2015     *) proc=i586 iproc=586 ;;
2016     esac
2017     ;;
2018   *)
2019     proc=i586 iproc=586 ;;
2020   esac
2021   test $_fast_clz = "auto" && _fast_clz=no
2022   fi # test "$_runtime_cpudetection" = no
2023
2024
2025     # check that gcc supports our CPU, if not, fall back to earlier ones
2026     # LGB: check -mcpu and -march swithing step by step with enabling
2027     # to fall back till 386.
2028
2029     # gcc >= 3.4.0  doesn't support -mcpu, we have to use -mtune instead
2030
2031     if [ "$cc_vendor" = "gnu" ] && ([ "$_cc_major" -gt 3 ] || ( [ "$_cc_major" = 3 ] && [ "$_cc_minor" -ge 4 ])) ; then
2032         cpuopt=-mtune
2033     else
2034         cpuopt=-mcpu
2035     fi
2036
2037     echocheck "GCC & CPU optimization abilities"
2038   if test "$_runtime_cpudetection" = no ; then
2039     if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
2040       cflag_check -march=native && proc=native
2041     fi
2042     if test "$proc" = "amdfam10"; then
2043       cflag_check -march=$proc $cpuopt=$proc || proc=k8
2044     fi
2045     if test "$proc" = "k8"; then
2046       cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2047     fi
2048     if test "$proc" = "athlon-xp"; then
2049       cflag_check -march=$proc $cpuopt=$proc || proc=athlon
2050     fi
2051     if test "$proc" = "k6-3" || test "$proc" = "k6-2"; then
2052       cflag_check -march=$proc $cpuopt=$proc  || proc=k6
2053     fi
2054     if test "$proc" = "k6" || test "$proc" = "c3"; then
2055       if ! cflag_check -march=$proc $cpuopt=$proc; then
2056         if cflag_check -march=i586 $cpuopt=i686; then
2057           proc=i586-i686
2058         else
2059           proc=i586
2060         fi
2061       fi
2062     fi
2063     if test "$proc" = "prescott" ; then
2064       cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
2065     fi
2066     if test "$proc" = "core2" ; then
2067       cflag_check -march=$proc $cpuopt=$proc || proc=pentium-m
2068     fi
2069     if test "$proc" = "pentium4" || test "$proc" = "pentium-m" || test "$proc" = "pentium3" || test "$proc" = "pentium2" || test "$proc" = "athlon" || test "$proc" = "c3-2" || test "$proc" = "geode"; then
2070       cflag_check -march=$proc $cpuopt=$proc  || proc=i686
2071     fi
2072     if test "$proc" = "i686" || test "$proc" = "pentium-mmx" || test "$proc" = "winchip-c6" || test "$proc" = "winchip2"; then
2073       cflag_check -march=$proc $cpuopt=$proc  || proc=i586
2074     fi
2075     if test "$proc" = "i586"; then
2076       cflag_check -march=$proc $cpuopt=$proc  || proc=i486
2077     fi
2078     if test "$proc" = "i486" ; then
2079       cflag_check -march=$proc $cpuopt=$proc  || proc=i386
2080     fi
2081     if test "$proc" = "i386" ; then
2082       cflag_check -march=$proc $cpuopt=$proc  || proc=error
2083     fi
2084     if test "$proc" = "error" ; then
2085         echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2086       _mcpu=""
2087       _march=""
2088       _optimizing=""
2089     elif test "$proc" = "i586-i686"; then
2090       _march="-march=i586"
2091       _mcpu="$cpuopt=i686"
2092       _optimizing="$proc"
2093     else
2094       _march="-march=$proc"
2095       _mcpu="$cpuopt=$proc"
2096       _optimizing="$proc"
2097     fi
2098   else # if test "$_runtime_cpudetection" = no
2099     _mcpu="$cpuopt=generic"
2100     # at least i486 required, for bswap instruction
2101     _march="-march=i486"
2102     cflag_check $_mcpu || _mcpu="$cpuopt=i686"
2103     cflag_check $_mcpu || _mcpu=""
2104     cflag_check $_march $_mcpu || _march=""
2105   fi
2106
2107     ## Gabucino : --target takes effect here (hopefully...) by overwriting
2108     ##             autodetected mcpu/march parameters
2109     if test "$_target" ; then
2110       # TODO: it may be a good idea to check GCC and fall back in all cases
2111       if test "$host_arch" = "i586-i686"; then
2112         _march="-march=i586"
2113         _mcpu="$cpuopt=i686"
2114       else
2115         _march="-march=$host_arch"
2116         _mcpu="$cpuopt=$host_arch"
2117       fi
2118
2119       proc="$host_arch"
2120
2121       case "$proc" in
2122         i386) iproc=386 ;;
2123         i486) iproc=486 ;;
2124         i586|k5|k6|k6-2|k6-3|pentium|pentium-mmx) iproc=586 ;;
2125         i686|athlon*|pentium*) iproc=686 ;;
2126         *) iproc=586 ;;
2127       esac
2128     fi
2129
2130     if test $_cmov = "yes" && test $_fast_cmov = "auto" ; then
2131         _fast_cmov="yes"
2132     else
2133         _fast_cmov="no"
2134     fi
2135     test $_fast_clz = "auto" && _fast_clz=yes
2136
2137     echores "$proc"
2138     ;;
2139
2140   ia64)
2141     arch='ia64'
2142     def_fast_64bit='#define HAVE_FAST_64BIT 1'
2143     iproc='ia64'
2144     ;;
2145
2146   x86_64|amd64)
2147     arch='x86'
2148     subarch='x86_64'
2149     def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2150     def_av_fast_unaligned='#define AV_HAVE_FAST_UNALIGNED 1'
2151     def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
2152     def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
2153     def_fast_64bit='#define HAVE_FAST_64BIT 1'
2154     iproc='x86_64'
2155
2156     # gcc >= 3.4.0  doesn't support -mcpu, we have to use -mtune instead
2157     if test "$cc_vendor" = "gnu" && test "$_cc_major" -gt 3 -o "$_cc_major" -eq 3 -a "$_cc_minor" -ge 4 ; then
2158         cpuopt=-mtune
2159     else
2160         cpuopt=-mcpu
2161     fi
2162     if test "$_runtime_cpudetection" = no ; then
2163       case "$pvendor" in
2164       AuthenticAMD)
2165         case "$pfamily" in
2166         15) proc=k8
2167           test $_fast_clz = "auto" && _fast_clz=no
2168           ;;
2169         *) proc=amdfam10;;
2170         esac
2171         ;;
2172       GenuineIntel)
2173         case "$pfamily" in
2174         6) proc=core2;;
2175         *)
2176           # 64-bit prescotts exist, but as far as GCC is concerned they
2177           # have the same capabilities as a nocona.
2178           proc=nocona
2179           test $_fast_cmov = "auto" && _fast_cmov=no
2180           test $_fast_clz = "auto" && _fast_clz=no
2181           ;;
2182         esac
2183         ;;
2184       *)
2185         proc=error;;
2186       esac
2187     fi # test "$_runtime_cpudetection" = no
2188
2189     echocheck "GCC & CPU optimization abilities"
2190     # This is a stripped-down version of the i386 fallback.
2191     if test "$_runtime_cpudetection" = no ; then
2192       if test $cc_vendor != "intel" && test $cc_vendor != "clang" ; then
2193         cflag_check -march=native && proc=native
2194       fi
2195       # --- AMD processors ---
2196       if test "$proc" = "amdfam10"; then
2197         cflag_check -march=$proc $cpuopt=$proc || proc=k8
2198       fi
2199       if test "$proc" = "k8"; then
2200         cflag_check -march=$proc $cpuopt=$proc || proc=athlon-xp
2201       fi
2202       # This will fail if gcc version < 3.3, which is OK because earlier
2203       # versions don't really support 64-bit on amd64.
2204       # Is this a valid assumption? -Corey
2205       if test "$proc" = "athlon-xp"; then
2206         cflag_check -march=$proc $cpuopt=$proc || proc=error
2207       fi
2208       # --- Intel processors ---
2209       if test "$proc" = "core2"; then
2210         cflag_check -march=$proc $cpuopt=$proc || proc=x86-64
2211       fi
2212       if test "$proc" = "x86-64"; then
2213         cflag_check -march=$proc $cpuopt=$proc || proc=nocona
2214       fi
2215       if test "$proc" = "nocona"; then
2216         cflag_check -march=$proc $cpuopt=$proc || proc=pentium4
2217       fi
2218       if test "$proc" = "pentium4"; then
2219         cflag_check -march=$proc $cpuopt=$proc || proc=error
2220       fi
2221
2222       _march="-march=$proc"
2223       _mcpu="$cpuopt=$proc"
2224       if test "$proc" = "error" ; then
2225         echores "CPU optimization disabled. CPU not recognized or your compiler is too old."
2226         _mcpu=""
2227         _march=""
2228       fi
2229     else # if test "$_runtime_cpudetection" = no
2230       # x86-64 is an undocumented option, an intersection of k8 and nocona.
2231       _march="-march=x86-64"
2232       _mcpu="$cpuopt=generic"
2233       cflag_check $_mcpu || _mcpu="x86-64"
2234       cflag_check $_mcpu || _mcpu=""
2235       cflag_check $_march $_mcpu || _march=""
2236     fi
2237
2238     _optimizing="$proc"
2239     test $_fast_cmov = "auto" && _fast_cmov=yes
2240     test $_fast_clz = "auto" && _fast_clz=yes
2241
2242     echores "$proc"
2243     ;;
2244
2245   sparc|sparc64)
2246     arch='sparc'
2247     iproc='sparc'
2248     if test "$host_arch" = "sparc64" ; then
2249       _vis='yes'
2250       proc='ultrasparc'
2251       def_fast_64bit='#define HAVE_FAST_64BIT 1'
2252     elif sunos ; then
2253         echocheck "CPU type"
2254         karch=$(uname -m)
2255         case "$(echo $karch)" in
2256             sun4) proc=v7 ;;
2257             sun4c) proc=v7 ;;
2258             sun4d) proc=v8 ;;
2259             sun4m) proc=v8 ;;
2260             sun4u) proc=ultrasparc _vis='yes' ;;
2261             sun4v) proc=v9 ;;
2262             *) proc=v8 ;;
2263         esac
2264         echores "$proc"
2265     else
2266         proc=v8
2267     fi
2268     _mcpu="-mcpu=$proc"
2269     _optimizing="$proc"
2270     ;;
2271
2272   arm*)
2273     arch='arm'
2274     iproc='arm'
2275     ;;
2276
2277   avr32)
2278     arch='avr32'
2279     def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2280     def_av_fast_unaligned='#define AV_HAVE_FAST_UNALIGNED 1'
2281     iproc='avr32'
2282     test $_fast_clz = "auto" && _fast_clz=yes
2283     ;;
2284
2285   sh|sh4)
2286     arch='sh4'
2287     iproc='sh4'
2288     ;;
2289
2290   ppc*|powerpc*)
2291     arch='ppc'
2292     def_dcbzl='#define HAVE_DCBZL 0'
2293     def_fast_unaligned='#define HAVE_FAST_UNALIGNED 1'
2294     def_av_fast_unaligned='#define AV_HAVE_FAST_UNALIGNED 1'
2295     def_local_aligned_8='#define HAVE_LOCAL_ALIGNED_8 1'
2296     def_local_aligned_16='#define HAVE_LOCAL_ALIGNED_16 1'
2297     iproc='ppc'
2298
2299     if test "$host_arch" = "ppc64" ; then
2300       subarch='ppc64'
2301       def_fast_64bit='#define HAVE_FAST_64BIT 1'
2302     fi
2303     echocheck "CPU type"
2304     case $system_name in
2305       Linux)
2306         proc=$($_cpuinfo | grep 'cpu' | cut -d ':' -f 2 | cut -d ',' -f 1 | cut -b 2- | head -n 1)
2307         if test -n "$($_cpuinfo | grep altivec)"; then
2308             test $_altivec = auto && _altivec=yes
2309         fi
2310         ;;
2311       Darwin)
2312         proc=$($_cpuinfo | grep "Processor type" | cut -f 3 -d ' ' | sed 's/ppc//')
2313         if [ $(sysctl -n hw.vectorunit) -eq 1 -o \
2314             "$(sysctl -n hw.optional.altivec 2> /dev/null)" = "1" ]; then
2315             test $_altivec = auto && _altivec=yes
2316         fi
2317         ;;
2318       NetBSD)
2319         # only gcc 3.4 works reliably with AltiVec code under NetBSD
2320         case $cc_version in
2321             2*|3.0*|3.1*|3.2*|3.3*)
2322                 ;;
2323             *)
2324                 if [ $(sysctl -n machdep.altivec) -eq 1 ]; then
2325                     test $_altivec = auto && _altivec=yes
2326                 fi
2327                 ;;
2328         esac
2329         ;;
2330       AIX)
2331         proc=$($_cpuinfo | grep 'type' | cut -f 2 -d ' ' | sed 's/PowerPC_//')
2332         ;;
2333     esac
2334     if test "$_altivec" = yes; then
2335         echores "$proc altivec"
2336     else
2337         _altivec=no
2338         echores "$proc"
2339     fi
2340
2341     echocheck "GCC & CPU optimization abilities"
2342
2343     if test -n "$proc"; then
2344         case "$proc" in
2345             601) _march='-mcpu=601' _mcpu='-mtune=601' ;;
2346             603) _march='-mcpu=603' _mcpu='-mtune=603' ;;
2347             603e|603ev) _march='-mcpu=603e' _mcpu='-mtune=603e' ;;
2348             604|604e|604r|604ev) _march='-mcpu=604' _mcpu='-mtune=604' ;;
2349             740|740/750|745/755) _march='-mcpu=740' _mcpu='-mtune=740' ;;
2350             750|750CX) _march='-mcpu=750' _mcpu='-mtune=750' ;;
2351             POWER)  _march='-mcpu=power'  _mcpu='-mtune=power'  ;;
2352             POWER2) _march='-mcpu=power2' _mcpu='-mtune=power2' ;;
2353             POWER3) _march='-mcpu=power3' _mcpu='-mtune=power3' ;;
2354             *) ;;
2355         esac
2356         # gcc 3.1(.1) and up supports 7400 and 7450
2357         if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "1" || test "$_cc_major" -ge "4"; then
2358             case "$proc" in
2359                 7400*|7410*) _march='-mcpu=7400' _mcpu='-mtune=7400' ;;
2360                 7447*|7450*|7455*) _march='-mcpu=7450' _mcpu='-mtune=7450' ;;
2361                 *) ;;
2362             esac
2363         fi
2364         # gcc 3.2 and up supports 970
2365         if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2366             case "$proc" in
2367                 970*|PPC970*) _march='-mcpu=970' _mcpu='-mtune=970'
2368                       def_dcbzl='#define HAVE_DCBZL 1' ;;
2369                 *) ;;
2370             esac
2371         fi
2372         # gcc 3.3 and up supports POWER4
2373         if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "3" || test "$_cc_major" -ge "4"; then
2374             case "$proc" in
2375                 POWER4) _march='-mcpu=power4' _mcpu='-mtune=power4' ;;
2376                 *) ;;
2377             esac
2378         fi
2379         # gcc 3.4 and up supports 440*
2380         if test "$_cc_major" -ge "3" && test "$_cc_minor" -ge "4" || test "$_cc_major" -ge "4"; then
2381             case "$proc" in
2382                 440EP*) _march='-mcpu=440fp' _mcpu='-mtune=440fp' ;;
2383                 440G* ) _march='-mcpu=440'   _mcpu='-mtune=440'   ;;
2384                 *) ;;
2385             esac
2386         fi
2387         # gcc 4.0 and up supports POWER5
2388         if test "$_cc_major" -ge "4"; then
2389             case "$proc" in
2390                 POWER5*) _march='-mcpu=power5' _mcpu='-mtune=power5' ;;
2391                 *) ;;
2392             esac
2393         fi
2394     fi
2395
2396     if test -n "$_mcpu"; then
2397         _optimizing=$(echo $_mcpu | cut -c 8-)
2398         echores "$_optimizing"
2399     else
2400         echores "none"
2401     fi
2402
2403     test $_fast_clz = "auto" && _fast_clz=yes
2404
2405     ;;
2406
2407   alpha*)
2408     arch='alpha'
2409     iproc='alpha'
2410
2411     echocheck "CPU type"
2412     cat > $TMPC << EOF
2413 int main(void) {
2414     unsigned long ver, mask;
2415     __asm__ ("implver %0" : "=r" (ver));
2416     __asm__ ("amask %1, %0" : "=r" (mask) : "r" (-1));
2417     printf("%ld-%x\n", ver, ~mask);
2418     return 0;
2419 }
2420 EOF
2421     $_cc -o "$TMPEXE" "$TMPC"
2422     case $("$TMPEXE") in
2423
2424         0-0)    proc="ev4";   _mvi="0";;
2425         1-0)    proc="ev5";   _mvi="0";;
2426         1-1)    proc="ev56";  _mvi="0";;
2427         1-101)  proc="pca56"; _mvi="1";;
2428         2-303)  proc="ev6";   _mvi="1";;
2429         2-307)  proc="ev67";  _mvi="1";;
2430         2-1307) proc="ev68";  _mvi="1";;
2431     esac
2432     echores "$proc"
2433
2434     echocheck "GCC & CPU optimization abilities"
2435     if test "$proc" = "ev68" ; then
2436       cc_check -mcpu=$proc || proc=ev67
2437     fi
2438     if test "$proc" = "ev67" ; then
2439       cc_check -mcpu=$proc || proc=ev6
2440     fi
2441     _mcpu="-mcpu=$proc"
2442     echores "$proc"
2443
2444     test $_fast_clz = "auto" && _fast_clz=yes
2445
2446     _optimizing="$proc"
2447     ;;
2448
2449   mips*)
2450     arch='mips'
2451     iproc='mips'
2452
2453     if irix ; then
2454         echocheck "CPU type"
2455         proc=$(hinv -c processor | grep CPU | cut -d " " -f3)
2456         case "$(echo $proc)" in
2457             R3000) _march='-mips1' _mcpu='-mtune=r2000' ;;
2458             R4000) _march='-mips3' _mcpu='-mtune=r4000' ;;
2459             R4400) _march='-mips3' _mcpu='-mtune=r4400' ;;
2460             R4600) _march='-mips3' _mcpu='-mtune=r4600' ;;
2461             R5000) _march='-mips4' _mcpu='-mtune=r5000' ;;
2462             R8000|R10000|R12000|R14000|R16000) _march='-mips4' _mcpu='-mtune=r8000' ;;
2463         esac
2464         # gcc < 3.x does not support -mtune.
2465         if test "$cc_vendor" = "gnu" && test "$_cc_major" -lt 3 ; then
2466             _mcpu=''
2467         fi
2468         echores "$proc"
2469     fi
2470
2471     test $_fast_clz = "auto" && _fast_clz=yes
2472
2473     ;;
2474
2475   hppa)
2476     arch='pa_risc'
2477     iproc='PA-RISC'
2478     ;;
2479
2480   s390)
2481     arch='s390'
2482     iproc='390'
2483     ;;
2484
2485   s390x)
2486     arch='s390x'
2487     iproc='390x'
2488     ;;
2489
2490   vax)
2491     arch='vax'
2492     iproc='vax'
2493     ;;
2494
2495   xtensa)
2496     arch='xtensa'
2497     iproc='xtensa'
2498     ;;
2499
2500   generic)
2501     arch='generic'
2502     ;;
2503
2504   *)
2505     echo "The architecture of your CPU ($host_arch) is not supported by this configure script"
2506     echo "It seems nobody has ported MPlayer to your OS or CPU type yet."
2507     die "unsupported architecture $host_arch"
2508     ;;
2509 esac # case "$host_arch" in
2510
2511 if test "$_runtime_cpudetection" = yes ; then
2512   if x86 ; then
2513     test "$_cmov"     != no && _cmov=yes
2514     x86_32 && _cmov=no
2515     test "$_mmx"      != no && _mmx=yes
2516     test "$_3dnow"    != no && _3dnow=yes
2517     test "$_3dnowext" != no && _3dnowext=yes
2518     test "$_mmxext"   != no && _mmxext=yes
2519     test "$_sse"      != no && _sse=yes
2520     test "$_sse2"     != no && _sse2=yes
2521     test "$_ssse3"    != no && _ssse3=yes
2522     test "$_mtrr"     != no && _mtrr=yes
2523   fi
2524   if ppc; then
2525     _altivec=yes
2526   fi
2527 fi
2528
2529
2530 # endian testing
2531 echocheck "byte order"
2532 if test "$_big_endian" = auto ; then
2533   cat > $TMPC <<EOF
2534 short ascii_name[] = {
2535   'M' << 8 | 'P', 'l' << 8 | 'a', 'y' << 8 | 'e', 'r' << 8 | 'B',
2536   'i' << 8 | 'g', 'E' << 8 | 'n', 'd' << 8 | 'i', 'a' << 8 | 'n', 0 };
2537 int main(void) { return (long)ascii_name; }
2538 EOF
2539   if cc_check ; then
2540     if strings $TMPEXE | grep -q -l MPlayerBigEndian ; then
2541       _big_endian=yes
2542     else
2543       _big_endian=no
2544     fi
2545   else
2546     echo ${_echo_n} "failed to autodetect byte order, defaulting to ${_echo_c}"
2547   fi
2548 fi
2549 if test "$_big_endian" = yes ; then
2550   _byte_order='big-endian'
2551   def_words_endian='#define WORDS_BIGENDIAN 1'
2552   def_bigendian='#define HAVE_BIGENDIAN 1'
2553   def_av_bigendian='#define AV_HAVE_BIGENDIAN 1'
2554 else
2555   _byte_order='little-endian'
2556   def_words_endian='#undef WORDS_BIGENDIAN'
2557   def_bigendian='#define HAVE_BIGENDIAN 0'
2558   def_av_bigendian='#define AV_HAVE_BIGENDIAN 0'
2559 fi
2560 echores "$_byte_order"
2561
2562
2563 echocheck "extern symbol prefix"
2564 cat > $TMPC << EOF
2565 int ff_extern;
2566 EOF
2567 cc_check -c || die "Symbol mangling check failed."
2568 sym=$($_nm -P -g $TMPEXE)
2569 extern_prefix=${sym%%ff_extern*}
2570 def_extern_asm="#define EXTERN_ASM $extern_prefix"
2571 def_extern_prefix="#define EXTERN_PREFIX \"$extern_prefix\""
2572 echores $extern_prefix
2573
2574
2575 echocheck "assembler support of -pipe option"
2576 # -I. helps to detect compilers that just misunderstand -pipe like Sun C
2577 cflag_check -pipe -I. && _pipe="-pipe" && echores "yes" || echores "no"
2578
2579
2580 if darwin && test "$cc_vendor" = "gnu" ; then
2581 echocheck "GCC support of -mstackrealign"
2582 # GCC 4.2 and some earlier Apple versions support this flag on x86. Since
2583 # Mac OS X/Intel has an ABI different from Windows this is needed to avoid
2584 # crashes when loading Win32 DLLs. Unfortunately some gcc versions create
2585 # wrong code with this flag, but this can be worked around by adding
2586 # -fno-unit-at-a-time as described in the blog post at
2587 # http://www.dribin.org/dave/blog/archives/2006/12/05/missing_third_param/
2588 cat > $TMPC << EOF
2589 __attribute__((noinline)) static int foo3(int i1, int i2, int i3) { return i3; }
2590 int main(void) { return foo3(1, 2, 3) == 3 ? 0 : 1; }
2591 EOF
2592   cc_check -O4 -mstackrealign && tmp_run && cflags_stackrealign=-mstackrealign
2593   test -z "$cflags_stackrealign" && cc_check -O4 -mstackrealign -fno-unit-at-a-time &&
2594     tmp_run && cflags_stackrealign="-mstackrealign -fno-unit-at-a-time"
2595   test -n "$cflags_stackrealign" && echores "yes" || echores "no"
2596 fi # if darwin && test "$cc_vendor" = "gnu" ; then
2597
2598
2599 # Checking for CFLAGS
2600 _install_strip="-s"
2601 if test "$_profile" != "" || test "$_debug" != "" ; then
2602   CFLAGS="-O2 $_march $_mcpu $_pipe $_debug $_profile"
2603   WARNFLAGS="-W -Wall"
2604   _install_strip=
2605 elif test -z "$CFLAGS" ; then
2606   if test "$cc_vendor" = "intel" ; then
2607     CFLAGS="-O2 $_march $_mcpu $_pipe -fomit-frame-pointer"
2608     WARNFLAGS="-wd167 -wd556 -wd144"
2609   elif test "$cc_vendor" = "sun" ; then
2610     CFLAGS="-O2 $_march $_mcpu $_pipe -xc99 -xregs=frameptr"
2611   elif test "$cc_vendor" = "clang"; then
2612     CFLAGS="-O2 $_march $_pipe"
2613   elif test "$cc_vendor" != "gnu" ; then
2614     CFLAGS="-O2 $_march $_mcpu $_pipe"
2615   else
2616     CFLAGS="-O4 $_march $_mcpu $_pipe -ffast-math -fomit-frame-pointer"
2617     WARNFLAGS="-Wall -Wno-switch -Wno-parentheses -Wpointer-arith -Wredundant-decls"
2618     WARN_CFLAGS="-Werror-implicit-function-declaration"
2619     extra_ldflags="$extra_ldflags -ffast-math"
2620   fi
2621 else
2622   warn_cflags=yes
2623 fi
2624
2625 if test "$cc_vendor" = "gnu" ; then
2626   cflag_check -fno-tree-vectorize && CFLAGS="$CFLAGS -fno-tree-vectorize"
2627   cflag_check -Wundef && WARNFLAGS="-Wundef $WARNFLAGS"
2628   cflag_check -std=gnu99 && WARN_CFLAGS="-std=gnu99 $WARN_CFLAGS"
2629   cflag_check -Wdeclaration-after-statement && WARN_CFLAGS="-Wdeclaration-after-statement $WARN_CFLAGS"
2630   cflag_check -Wno-pointer-sign && WARN_CFLAGS="-Wno-pointer-sign $WARN_CFLAGS"
2631   cflag_check -Wdisabled-optimization && WARN_CFLAGS="-Wdisabled-optimization $WARN_CFLAGS"
2632   cflag_check -Wmissing-prototypes && WARN_CFLAGS="-Wmissing-prototypes $WARN_CFLAGS"
2633   cflag_check -Wstrict-prototypes && WARN_CFLAGS="-Wstrict-prototypes $WARN_CFLAGS"
2634 else
2635   CFLAGS="-D_ISOC99_SOURCE -D_BSD_SOURCE $CFLAGS"
2636 fi
2637
2638 cflag_check -mno-omit-leaf-frame-pointer && cflags_no_omit_leaf_frame_pointer="-mno-omit-leaf-frame-pointer"
2639 cflag_check -MD -MP && DEPFLAGS="-MD -MP"
2640
2641
2642 if test -n "$LDFLAGS" ; then
2643   extra_ldflags="$extra_ldflags $LDFLAGS"
2644   warn_cflags=yes
2645 elif test "$cc_vendor" = "intel" ; then
2646   extra_ldflags="$extra_ldflags -i-static"
2647 fi
2648 if test -n "$CPPFLAGS" ; then
2649   extra_cflags="$extra_cflags $CPPFLAGS"
2650   warn_cflags=yes
2651 fi
2652
2653
2654 # try to create a relocatable binary by default
2655 echocheck "relocatable binary"
2656 if test $relocatable = "auto" ; then
2657   if test -n "$ld_static" ; then
2658     relocatable=no
2659     res_comment="PIE + static assumed to be broken"
2660   elif x86_32 && cflag_check -pie ; then
2661     extra_ldflags="$extra_ldflags -pie"
2662     relocatable=yes
2663     res_comment="non-PIC"
2664   elif x86_64 && cflag_check -fpie -pie ; then
2665     extra_ldflags="$extra_ldflags -fpie -pie"
2666     extra_cflags="$extra_cflags -fpie"
2667     relocatable=yes
2668     res_comment="fast PIC"
2669   else
2670     relocatable=no
2671     res_comment="unavailable or untested architecture"
2672   fi
2673 elif test $relocatable = "yes" ; then
2674   if return_check "stdint.h" '(intptr_t)"test" >> 16' -pie ; then
2675     extra_ldflags="$extra_ldflags -pie"
2676     res_comment="non-PIC"
2677   else
2678     extra_ldflags="$extra_ldflags -fpie -pie"
2679     extra_cflags="$extra_cflags -fpie"
2680     res_comment="possibly slow PIC!"
2681   fi
2682 fi
2683 echores $relocatable
2684
2685 if x86_32 ; then
2686   # Checking assembler (_as) compatibility...
2687   # Added workaround for older as that reads from stdin by default - atmos
2688   as_version=$(echo '' | $_as -version 2>&1 | sed -n 's/^.*assembler \(version \)*\([0-9.]*\).*$/\2/p')
2689   echocheck "assembler ($_as $as_version)"
2690
2691   _pref_as_version='2.9.1'
2692   echo 'nop' > $TMPS
2693   if test "$_mmx" = yes ; then
2694     echo 'emms' >> $TMPS
2695   fi
2696   if test "$_3dnow" = yes ; then
2697     _pref_as_version='2.10.1'
2698     echo 'femms' >> $TMPS
2699   fi
2700   if test "$_3dnowext" = yes ; then
2701     _pref_as_version='2.10.1'
2702     echo 'pswapd %mm0, %mm0' >> $TMPS
2703   fi
2704   if test "$_mmxext" = yes ; then
2705     _pref_as_version='2.10.1'
2706     echo 'movntq %mm0, (%eax)' >> $TMPS
2707   fi
2708   if test "$_sse" = yes ; then
2709     _pref_as_version='2.10.1'
2710     echo 'xorps %xmm0, %xmm0' >> $TMPS
2711   fi
2712   #if test "$_sse2" = yes ; then
2713   #  _pref_as_version='2.11'
2714   #  echo 'xorpd %xmm0, %xmm0' >> $TMPS
2715   #fi
2716   if test "$_cmov" = yes ; then
2717     _pref_as_version='2.10.1'
2718     echo 'cmovb %eax, %ebx' >> $TMPS
2719   fi
2720   if test "$_ssse3" = yes ; then
2721     _pref_as_version='2.16.92'
2722     echo 'pabsd %xmm0, %xmm1' >> $TMPS
2723   fi
2724   $_as $TMPS -o $TMPEXE > /dev/null 2>&1 || as_verc_fail=yes
2725
2726   if test "$as_verc_fail" != yes ; then
2727     echores "ok"
2728   else
2729     res_comment="Upgrade binutils to ${_pref_as_version} or use --disable-ssse3 etc."
2730     echores "failed"
2731     die "obsolete binutils version"
2732   fi
2733
2734 fi #if x86_32
2735
2736
2737 echocheck "PIC"
2738 def_pic='#define CONFIG_PIC 0'
2739 pic=no
2740 cpp_condition_check '' 'defined(__PIC__) || defined(__pic__) || defined(PIC)' &&
2741   pic=yes && extra_cflags="$extra_cflags -DPIC" && def_pic='#define CONFIG_PIC 1'
2742 echores $pic
2743
2744
2745 def_bswap='#define HAVE_BSWAP 0'
2746 def_ebx_available='#define HAVE_EBX_AVAILABLE 0'
2747 def_xmm_clobbers='#define HAVE_XMM_CLOBBERS 0'
2748
2749 if x86_64 ; then
2750 inline_asm_check '"mov (%eax), %eax"' || die "Your binutils version is too old to compile for 64-bit"
2751 fi
2752
2753 if x86 ; then
2754
2755 echocheck ".align is a power of two"
2756 if test "$_asmalign_pot" = auto ; then
2757 _asmalign_pot=no
2758 inline_asm_check '".align 3"' && _asmalign_pot=yes
2759 fi
2760 if test "$_asmalign_pot" = "yes" ; then
2761   def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\n\t"'
2762 else
2763   def_asmalign_pot='#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\n\t"'
2764 fi
2765 echores $_asmalign_pot
2766
2767
2768 echocheck "ebx availability"
2769 ebx_available=no
2770 cat > $TMPC << EOF
2771 int main(void) {
2772     int x;
2773     __asm__ volatile(
2774         "xor %0, %0"
2775         :"=b"(x)
2776         // just adding ebx to clobber list seems unreliable with some
2777         // compilers, e.g. Haiku's gcc 2.95
2778     );
2779     // and the above check does not work for OSX 64 bit...
2780     __asm__ volatile("":::"%ebx");
2781     return 0;
2782 }
2783 EOF
2784 cc_check && ebx_available=yes && def_ebx_available='#define HAVE_EBX_AVAILABLE 1'
2785 echores $ebx_available
2786
2787
2788 echocheck "yasm"
2789 if test -z "$YASMFLAGS" ; then
2790   if darwin ; then
2791     x86_64 && objformat="macho64" || objformat="macho"
2792   elif win32 && ! wine ; then
2793     objformat="win32"
2794   elif os2 ; then
2795     _yasm=nasm
2796     objformat="aout"
2797   else
2798     objformat="elf"
2799   fi
2800   yasmdefines=""
2801   # currently tested for Linux x86, x86_64
2802   test "$pic" = "yes"      && yasmdefines="$yasmdefines -DPIC"
2803   test -n "$extern_prefix" && yasmdefines="$yasmdefines -DPREFIX"
2804
2805   YASMFLAGS="-f $objformat $yasmdefines"
2806   x86_64 && YASMFLAGS="$YASMFLAGS -m amd64"
2807   case "$objformat" in
2808     elf) test $_debug && YASMFLAGS="$YASMFLAGS -g dwarf2" ;;
2809   esac
2810 else
2811   warn_cflags=yes
2812 fi
2813
2814 echo "pextrd [eax], xmm0, 1" > $TMPS
2815 yasm_features_all="cpunop"
2816 if test "$_yasm" ; then
2817   if ! yasm_check ; then
2818     if x86_64 ; then
2819       case "$objformat" in
2820         elf)   objformat=elf64 ;;
2821         win32) objformat=win64 ;;
2822       esac
2823     fi
2824     YASMFLAGS="-f $objformat $yasmdefines"
2825     yasm_check || die "yasm not found, use --yasm='' if you really want to compile without"
2826     echo "CPU amdnop" > $TMPS
2827     yasm_check && yasm_features="cpunop"
2828   fi
2829 fi
2830 if test $_yasm ; then
2831   def_yasm='#define HAVE_YASM 1'
2832   have_yasm="yes"
2833   echores "$_yasm"
2834 else
2835   def_yasm='#define HAVE_YASM 0'
2836   have_yasm="no"
2837   echores "no"
2838 fi
2839
2840 echocheck "bswap"
2841 echo 'bswap %eax' > $TMPS
2842 $_as $TMPS -o $TMPEXE > /dev/null 2>&1 && def_bswap='#define HAVE_BSWAP 1' && bswap=yes || bswap=no
2843 echores "$bswap"
2844
2845
2846 echocheck "xmm clobbers"
2847 inline_asm_check '"":::"%xmm0"' &&
2848   def_xmm_clobbers='#define HAVE_XMM_CLOBBERS 1' &&
2849   xmm_clobbers=yes || xmm_clobbers=no
2850 echores "$xmm_clobbers"
2851
2852 else
2853   _yasm=''
2854   def_yasm='#define HAVE_YASM 0'
2855   have_yasm="no"
2856 fi #if x86
2857
2858 #FIXME: This should happen before the check for CFLAGS..
2859 def_altivec_h='#define HAVE_ALTIVEC_H 0'
2860 if ppc && ( test "$_altivec" = yes || test "$_runtime_cpudetection" = yes ) ; then
2861
2862     # check if AltiVec is supported by the compiler, and how to enable it
2863     echocheck "GCC AltiVec flags"
2864     if $(cflag_check -maltivec -mabi=altivec) ; then
2865     _altivec_gcc_flags="-maltivec -mabi=altivec"
2866     # check if <altivec.h> should be included
2867         if $(header_check altivec.h $_altivec_gcc_flags) ; then
2868             def_altivec_h='#define HAVE_ALTIVEC_H 1'
2869             inc_altivec_h='#include <altivec.h>'
2870         else
2871             if $(cflag_check -faltivec) ; then
2872                 _altivec_gcc_flags="-faltivec"
2873             else
2874                 _altivec=no
2875                 _altivec_gcc_flags="none, AltiVec disabled"
2876             fi
2877         fi
2878     fi
2879     echores "$_altivec_gcc_flags"
2880
2881     # check if the compiler supports braces for vector declarations
2882     cat > $TMPC << EOF
2883 $inc_altivec_h
2884 int main(void) { (vector int) {1}; return 0; }
2885 EOF
2886     cc_check $_altivec_gcc_flags || die "You need a compiler that supports {} in AltiVec vector declarations."
2887
2888     # Disable runtime cpudetection if we cannot generate AltiVec code or
2889     # AltiVec is disabled by the user.
2890     test "$_runtime_cpudetection" = yes && test "$_altivec" = no \
2891         && _runtime_cpudetection=no
2892
2893     # Show that we are optimizing for AltiVec (if enabled and supported).
2894     test "$_runtime_cpudetection" = no && test "$_altivec" = yes \
2895         && _optimizing="$_optimizing altivec"
2896
2897     # If AltiVec is enabled, make sure the correct flags turn up in CFLAGS.
2898     test "$_altivec" = yes && CFLAGS="$CFLAGS $_altivec_gcc_flags"
2899 fi
2900
2901 if ppc ; then
2902 def_xform_asm='#define HAVE_XFORM_ASM 0'
2903 xform_asm=no
2904 echocheck "XFORM ASM support"
2905 inline_asm_check '"lwzx %1, %y0" :: "Z"(*(int*)0), "r"(0)' &&
2906   xform_asm=yes && def_xform_asm='#define HAVE_XFORM_ASM 1'
2907 echores "$xform_asm"
2908
2909 def_ibm_asm='#define HAVE_IBM_ASM 0'
2910 ibm_asm=no
2911 echocheck "IBM ASM support"
2912 inline_asm_check '"add 0, 0, 0"' &&
2913   ibm_asm=yes && def_ibm_asm='#define HAVE_IBM_ASM 1'
2914 echores "$ibm_asm"
2915
2916 def_gnu_as='#define HAVE_GNU_AS 0'
2917 gnu_as=no
2918 echocheck "GNU assembler"
2919 inline_asm_check '".macro m n\n\\n:.int 0\n.endm\nm x"' &&
2920   gnu_as=yes && def_gnu_as='#define HAVE_GNU_AS 1'
2921 echores "$gnu_as"
2922
2923 fi
2924
2925 if arm ; then
2926   echocheck "ARMv5TE (Enhanced DSP Extensions)"
2927   if test $_armv5te = "auto" ; then
2928     _armv5te=no
2929     inline_asm_check '"qadd r0, r0, r0"' && _armv5te=yes
2930   fi
2931   echores "$_armv5te"
2932
2933   test $_armv5te = "yes" && test $_fast_clz = "auto" && _fast_clz=yes
2934
2935   echocheck "ARMv6 (SIMD instructions)"
2936   if test $_armv6 = "auto" ; then
2937     _armv6=no
2938     inline_asm_check '"sadd16 r0, r0, r0"' && _armv6=yes
2939   fi
2940   echores "$_armv6"
2941
2942   echocheck "ARMv6t2 (SIMD instructions)"
2943   if test $_armv6t2 = "auto" ; then
2944     _armv6t2=no
2945     inline_asm_check '"movt r0, #0"' && _armv6t2=yes
2946   fi
2947   echores "$_armv6t2"
2948
2949   echocheck "ARM VFP"
2950   if test $_armvfp = "auto" ; then
2951     _armvfp=no
2952     inline_asm_check '"fadds s0, s0, s0"' && _armvfp=yes
2953   fi
2954   echores "$_armvfp"
2955
2956   echocheck "ARM VFPV3"
2957   if test $vfpv3 = "auto" ; then
2958     vfpv3=no
2959     inline_asm_check '"vmov.f32 s0, #1.0"' && vfpv3=yes
2960   fi
2961   echores "$vfpv3"
2962
2963   echocheck "softfloat ABI"
2964   softfloat=yes
2965   cpp_condition_check '' 'defined(__ARM_PCS_VFP) || (!defined(__ARM_PCS) && !defined(__SOFTFP__))' && softfloat=no
2966   if test $softfloat = "yes" ; then
2967     def_vfp_args='#define HAVE_VFP_ARGS 0'
2968   else
2969     def_vfp_args='#define HAVE_VFP_ARGS 1'
2970   fi
2971   echores "$softfloat"
2972
2973   echocheck "ARM NEON"
2974   if test $neon = "auto" ; then
2975     neon=no
2976     inline_asm_check '"vadd.i16 q0, q0, q0"' && neon=yes
2977   fi
2978   echores "$neon"
2979
2980   echocheck "ARM THUMB"
2981   if test $armthumb = "auto" ; then
2982     armthumb=no
2983   fi
2984   if test $armthumb = "yes" ; then
2985     extra_cflags="$extra_cflags -mthumb"
2986     def_armthumb='#define CONFIG_THUMB 1'
2987   else
2988     extra_cflags="$extra_cflags -marm"
2989     def_armthumb='#define CONFIG_THUMB 0'
2990   fi
2991   echores "$armthumb"
2992
2993   echocheck "iWMMXt (Intel XScale SIMD instructions)"
2994   if test $_iwmmxt = "auto" ; then
2995     _iwmmxt=no
2996     inline_asm_check '"wunpckelub wr6, wr4"' && _iwmmxt=yes
2997   fi
2998   echores "$_iwmmxt"
2999 fi
3000
3001 cpuexts_all='ALTIVEC AVX MMX MMX2 MMXEXT AMD3DNOW AMD3DNOWEXT SSE SSE2 SSSE3 FAST_CMOV CMOV FAST_CLZ ARMV5TE ARMV6 ARMV6T2 ARMVFP VFPV3 NEON IWMMXT MMI VIS MVI'
3002 test "$_altivec"   = yes && cpuexts="ALTIVEC $cpuexts"
3003 test "$_mmx"       = yes && cpuexts="MMX $cpuexts"
3004 test "$_mmxext"    = yes && cpuexts="MMX2 $cpuexts"
3005 test "$_mmxext"    = yes && cpuexts="MMXEXT $cpuexts"
3006 test "$_3dnow"     = yes && cpuexts="AMD3DNOW $cpuexts"
3007 test "$_3dnowext"  = yes && cpuexts="AMD3DNOWEXT $cpuexts"
3008 test "$_sse"       = yes && cpuexts="SSE $cpuexts"
3009 test "$_sse2"      = yes && cpuexts="SSE2 $cpuexts"
3010 test "$_ssse3"     = yes && cpuexts="SSSE3 $cpuexts"
3011 test "$_cmov"      = yes && cpuexts="CMOV $cpuexts"
3012 test "$_fast_cmov" = yes && cpuexts="FAST_CMOV $cpuexts"
3013 test "$_fast_clz"  = yes && cpuexts="FAST_CLZ $cpuexts"
3014 test "$_armv5te"   = yes && cpuexts="ARMV5TE $cpuexts"
3015 test "$_armv6"     = yes && cpuexts="ARMV6 $cpuexts"
3016 test "$_armv6t2"   = yes && cpuexts="ARMV6T2 $cpuexts"
3017 test "$_armvfp"    = yes && cpuexts="ARMVFP $cpuexts"
3018 test "$vfpv3"      = yes && cpuexts="VFPV3 $cpuexts"
3019 test "$neon"       = yes && cpuexts="NEON $cpuexts"
3020 test "$_iwmmxt"    = yes && cpuexts="IWMMXT $cpuexts"
3021 test "$_vis"       = yes && cpuexts="VIS $cpuexts"
3022 test "$_mvi"       = yes && cpuexts="MVI $cpuexts"
3023
3024 # Checking kernel version...
3025 if x86_32 && linux ; then
3026   _k_verc_problem=no
3027   kernel_version=$(uname -r 2>&1)
3028   echocheck "$system_name kernel version"
3029   case "$kernel_version" in
3030     '') kernel_version="?.??"; _k_verc_fail=yes;;
3031     [0-1].[0-9].[0-9]*|2.[0-3].[0-9]*)
3032       _k_verc_problem=yes;;
3033   esac
3034   if test "$_k_verc_problem" = yes && test "$_sse" = yes ; then
3035     _k_verc_fail=yes
3036   fi
3037   if test "$_k_verc_fail" ; then
3038     echores "$kernel_version, fail"
3039     echo "WARNING! If you want to run MPlayer on this system, get prepared for problems!"
3040     echo "2.2.x has limited SSE support. Upgrade the kernel or use --disable-sse if you"
3041     echo "experience crashes. MPlayer tries to autodetect if your kernel correctly"
3042     echo "supports SSE, but you have been warned! If you are using a kernel older than"
3043     echo "2.2.x you must upgrade it to get SSE support!"
3044 #    die "Your kernel is too old for this CPU." # works fine on some 2.2.x so don't die (later check will test)
3045   else
3046     echores "$kernel_version, ok"
3047   fi
3048 fi
3049
3050 ######################
3051 # MAIN TESTS GO HERE #
3052 ######################
3053
3054
3055 echocheck "langinfo"
3056 if test "$_langinfo" = auto ; then
3057   _langinfo=no
3058   statement_check langinfo.h 'nl_langinfo(CODESET)' && _langinfo=yes
3059 fi
3060 if test "$_langinfo" = yes ; then
3061   def_langinfo='#define HAVE_LANGINFO 1'
3062 else
3063   def_langinfo='#undef HAVE_LANGINFO'
3064 fi
3065 echores "$_langinfo"
3066
3067
3068 echocheck "language"
3069 # Set preferred languages, "all" uses English as main language.
3070 test -z "$language" && language=$LINGUAS
3071 test -z "$language_doc" && language_doc=$language
3072 test -z "$language_man" && language_man=$language
3073 test -z "$language_msg" && language_msg=$language
3074 language_doc=$(echo $language_doc | tr , " ")
3075 language_man=$(echo $language_man | tr , " ")
3076 language_msg=$(echo $language_msg | tr , " ")
3077
3078 test "$language_doc" = "all" && language_doc=$doc_lang_all
3079 test "$language_man" = "all" && language_man=$man_lang_all
3080 test "$language_msg" = "all" && language_msg=en
3081
3082 # Prune non-existing translations from language lists.
3083 # Set message translation to the first available language.
3084 # Fall back on English.
3085 for lang in $language_doc ; do
3086   test -d DOCS/xml/$lang && tmp_language_doc="$tmp_language_doc $lang"
3087 done
3088 language_doc=$tmp_language_doc
3089 test -z "$language_doc" && language_doc=en
3090
3091 for lang in $language_man ; do
3092   test -d DOCS/man/$lang && tmp_language_man="$tmp_language_man $lang"
3093 done
3094 language_man=$tmp_language_man
3095 test -z "$language_man" && language_man=en
3096
3097 for lang in $language_msg ; do
3098   test -f "help/help_mp-${lang}.h" && tmp_language_msg=$lang && break
3099 done
3100 language_msg=$tmp_language_msg
3101 test -z "$language_msg" && language_msg=en
3102 _mp_help="help/help_mp-${language_msg}.h"
3103 echores "messages: $language_msg - man pages: $language_man - documentation: $language_doc"
3104