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