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