b6d965cd5844d5de84f187e082736a463a0cd15d
[ffmpeg.git] / configure
1 #!/bin/sh
2 #
3 # ffmpeg configure script (c) 2000, 2001, 2002 Fabrice Bellard
4 #
5
6 if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
7 cat << EOF
8
9 Usage: configure [options]
10 Options: [defaults in brackets after descriptions]
11
12 EOF
13 echo "Standard options:"
14 echo "  --help                   print this message"
15 echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
16 echo "  --mandir=DIR             man documentation in DIR [PREFIX/man]"
17 echo "  --enable-mp3lame         enable mp3 encoding via libmp3lame [default=no]"
18 echo "  --enable-ogg             enable ogg support via libogg [default=no]"
19 echo "  --enable-vorbis          enable vorbis support via libvorbis [default=no]"
20 echo "  --enable-theora          enable theora support via libtheora [default=no]"
21 echo "  --enable-faad            enable faad support via libfaad [default=no]"
22 echo "  --enable-faadbin         build faad support with runtime linking [default=no]"
23 echo "  --enable-faac            enable faac support via libfaac [default=no]"
24 echo "  --enable-xvid            enable xvid support via xvidcore [default=no]"
25 echo "  --enable-mingw32         enable mingw32 native/cross windows compile"
26 echo "  --enable-a52             enable GPL'ed A52 support [default=no]"
27 echo "  --enable-a52bin          open liba52.so.0 at runtime [default=no]"
28 echo "  --enable-dts             enable GPL'ed DTS support [default=no]"
29 echo "  --enable-pp              enable GPL'ed post processing support [default=no]"
30 echo "  --enable-shared-pp       use libpostproc.so [default=no]"
31 echo "  --enable-shared          build shared libraries [default=no]"
32 echo "  --enable-amr_nb          enable amr_nb float audio codec"
33 echo "  --enable-amr_nb-fixed    use fixed point for amr-nb codec"
34 echo "  --enable-amr_wb          enable amr_wb float audio codec"
35 echo "  --enable-sunmlib         use Sun medialib [default=no]"
36 echo "  --enable-pthreads        use pthreads [default=no]"
37 echo "  --enable-dc1394          enable IIDC-1394 grabbing using libdc1394 and libraw1394 [default=no]"
38 echo "  --enable-gpl             allow use of gpl code, the resulting libav* and ffmpeg will be under gpl [default=no]"
39 echo ""
40 echo "Advanced options (experts only):"
41 echo "  --source-path=PATH       path of source code [$source_path]"
42 echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
43 echo "  --cc=CC                  use C compiler CC [$cc]"
44 echo "  --make=MAKE              use specified make [$make]"
45 echo "  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS [$CFLAGS]"
46 echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS [$LDFLAGS]"
47 echo "  --extra-libs=ELIBS       add ELIBS [$ELIBS]"
48 echo "  --cpu=CPU                force cpu to CPU  [$cpu]"
49 echo "  --tune=PROCESSOR         tune code for a particular CPU (may fails or misperforms on other CPUs)"
50 echo "  --powerpc-perf-enable    enable performance report on PPC (requires enabling PMC)"
51 echo "  --disable-mmx            disable mmx usage"
52 echo "  --disable-altivec        disable AltiVec usage"
53 echo "  --disable-audio-oss      disable OSS audio support [default=no]"
54 echo "  --disable-audio-beos     disable BeOS audio support [default=no]"
55 echo "  --disable-v4l            disable video4linux grabbing [default=no]"
56 echo "  --disable-dv1394         disable DV1394 grabbing [default=no]"
57 echo "  --disable-network        disable network support [default=no]"
58 echo "  --disable-zlib           disable zlib [default=no]"
59 echo "  --disable-simple_idct    disable simple IDCT routines [default=no]"
60 echo "  --disable-vhook          disable video hooking support"
61 echo "  --enable-gprof           enable profiling with gprof [$gprof]"
62 echo "  --disable-debug          disable debugging symbols"
63 echo "  --disable-opts           disable compiler optimizations"
64 echo "  --disable-mpegaudio-hp   faster (but less accurate)"
65 echo "                           mpegaudio decoding [default=no]"
66 echo "  --disable-ffserver       disable ffserver build"
67 echo "  --disable-ffplay         disable ffplay build"
68 echo "  --enable-small           optimize for size instead of speed"
69 echo "  --enable-memalign-hack   emulate memalign, interferes with memory debuggers"
70 echo "  --disable-strip          disable stripping of executables and shared libraries"
71 echo ""
72 echo "NOTE: The object files are build at the place where configure is launched"
73 exit 1
74 fi
75
76 # set temporary file name
77 if test ! -z "$TMPDIR" ; then
78     TMPDIR1="${TMPDIR}"
79 elif test ! -z "$TEMPDIR" ; then
80     TMPDIR1="${TEMPDIR}"
81 else
82     TMPDIR1="/tmp"
83 fi
84
85 TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
86 TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
87 TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
88 TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
89 TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
90
91 # default parameters
92 prefix="/usr/local"
93 mandir=""
94 bindir=""
95 cross_prefix=""
96 cc="gcc"
97 ar="ar"
98 ranlib="ranlib"
99 make="make"
100 strip="strip"
101 cpu=`uname -m`
102 tune="generic"
103 powerpc_perf="no"
104 mmx="default"
105 altivec="default"
106 mmi="default"
107 case "$cpu" in
108   i386|i486|i586|i686|i86pc|BePC)
109     cpu="x86"
110   ;;
111   x86_64)
112     if [ "`$cc -dumpmachine | grep x86_64 | cut -d- -f1`" = "x86_64" -a \
113          -z "`echo $CFLAGS | grep -- -m32`"  ]; then
114       cpu="x86_64"
115     else
116       cpu="x86"
117     fi
118   ;;
119   # armv4l is a subset of armv5tel
120   armv4l|armv5tel)
121     cpu="armv4l"
122   ;;
123   alpha)
124     cpu="alpha"
125   ;;
126   "Power Macintosh"|ppc)
127     cpu="powerpc"
128   ;;
129   mips)
130     cpu="mips"
131   ;;
132   sun4u|sparc64)
133     cpu="sparc64"
134   ;;
135   sparc)
136     cpu="sparc"
137   ;;
138   sh4)
139     cpu="sh4"
140   ;;
141   *)
142     cpu="unknown"
143   ;;
144 esac
145 gprof="no"
146 v4l="yes"
147 audio_oss="yes"
148 audio_beos="no"
149 dv1394="yes"
150 dc1394="no"
151 network="yes"
152 zlib="yes"
153 mp3lame="no"
154 ogg="no"
155 vorbis="no"
156 theora="no"
157 faad="no"
158 faadbin="no"
159 faac="no"
160 xvid="no"
161 a52="no"
162 a52bin="no"
163 dts="no"
164 pp="no"
165 shared_pp="no"
166 mingw32="no"
167 cygwin="no"
168 os2="no"
169 lshared="no"
170 optimize="yes"
171 debug="yes"
172 dostrip="yes"
173 extralibs="-lm"
174 simpleidct="yes"
175 bigendian="no"
176 inttypes="yes"
177 emu_fast_int="no"
178 vhook="default"
179 dlfcn="no"
180 dlopen="no"
181 mpegaudio_hp="yes"
182 SHFLAGS=-shared
183 netserver="no"
184 need_inet_aton="no"
185 ffserver="yes"
186 ffplay="yes"
187 LDFLAGS=-Wl,--warn-common
188 FFSLDFLAGS=-Wl,-E
189 LIBPREF="lib"
190 LIBSUF=".a"
191 SLIBPREF="lib"
192 SLIBSUF=".so"
193 EXESUF=""
194 amr_nb="no"
195 amr_wb="no"
196 amr_nb_fixed="no"
197 amr_if2="no"
198 sunmlib="no"
199 pthreads="no"
200 gpl="no"
201 memalignhack="no"
202
203 # OS specific
204 targetos=`uname -s`
205 case $targetos in
206 BeOS)
207 prefix="/boot/home/config"
208 # helps building libavcodec
209 CFLAGS="-DPIC -fomit-frame-pointer"
210 # 3 gcc releases known for BeOS, each with ugly bugs
211 gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
212 case "$gcc_version" in
213 2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
214 mmx="no"
215 ;;
216 *20010315*) echo "BeBits gcc"
217 CFLAGS="$CFLAGS -fno-expensive-optimizations"
218 ;;
219 esac
220 SHFLAGS=-nostart
221 # disable linux things
222 audio_oss="no"
223 v4l="no"
224 dv1394="no"
225 # enable beos things
226 audio_beos="yes"
227 # no need for libm, but the inet stuff
228 # Check for BONE
229 if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
230 extralibs="-lbind -lsocket"
231 else
232 netserver="yes"
233 need_inet_aton="yes"
234 extralibs="-lnet"
235 fi ;;
236 SunOS)
237 v4l="no"
238 audio_oss="no"
239 dv1394="no"
240 make="gmake"
241 LDFLAGS=""
242 FFSLDFLAGS=""
243 need_inet_aton="yes"
244 extralibs="$extralibs -lsocket -lnsl"
245 ;;
246 NetBSD)
247 v4l="no"
248 audio_oss="yes"
249 dv1394="no"
250 make="gmake"
251 LDFLAGS="$LDFLAGS -export-dynamic"
252 case `uname -r` in
253 2.*) extralibs="-lossaudio"
254 ;;
255 esac
256 ;;
257 FreeBSD)
258 v4l="no"
259 audio_oss="yes"
260 dv1394="no"
261 make="gmake"
262 CFLAGS="-pthread"
263 LDFLAGS="$LDFLAGS -export-dynamic -pthread"
264 ;;
265 BSD/OS)
266 v4l="no"
267 audio_oss="yes"
268 dv1394="no"
269 extralibs="-lpoll -lgnugetopt -lm"
270 make="gmake"
271 ;;
272 Darwin)
273 cc="cc"
274 v4l="no"
275 audio_oss="no"
276 dv1394="no"
277 ffserver="no"
278 SHFLAGS="-dynamiclib"
279 extralibs=""
280 darwin="yes"
281 strip="strip -x"
282 LDFLAGS="-Wl,-d,-search_paths_first"
283 FFSLDFLAGS=-Wl,-bind_at_load
284 ;;
285 MINGW32*)
286 # Note: the rest of the mingw32 config is done afterwards as mingw32
287 # can be forced on command line for linux cross compilation
288 mingw32="yes"
289 ;;
290 CYGWIN*)
291 v4l="no"
292 audio_oss="yes"
293 dv1394="no"
294 ffserver="no"
295 extralibs=""
296 cygwin="yes"
297 EXESUF=".exe"
298 test -f /usr/include/inttypes.h || \
299 test -f /usr/local/include/inttypes.h || \
300 echo "Missing inttypes.h, please copy cygwin_inttypes.h to" \
301      "/usr/local/include/inttypes.h !!!"
302 ;;
303 Linux)
304 LDFLAGS="$LDFLAGS -rdynamic"
305 ;;
306 IRIX*)
307 ranlib="echo ignoring ranlib"
308 v4l="no"
309 audio_oss="no"
310 make="gmake"
311 ;;
312 OS/2)
313 TMPE=$TMPE".exe"
314 ar="emxomfar -p64"
315 ranlib="echo ignoring ranlib"
316 strip="echo ignoring strip"
317 CFLAGS="-Zomf"
318 LDFLAGS="-Zomf -Zstack 16384 -s"
319 SHFLAGS=""
320 FFSLDFLAGS=""
321 LIBPREF=""
322 LIBSUF=".lib"
323 SLIBPREF=""
324 SLIBSUF=".dll"
325 EXESUF=".exe"
326 extralibs=""
327 v4l="no"
328 audio_oss="no"
329 dv1394="no"
330 network="no"
331 ffserver="no"
332 os2="yes"
333 ;;
334 *) ;;
335 esac
336
337 # From mplayer configure. We need TARGET_OS available
338 # to the Makefile, so it can distinguish between flavors
339 # of AltiVec on PowerPC
340 TARGET_OS=`( uname -s ) 2>&1`
341   case "$TARGET_OS" in
342   Linux|FreeBSD|NetBSD|BSD/OS|OpenBSD|SunOS|QNX|Darwin|GNU|BeOS)
343     ;;
344   IRIX*)
345     TARGET_OS=IRIX
346     ;;
347   HP-UX*)
348     TARGET_OS=HP-UX
349     ;;
350   [cC][yY][gG][wW][iI][nN]*)
351     TARGET_OS=CYGWIN
352     ;;
353   *)
354     TARGET_OS="$TARGET_OS-UNKNOWN"
355     ;;
356   esac
357
358 # find source path
359 # XXX: we assume an absolute path is given when launching configure, 
360 # except in './configure' case.
361 source_path="`echo $0 | sed -e 's#/configure##'`"
362 source_path_used="yes"
363 if test -z "$source_path" -o "$source_path" = "." ; then
364     source_path=`pwd`
365     source_path_used="no"
366 fi
367
368 FFMPEG_CONFIGURATION=" "
369 for opt do
370   FFMPEG_CONFIGURATION="$FFMPEG_CONFIGURATION""$opt "
371 done
372
373 for opt do
374   case "$opt" in
375   --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
376   ;;
377   --mandir=*) mandir=`echo $opt | cut -d '=' -f 2`
378   ;;
379   --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
380   ;;
381   --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
382   ;;
383   --cc=*) cc=`echo $opt | cut -d '=' -f 2`
384   ;;
385   --make=*) make=`echo $opt | cut -d '=' -f 2`
386   ;;
387   --extra-cflags=*) CFLAGS="$CFLAGS ${opt#--extra-cflags=}"
388   ;;
389   --extra-ldflags=*) LDFLAGS="$LDFLAGS ${opt#--extra-ldflags=}"
390   ;;
391   --extra-libs=*) extralibs=${opt#--extra-libs=}
392   ;;
393   --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
394   ;;
395   --tune=*) tune=`echo $opt | cut -d '=' -f 2`
396   ;;
397   --powerpc-perf-enable) powerpc_perf="yes"
398   ;;
399   --disable-mmx) mmx="no"
400   ;;
401   --disable-altivec) altivec="no"
402   ;;
403   --enable-gprof) gprof="yes"
404   ;;
405   --disable-v4l) v4l="no"
406   ;;
407   --disable-audio-oss) audio_oss="no"
408   ;;
409   --disable-audio-beos) audio_beos="no"
410   ;;
411   --disable-dv1394) dv1394="no"
412   ;;
413   --disable-network) network="no"; ffserver="no"
414   ;;
415   --disable-zlib) zlib="no"
416   ;;
417   --enable-a52) a52="yes"
418   ;;
419   --enable-a52bin) a52bin="yes" ; extralibs="$ldl $extralibs"
420   ;;
421   --enable-dts) dts="yes" ; extralibs="$extralibs -ldts"
422   ;;
423   --enable-pp) pp="yes"
424   ;;
425   --enable-shared-pp) shared_pp="yes"
426   ;;
427   --enable-mp3lame) mp3lame="yes"
428   ;;
429   --enable-ogg) ogg="yes"
430   ;;
431   --enable-vorbis) vorbis="yes"
432   ;;
433   --enable-theora) theora="yes"
434   ;;
435   --enable-faad) faad="yes"
436   ;;
437   --enable-faadbin) faadbin="yes"
438   ;;
439   --enable-faac) faac="yes"
440   ;;
441   --enable-xvid) xvid="yes"
442   ;;
443   --enable-dc1394) dc1394="yes"
444   ;;
445   --disable-vhook) vhook="no"
446   ;;
447   --disable-simple_idct) simpleidct="no"
448   ;;
449   --enable-mingw32) mingw32="yes"
450   ;;
451   --enable-shared) lshared="yes"
452   ;;
453   --disable-debug) debug="no"
454   ;;
455   --disable-opts) optimize="no"
456   ;;
457   --disable-mpegaudio-hp) mpegaudio_hp="no"
458   ;;
459   --disable-ffserver) ffserver="no"
460   ;;
461   --disable-ffplay) ffplay="no"
462   ;;
463   --enable-small) optimize="small"
464   ;;
465   --enable-amr_nb) amr_nb="yes"
466   ;;
467   --enable-amr_nb-fixed) amr_nb_fixed="yes"
468   ;;
469   --enable-amr_wb) amr_wb="yes"
470   ;; 
471   --enable-amr_if2) amr_if2="yes"
472   ;;
473   --enable-sunmlib) sunmlib="yes"
474   ;;
475   --enable-pthreads) pthreads="yes"
476   ;;
477   --enable-gpl) gpl="yes"
478   ;;
479   --enable-memalign-hack) memalignhack="yes"
480   ;;
481   --disable-strip) dostrip="no"
482   ;;
483   esac
484 done
485
486 if test "$theora" = "yes" ; then
487     if test "$ogg" = "no" ; then
488         echo "Ogg must be enabled to enable Theora"     
489         fail="yes"
490         theora="no"
491     fi
492 fi
493
494 if test "$vorbis" = "yes" ; then
495     if test "$ogg" = "no" ; then
496         echo "Ogg must be enabled to enable Vorbis"
497         fail="yes"
498         vorbis="no"
499     fi
500 fi
501
502 if test "$gpl" != "yes"; then
503     if test "$pp" != "no" -o "$shared_pp" != "no"; then
504         echo "The Postprocessing code is under GPL and --enable-gpl is not specified"
505         fail="yes"
506     fi
507
508     if test "$a52" != "no" -o "$a52bin" != "no"; then
509         echo "liba52 is under GPL and --enable-gpl is not specified"
510         fail="yes"
511     fi
512
513     if test "$xvid" != "no"; then
514         echo "libxvidcore is under GPL and --enable-gpl is not specified"
515         fail="yes"
516     fi
517
518     if test "$dts" != "no"; then
519         echo "libdts is under GPL and --enable-gpl is not specified"
520         fail="yes"
521     fi
522     
523     if test "$faad" != "no" -o "$faadbin" != "no"; then
524         cat > $TMPC << EOF
525             #include <faad.h>
526             int main( void ) { return 0; }
527 EOF
528     
529         if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
530             cat > $TMPC << EOF
531                 #include <faad.h>
532                 #ifndef FAAD2_VERSION
533                 ok faad1
534                 #endif
535                 int main( void ) { return 0; }
536 EOF
537             if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
538                 echo "faad2 is under GPL and --enable-gpl is not specified"
539                 fail="yes"
540             fi
541         else
542             faad="no"
543             faadbin="no"
544             echo "faad test failed"
545         fi
546     fi
547    
548
549     if test "$fail" = "yes"; then
550         exit 1
551     fi
552 fi
553
554 # compute mmx state
555 if test $mmx = "default"; then
556     if test $cpu = "x86" -o $cpu = "x86_64"; then
557         mmx="yes"
558     else
559         mmx="no"
560     fi
561 fi
562
563 #Darwin CC versions
564 needmdynamicnopic="no"
565 if test $targetos = Darwin; then
566     if test -n "`$cc -v 2>&1 | grep xlc`"; then
567         CFLAGS="$CFLAGS -qpdf2 -qlanglvl=extc99 -qmaxmem=-1 -qarch=auto -qtune=auto"
568     else
569         gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
570         case "$gcc_version" in
571             *2.95*) 
572                 CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
573                 ;;
574             *3.*)
575                 CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer -force_cpusubtype_ALL -Wno-sign-compare"
576                 if test "$lshared" = no; then
577                    needmdynamicnopic="yes"
578                 fi
579                 ;;
580             *)
581                 CFLAGS="$CFLAGS -no-cpp-precomp -pipe -fomit-frame-pointer"
582                 if test "$lshared" = no; then
583                    needmdynamicnopic="yes"
584                 fi
585                 ;;
586         esac
587     fi
588 fi
589
590 # Can only do AltiVec on PowerPC
591 if test $altivec = "default"; then
592     if test $cpu = "powerpc"; then
593         altivec="yes"
594     else
595         altivec="no"
596     fi
597 fi
598
599 # Add processor-specific flags
600 TUNECPU="generic"
601 POWERPCMODE="32bits"
602 if test $tune != "generic"; then
603     case $tune in
604         601|ppc601|PowerPC601)
605             CFLAGS="$CFLAGS -mcpu=601"
606             if test $altivec = "yes"; then
607                 echo "WARNING: tuning for PPC601 but altivec enabled !";
608             fi
609             TUNECPU=ppc601
610         ;;
611         603*|ppc603*|PowerPC603*)
612             CFLAGS="$CFLAGS -mcpu=603"
613             if test $altivec = "yes"; then
614                 echo "WARNING: tuning for PPC603 but altivec enabled !";
615             fi
616             TUNECPU=ppc603
617         ;;
618         604*|ppc604*|PowerPC604*)
619             CFLAGS="$CFLAGS -mcpu=604"
620             if test $altivec = "yes"; then
621                 echo "WARNING: tuning for PPC604 but altivec enabled !";
622             fi
623             TUNECPU=ppc604
624         ;;
625         G3|g3|75*|ppc75*|PowerPC75*)
626             CFLAGS="$CFLAGS -mcpu=750 -mtune=750 -mpowerpc-gfxopt"
627             if test $altivec = "yes"; then
628                 echo "WARNING: tuning for PPC75x but altivec enabled !";
629             fi
630             TUNECPU=ppc750
631         ;;
632         G4|g4|745*|ppc745*|PowerPC745*)
633             CFLAGS="$CFLAGS -mcpu=7450 -mtune=7450 -mpowerpc-gfxopt"
634             if test $altivec = "no"; then
635                 echo "WARNING: tuning for PPC745x but altivec disabled !";
636             fi
637             TUNECPU=ppc7450
638         ;;
639         74*|ppc74*|PowerPC74*)
640             CFLAGS="$CFLAGS -mcpu=7400 -mtune=7400 -mpowerpc-gfxopt"
641             if test $altivec = "no"; then
642                 echo "WARNING: tuning for PPC74xx but altivec disabled !";
643             fi
644             TUNECPU=ppc7400
645         ;;
646         G5|g5|970|ppc970|PowerPC970|power4*|Power4*)
647             CFLAGS="$CFLAGS -mcpu=970 -mtune=970 -mpowerpc-gfxopt -mpowerpc64"
648             if test $altivec = "no"; then
649                 echo "WARNING: tuning for PPC970 but altivec disabled !";
650             fi
651             TUNECPU=ppc970
652             POWERPCMODE="64bits"
653         ;;
654         *)
655         echo "WARNING: unknown CPU "$tune", ignored"
656         ;;
657     esac
658 fi
659
660 # AltiVec flags: The FSF version of GCC differs from the Apple version 
661 if test $cpu = "powerpc"; then
662     if test $altivec = "yes"; then
663         if test -n "`$cc -v 2>&1 | grep version | grep Apple`"; then
664             CFLAGS="$CFLAGS -faltivec"
665         else
666             CFLAGS="$CFLAGS -maltivec -mabi=altivec"
667         fi
668     fi
669 fi
670
671 # See if we have <altivec.h>
672 cat > $TMPC << EOF
673 #include <altivec.h>
674 int main( void ) { return 0; }
675 EOF
676
677 _altivec_h="no"
678 if $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
679 _altivec_h="yes"
680 fi
681
682 # See does our compiler support Motorola AltiVec C API
683 if test $altivec = "yes"; then
684 if test $_altivec_h = "yes"; then
685 cat > $TMPC << EOF
686 #include <altivec.h>
687 int main(void) {
688     vector signed int v1, v2, v3;
689     v1 = vec_add(v2,v3);
690     return 0;
691 }
692 EOF
693 else
694 cat > $TMPC << EOF
695 int main(void) {
696     vector signed int v1, v2, v3;
697     v1 = vec_add(v2,v3);
698     return 0;
699 }
700 EOF
701 fi
702 $cc $CFLAGS -o $TMPE $TMPC 2> /dev/null || altivec="no"
703 fi
704
705 # Can only do mmi on mips
706 if test $mmi = "default"; then
707     if test $cpu = "mips"; then
708         mmi="yes"
709     else
710         mmi="no"
711     fi
712 fi
713
714 # See does our compiler support mmi
715 if test $mmi = "yes"; then
716 cat > $TMPC << EOF
717 int main(void) {
718     __asm__ ("lq \$2, 0(\$2)");
719     return 0;
720 }
721 EOF
722 $cc -o $TMPE $TMPC 2> /dev/null || mmi="no"
723 fi
724
725 if test "$mingw32" = "yes" ; then
726     v4l="no"
727     audio_oss="no"
728     dv1394="no"
729     dc1394="no"
730     ffserver="no"
731     network="no"
732     LIBPREF=""
733     LIBSUF=".lib"
734     SLIBPREF=""
735     SLIBSUF=".dll"
736     EXESUF=".exe"
737     prefix="/c/Program Files/FFmpeg"
738     bindir="$prefix"
739 fi
740
741 cc="${cross_prefix}${cc}"
742 ar="${cross_prefix}${ar}"
743 ranlib="${cross_prefix}${ranlib}"
744 strip="${cross_prefix}${strip}"
745
746 if test -z "$cross_prefix" ; then
747
748 # ---
749 # big/little endian test
750 cat > $TMPC << EOF
751 #include <inttypes.h>
752 int main(int argc, char ** argv){
753         volatile uint32_t i=0x01234567;
754         return (*((uint8_t*)(&i))) == 0x67;
755 }
756 EOF
757
758 if $cc -o $TMPE $TMPC 2>/dev/null ; then
759 $TMPE && bigendian="yes"
760 else
761 echo big/little test failed
762 fi
763
764 else
765
766 # if cross compiling, cannot launch a program, so make a static guess
767 if test "$cpu" = "powerpc" -o "$cpu" = "mips" ; then
768     bigendian="yes"
769 fi
770
771 fi
772
773 # ---
774 # *inttypes.h* test
775 cat > $TMPC << EOF
776 #include <inttypes.h>
777 int main(int argc, char ** argv){
778     return 0;
779 }
780 EOF
781
782 $cc -o $TMPE $TMPC 2>/dev/null || inttypes="no"
783
784 # ---
785 # *int_fast* test
786 cat > $TMPC << EOF
787 #include <inttypes.h>
788 int main(int argc, char ** argv){
789         volatile uint_fast64_t i=0x01234567;
790         return 0;
791 }
792 EOF
793
794 $cc -o $TMPE $TMPC 2>/dev/null || emu_fast_int="yes"
795
796 # ---
797 # check availability of some header files
798
799 cat > $TMPC << EOF
800 #include <malloc.h>
801 int main( void ) { return 0; }
802 EOF
803
804 _memalign=no
805 _malloc_h=no
806 if $cc -o $TMPE $TMPC 2> /dev/null ; then
807 _malloc_h=yes
808 _memalign=yes
809 # check for memalign - atmos
810 cat > $TMPC << EOF
811 #include <stdio.h>
812 #include <malloc.h>
813 int main ( void ) {
814 char *string = NULL;
815 string = memalign(64, sizeof(char));
816 return 0;
817 }
818 EOF
819 $cc -o $TMPE $TMPC 2> /dev/null || _memalign=no
820 fi
821
822 if test "$_memalign" = "no" -a "$mmx" = "yes" -a "$memalignhack" != "yes"; then
823     echo "error, no memalign() but sse enabled, either disable it or use --enable-memalign-hack"
824     exit 1
825 fi
826
827 cat > $TMPC << EOF
828 #include <time.h>
829 int main( void ) { localtime_r(NULL, NULL); }
830 EOF
831
832 localtime_r=no
833 if $cc -o $TMPE $TMPC 2> /dev/null ; then
834   localtime_r=yes
835 fi
836
837 if test "$zlib" = "yes"; then
838 # check for zlib - mmu_man
839 cat > $TMPC << EOF
840 #include <zlib.h>
841 int main ( void ) {
842 if (zlibVersion() != ZLIB_VERSION)
843    puts("zlib version differs !!!");
844    return 1;
845 return 0;
846 }
847 EOF
848 $cc $CFLAGS -o $TMPE $TMPC -lz 2> /dev/null || zlib="no"
849 # $TMPE 2> /dev/null > /dev/null || zlib="no"
850 # XXX: more tests needed - runtime test
851 fi
852 if test "$zlib" = "yes"; then
853 extralibs="$extralibs -lz"
854 fi
855
856 # test for lrintf in math.h
857 cat > $TMPC << EOF
858 #define _ISOC9X_SOURCE  1
859 #include <math.h>
860 int main( void ) { return (lrintf(3.999f) > 0)?0:1; }
861 EOF
862
863 have_lrintf="no"
864 if $cc $extralibs -o $TMPE $TMPC 2> /dev/null ; then
865   have_lrintf="yes"
866   # allanc@chickenandporn.com: cannot execute cross-compiled
867   # code on the host.  Only execute if not cross-compiling.
868   if test -z "$cross_prefix" ; then
869     $TMPE 2> /dev/null > /dev/null || have_lrintf="no"
870   fi
871 fi
872
873 _restrict=
874 for restrict_keyword in restrict __restrict__ __restrict; do
875   echo "void foo(char * $restrict_keyword p);" > $TMPC
876   if $cc -c -o $TMPO $TMPC 2> /dev/null; then
877     _restrict=$restrict_keyword
878     break;
879   fi
880 done
881
882 # test gcc version to see if vector builtins can be used
883 # currently only used on i386 for MMX builtins
884 cat > $TMPC << EOF
885 #include <xmmintrin.h>
886 int main(void) { 
887 #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
888 return 0;
889 #else
890 #error no vector builtins
891 #endif
892 }
893 EOF
894
895 builtin_vector=no
896 if $cc -o $TMPO $TMPC 2> /dev/null ; then
897   builtin_vector=yes
898 fi
899
900 # dlopen/dlfcn.h probing
901
902 cat > $TMPC << EOF
903 #include <dlfcn.h>
904 int main( void ) { return (int) dlopen("foo", 0); }
905 EOF
906
907 ldl=-ldl
908
909 if $cc -o $TMPE $TMPC -ldl > /dev/null 2>&1 ; then
910 dlfcn=yes
911 dlopen=yes
912 fi
913
914 if $cc -o $TMPE $TMPC > /dev/null 2>&1 ; then
915 dlfcn=yes
916 dlopen=yes
917 ldl=""
918 fi
919
920 cat > $TMPC << EOF
921 int main( void ) { return (int) dlopen("foo", 0); }
922 EOF
923
924 if $cc -o $TMPE $TMPC -ldl > /dev/null 2>&1  ; then
925 dlopen=yes
926 fi
927
928 if $cc -o $TMPE $TMPC > /dev/null 2>&1  ; then
929 dlopen=yes
930 ldl=""
931 fi
932
933 if test "$vhook" = "default" ; then
934   vhook="$dlopen"
935 fi
936
937 ##########################################
938 # imlib probe
939
940 cat > $TMPC << EOF
941 #include <X11/Xlib.h>
942 #include <Imlib2.h>
943 int main( void ) { return (int) imlib_load_font("foo"); }
944 EOF
945
946 imlib2=no
947 if $cc -o $TMPE $TMPC -lImlib2 -lm > /dev/null 2>&1  ; then
948 imlib2=yes
949 fi
950
951 ##########################################
952 # freetype probe
953
954 cat > $TMPC << EOF
955 #include <ft2build.h>
956 int main( void ) { return (int) FT_Init_FreeType(0); }
957 EOF
958
959 freetype2=no
960 if test "x$targetos" != "xBeOS" && test "$os2" != "yes"; then
961   if (freetype-config --version) >/dev/null 2>&1 ; then
962     if $cc -o $TMPE $TMPC `freetype-config --cflags` `freetype-config --libs`  > /dev/null 2>&1 ; then
963       freetype2=yes
964     fi
965   fi
966 fi
967
968 ##########################################
969 # SDL probe
970
971 cat > $TMPC << EOF
972 #include <SDL.h>
973 #undef main /* We don't want SDL to override our main() */
974 int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
975 EOF
976
977 sdl_too_old=no
978 sdl=no
979 if (sdl-config --version) >/dev/null 2>&1 ; then
980 if $cc -o $TMPE `sdl-config --cflags` $TMPC `sdl-config --libs`  > /dev/null 2>&1  ; then
981 _sdlversion=`sdl-config --version | sed 's/[^0-9]//g'`
982 if test "$_sdlversion" -lt 121 ; then
983 sdl_too_old=yes
984 else
985 sdl=yes
986 fi
987 fi
988 fi
989
990 ##########################################
991 # texi2html probe
992
993 texi2html=no
994 if (texi2html -version) >/dev/null 2>&1; then
995 texi2html=yes
996 fi
997
998 if test "$network" = "yes" ; then
999 ##########################################
1000 # IPv6 probe
1001
1002 cat > $TMPC << EOF
1003 #include <sys/types.h>
1004 #include <sys/socket.h>
1005 #include <netinet/in.h>
1006 #include <netdb.h>
1007 int main( void ) {
1008   struct sockaddr_storage saddr;
1009   struct ipv6_mreq mreq6;
1010   getaddrinfo(0,0,0,0);
1011   getnameinfo(0,0,0,0,0,0,0);
1012   IN6_IS_ADDR_MULTICAST(0);
1013 }
1014 EOF
1015
1016 ipv6=no
1017 if $cc -o $TMPE $TMPC > /dev/null 2>&1  ; then
1018 ipv6=yes
1019 fi
1020 fi
1021
1022 case "`$cc -v 2>&1 | grep version`" in
1023     *gcc*)
1024         CFLAGS="-Wall -Wno-switch $CFLAGS"
1025         ;;
1026     *)
1027         ;;
1028 esac
1029
1030 if test "$sdl" = "no" ; then
1031    ffplay=no
1032 fi
1033
1034 if test "$debug" = "yes"; then
1035         CFLAGS="-g $CFLAGS"
1036 fi
1037
1038 if test "$optimize" = "small"; then
1039 #  CFLAGS=${CFLAGS//-O3/-Os}
1040   CFLAGS="$CFLAGS -Os"
1041 fi
1042
1043 if test "$optimize" = "yes"; then
1044     if test -n "`$cc -v 2>&1 | grep xlc`"; then
1045         CFLAGS="$CFLAGS -O5"
1046         LDFLAGS="$LDFLAGS -O5"
1047     else
1048         CFLAGS="-O3 $CFLAGS"
1049     fi
1050 fi
1051
1052 if test x"$bindir" = x""; then
1053 bindir="${prefix}/bin"
1054 fi
1055
1056 if test x"$mandir" = x""; then
1057 mandir="${prefix}/man"
1058 fi
1059
1060 echo "Install prefix   $prefix"
1061 echo "Source path      $source_path"
1062 echo "C compiler       $cc"
1063 echo "make             $make"
1064 echo "CPU              $cpu ($tune)"
1065 echo "Big Endian       $bigendian"
1066 echo "inttypes.h       $inttypes"
1067 echo "broken inttypes.h $emu_fast_int"
1068 if test $cpu = "x86" -o $cpu = "x86_64"; then
1069 echo "MMX enabled      $mmx"
1070 echo "Vector Builtins  $builtin_vector"
1071 fi
1072 if test $cpu = "mips"; then
1073 echo "MMI enabled      $mmi"
1074 fi
1075 if test $cpu = "powerpc"; then
1076 echo "AltiVec enabled  $altivec"
1077 fi
1078 echo "gprof enabled    $gprof"
1079 echo "zlib enabled     $zlib"
1080 echo "mp3lame enabled  $mp3lame"
1081 echo "ogg enabled      $ogg"
1082 echo "vorbis enabled   $vorbis"
1083 echo "theora enabled   $theora"
1084 echo "faad enabled     $faad"
1085 echo "faadbin enabled  $faadbin"
1086 echo "faac enabled     $faac"
1087 echo "xvid enabled     $xvid"
1088 echo "a52 support      $a52"
1089 echo "a52 dlopened     $a52bin"
1090 echo "dts support      $dts"
1091 echo "pp support       $pp"
1092 echo "debug symbols    $debug"
1093 echo "strip symbols    $dostrip"
1094 echo "optimize         $optimize"
1095 echo "shared pp        $shared_pp"
1096 echo "Video hooking    $vhook"
1097 echo "SDL support      $sdl"
1098 if test $sdl_too_old = "yes"; then
1099 echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support"
1100 fi
1101
1102 if test "$vhook" = "yes" ; then
1103 echo "Imlib2 support   $imlib2"
1104 echo "freetype support $freetype2"
1105 fi
1106 echo "Sun medialib support"  $sunmlib
1107 echo "pthreads support"      $pthreads
1108 echo "AMR-NB float support"  $amr_nb
1109 echo "AMR-NB fixed support"  $amr_nb_fixed
1110 echo "AMR-WB float support"  $amr_wb
1111 echo "AMR-WB IF2 support"    $amr_if2
1112 echo "network support      $network"
1113 if test "$network" = "yes" ; then
1114 echo "IPv6 support         $ipv6"
1115 fi
1116 if test "$gpl" = "no" ; then
1117 echo "License: LGPL"
1118 else
1119 echo "License: GPL"
1120 fi
1121
1122 echo "Creating config.mak and config.h"
1123
1124 date >> config.log
1125 echo "   $0 $FFMPEG_CONFIGURATION" >> config.log
1126 echo "# Automatically generated by configure - do not modify" > config.mak
1127 echo "/* Automatically generated by configure - do not modify */" > $TMPH
1128 echo "#define FFMPEG_CONFIGURATION "'"'"$FFMPEG_CONFIGURATION"'"' >> $TMPH
1129
1130 echo "prefix=$prefix" >> config.mak
1131 echo "bindir=$bindir" >> config.mak
1132 echo "mandir=$mandir" >> config.mak
1133 echo "MAKE=$make" >> config.mak
1134 echo "CC=$cc" >> config.mak
1135 echo "AR=$ar" >> config.mak
1136 echo "RANLIB=$ranlib" >> config.mak
1137 if test "$dostrip" = "yes" ; then
1138 echo "STRIP=$strip" >> config.mak
1139 echo "INSTALLSTRIP=-s" >> config.mak
1140 else
1141 echo "STRIP=echo ignoring strip" >> config.mak
1142 echo "INSTALLSTRIP=" >> config.mak
1143 fi
1144
1145 # SHCFLAGS is a copy of CFLAGS without -mdynamic-no-pic.  Used when building 
1146 # shared modules on OS/X (vhook/Makefile).
1147 SHCFLAGS=$CFLAGS
1148 if test "$needmdynamicnopic" = yes; then
1149    CFLAGS="$CFLAGS -mdynamic-no-pic"
1150 fi
1151
1152 echo "OPTFLAGS=$CFLAGS" >> config.mak
1153 echo "SHCFLAGS=$SHCFLAGS">>config.mak
1154 echo "LDFLAGS=$LDFLAGS" >> config.mak
1155 echo "FFSLDFLAGS=$FFSLDFLAGS" >> config.mak
1156 echo "SHFLAGS=$SHFLAGS" >> config.mak
1157 echo "LIBPREF=$LIBPREF" >> config.mak
1158 echo "LIBSUF=$LIBSUF" >> config.mak
1159 echo "SLIBPREF=$SLIBPREF" >> config.mak
1160 echo "SLIBSUF=$SLIBSUF" >> config.mak
1161 echo "EXESUF=$EXESUF" >> config.mak
1162 echo "TARGET_OS=$TARGET_OS" >> config.mak
1163 if test "$cpu" = "x86" ; then
1164   echo "TARGET_ARCH_X86=yes" >> config.mak
1165   echo "#define ARCH_X86 1" >> $TMPH
1166 elif test "$cpu" = "x86_64" ; then
1167   echo "TARGET_ARCH_X86_64=yes" >> config.mak
1168   echo "#define ARCH_X86_64 1" >> $TMPH
1169 elif test "$cpu" = "armv4l" ; then
1170   echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
1171   echo "#define ARCH_ARMV4L 1" >> $TMPH
1172 elif test "$cpu" = "alpha" ; then
1173   echo "TARGET_ARCH_ALPHA=yes" >> config.mak
1174   echo "#define ARCH_ALPHA 1" >> $TMPH
1175 elif test "$cpu" = "sparc64" ; then
1176   echo "TARGET_ARCH_SPARC64=yes" >> config.mak
1177   echo "#define ARCH_SPARC64 1" >> $TMPH
1178   echo "TARGET_ARCH_SPARC=yes" >> config.mak
1179   echo "#define ARCH_SPARC 1" >> $TMPH
1180 elif test "$cpu" = "sparc" ; then
1181   echo "TARGET_ARCH_SPARC=yes" >> config.mak
1182   echo "#define ARCH_SPARC 1" >> $TMPH
1183 elif test "$cpu" = "powerpc" ; then
1184   echo "TARGET_ARCH_POWERPC=yes" >> config.mak
1185   echo "#define ARCH_POWERPC 1" >> $TMPH
1186   if test $POWERPCMODE = "32bits"; then
1187     echo "#define POWERPC_MODE_32BITS 1" >> $TMPH
1188   else
1189     echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
1190   fi
1191   if test "$powerpc_perf" = "yes"; then
1192     echo "#define POWERPC_PERFORMANCE_REPORT 1" >> $TMPH
1193   fi
1194 elif test "$cpu" = "mips" ; then
1195   echo "TARGET_ARCH_MIPS=yes" >> config.mak
1196   echo "#define ARCH_MIPS 1" >> $TMPH
1197 elif test "$cpu" = "sh4" ; then
1198   echo "TARGET_ARCH_SH4=yes" >> config.mak
1199   echo "#define ARCH_SH4 1" >> $TMPH
1200 fi
1201 echo "#define TUNECPU $TUNECPU" >> $TMPH
1202 if test "$bigendian" = "yes" ; then
1203   echo "WORDS_BIGENDIAN=yes" >> config.mak
1204   echo "#define WORDS_BIGENDIAN 1" >> $TMPH
1205 fi
1206 if test "$inttypes" != "yes" ; then
1207   echo "#define EMULATE_INTTYPES 1" >> $TMPH
1208 fi
1209 if test "$emu_fast_int" = "yes" ; then
1210   echo "#define EMULATE_FAST_INT 1" >> $TMPH
1211 fi
1212 if test "$mmx" = "yes" ; then
1213   echo "TARGET_MMX=yes" >> config.mak
1214   echo "#define HAVE_MMX 1" >> $TMPH
1215   echo "#define __CPU__ 586" >> $TMPH
1216 fi
1217 if test "$builtin_vector" = "yes" ; then
1218   echo "TARGET_BUILTIN_VECTOR=yes" >> config.mak
1219   echo "#define HAVE_BUILTIN_VECTOR 1" >> $TMPH
1220 fi
1221 if test "$mmi" = "yes" ; then
1222   echo "TARGET_MMI=yes" >> config.mak
1223   echo "#define HAVE_MMI 1" >> $TMPH
1224 fi
1225 if test "$altivec" = "yes" ; then
1226   echo "TARGET_ALTIVEC=yes" >> config.mak
1227   echo "#define HAVE_ALTIVEC 1" >> $TMPH
1228   echo "// Enable the next line to use the reference C code instead of AltiVec" >> $TMPH
1229   echo "// #define ALTIVEC_USE_REFERENCE_C_CODE 1" >> $TMPH
1230   if test "$_altivec_h" = "yes" ; then
1231     echo "#define HAVE_ALTIVEC_H 1" >> $TMPH
1232   else
1233     echo "#undef HAVE_ALTIVEC_H" >> $TMPH
1234   fi
1235 fi
1236 if test "$gprof" = "yes" ; then
1237   echo "TARGET_GPROF=yes" >> config.mak
1238   echo "#define HAVE_GPROF 1" >> $TMPH
1239 fi
1240 if test "$localtime_r" = "yes" ; then
1241   echo "#define HAVE_LOCALTIME_R 1" >> $TMPH
1242 fi
1243 if test "$imlib2" = "yes" ; then
1244   echo "HAVE_IMLIB2=yes" >> config.mak
1245 fi
1246 if test "$freetype2" = "yes" ; then
1247   echo "HAVE_FREETYPE2=yes" >> config.mak
1248 fi
1249 if test "$sunmlib" = "yes" ; then
1250   echo "HAVE_MLIB=yes" >> config.mak
1251   echo "#define HAVE_MLIB 1" >> $TMPH
1252   extralibs="$extralibs -lmlib"
1253 fi
1254 if test "$pthreads" = "yes" ; then
1255   echo "HAVE_PTHREADS=yes" >> config.mak
1256   echo "#define HAVE_PTHREADS 1" >> $TMPH
1257   echo "#define HAVE_THREADS 1" >> $TMPH
1258   if test $targetos != FreeBSD; then
1259      extralibs="$extralibs -lpthread"
1260   fi
1261 fi
1262 if test "$sdl" = "yes" ; then
1263   echo "CONFIG_SDL=yes" >> config.mak
1264   echo "SDL_LIBS=`sdl-config --libs`" >> config.mak
1265   echo "SDL_CFLAGS=`sdl-config --cflags`" >> config.mak
1266 fi
1267 if test "$texi2html" = "yes"; then
1268   echo "BUILD_DOC=yes" >> config.mak
1269 fi
1270 if test "$have_lrintf" = "yes" ; then
1271   echo "#define HAVE_LRINTF 1" >> $TMPH
1272 fi
1273 if test "$vhook" = "yes" ; then
1274   echo "BUILD_VHOOK=yes" >> config.mak
1275   echo "#define HAVE_VHOOK 1" >> $TMPH
1276   extralibs="$extralibs $ldl"
1277 fi
1278 if test "$lshared" = "yes" ; then
1279   echo "BUILD_SHARED=yes" >> config.mak
1280   echo "PIC=-fPIC" >> config.mak
1281 fi
1282 echo "EXTRALIBS=$extralibs" >> config.mak
1283 version=`grep '#define FFMPEG_VERSION ' "$source_path/libavcodec/avcodec.h" |
1284  cut -d '"' -f 2`
1285 echo "VERSION=$version" >>config.mak
1286 # if you do not want to use encoders, disable that.
1287 echo "#define CONFIG_ENCODERS 1" >> $TMPH
1288 echo "CONFIG_ENCODERS=yes" >> config.mak
1289
1290 # if you do not want to use decoders, disable that.
1291 echo "#define CONFIG_DECODERS 1" >> $TMPH
1292 echo "CONFIG_DECODERS=yes" >> config.mak
1293
1294 # AC3
1295 if test "$a52" = "yes" ; then
1296   echo "#define CONFIG_AC3 1" >> $TMPH
1297   echo "CONFIG_AC3=yes" >> config.mak
1298
1299   if test "$a52bin" = "yes" ; then
1300     echo "#define CONFIG_A52BIN 1" >> $TMPH
1301     echo "CONFIG_A52BIN=yes" >> config.mak
1302   fi
1303 fi
1304
1305 # DTS
1306 if test "$dts" = "yes" ; then
1307   echo "#define CONFIG_DTS 1" >> $TMPH
1308   echo "CONFIG_DTS=yes" >> config.mak
1309 fi
1310
1311 # PP
1312 if test "$pp" = "yes" ; then
1313   echo "#define CONFIG_PP 1" >> $TMPH
1314   echo "CONFIG_PP=yes" >> config.mak
1315
1316   if test "$shared_pp" = "yes" ; then
1317     echo "#define SHARED_PP 1" >> $TMPH
1318     echo "SHARED_PP=yes" >> config.mak
1319   fi
1320 fi
1321
1322 # mpeg audio high precision mode
1323 if test "$mpegaudio_hp" = "yes" ; then
1324   echo "#define CONFIG_MPEGAUDIO_HP 1" >> $TMPH
1325 fi
1326
1327 if test "$v4l" = "yes" ; then
1328   echo "#define CONFIG_VIDEO4LINUX 1" >> $TMPH
1329   echo "CONFIG_VIDEO4LINUX=yes" >> config.mak
1330 fi
1331
1332 if test "$dv1394" = "yes" ; then
1333   echo "#define CONFIG_DV1394 1" >> $TMPH
1334   echo "CONFIG_DV1394=yes" >> config.mak
1335 fi
1336
1337 if test "$dc1394" = "yes" ; then
1338   echo "#define CONFIG_DC1394 1" >> $TMPH
1339   echo "CONFIG_DC1394=yes" >> config.mak
1340 fi
1341
1342 if test "$dlopen" = "yes" ; then
1343   echo "#define CONFIG_HAVE_DLOPEN 1" >> $TMPH
1344 fi
1345
1346 if test "$dlfcn" = "yes" ; then
1347   echo "#define CONFIG_HAVE_DLFCN 1" >> $TMPH
1348 fi
1349
1350 if test "$audio_oss" = "yes" ; then
1351   echo "#define CONFIG_AUDIO_OSS 1" >> $TMPH
1352   echo "CONFIG_AUDIO_OSS=yes" >> config.mak
1353 fi
1354
1355 if test "$audio_beos" = "yes" ; then
1356   echo "#define CONFIG_AUDIO_BEOS 1" >> $TMPH
1357   echo "CONFIG_AUDIO_BEOS=yes" >> config.mak
1358 fi
1359
1360 if test "$network" = "yes" ; then
1361   echo "#define CONFIG_NETWORK 1" >> $TMPH
1362   echo "CONFIG_NETWORK=yes" >> config.mak
1363 fi
1364
1365 if test "$ipv6" = "yes" ; then
1366   echo "#define CONFIG_IPV6 1" >> $TMPH
1367 fi
1368
1369 if test "$zlib" = "yes" ; then
1370   echo "#define CONFIG_ZLIB 1" >> $TMPH
1371   echo "CONFIG_ZLIB=yes" >> config.mak
1372 fi
1373
1374 if test "$mp3lame" = "yes" ; then
1375   echo "#define CONFIG_MP3LAME 1" >> $TMPH
1376   echo "CONFIG_MP3LAME=yes" >> config.mak
1377 fi
1378
1379 if test "$ogg" = "yes" ; then
1380   echo "#define CONFIG_LIBOGG 1" >> $TMPH
1381   echo "CONFIG_LIBOGG=yes" >> config.mak
1382 fi
1383
1384 if test "$vorbis" = "yes" ; then
1385   echo "#define CONFIG_LIBVORBIS 1" >> $TMPH
1386   echo "CONFIG_LIBVORBIS=yes" >> config.mak
1387 fi
1388
1389 if test "$theora" = "yes" ; then
1390   echo "#define CONFIG_LIBTHEORA 1" >> $TMPH
1391   echo "CONFIG_LIBTHEORA=yes" >> config.mak
1392 fi
1393
1394 if test "$faad" = "yes" ; then
1395   echo "#define CONFIG_FAAD 1" >> $TMPH
1396   echo "CONFIG_FAAD=yes" >> config.mak
1397 fi
1398
1399 if test "$faadbin" = "yes" ; then
1400   echo "#define CONFIG_FAADBIN 1" >> $TMPH
1401   echo "CONFIG_FAADBIN=yes" >> config.mak
1402 fi
1403
1404 if test "$faac" = "yes" ; then
1405   echo "#define CONFIG_FAAC 1" >> $TMPH
1406   echo "CONFIG_FAAC=yes" >> config.mak
1407 fi
1408
1409 if test "$xvid" = "yes" ; then
1410   echo "#define CONFIG_XVID 1" >> $TMPH
1411   echo "CONFIG_XVID=yes" >> config.mak
1412 fi
1413
1414 if test "$mingw32" = "yes" ; then
1415   echo "#define CONFIG_WIN32 1" >> $TMPH
1416   echo "CONFIG_WIN32=yes" >> config.mak
1417   echo "HAVE_W32THREADS=yes" >> config.mak
1418   echo "#define HAVE_W32THREADS 1" >> $TMPH
1419   echo "#define HAVE_THREADS 1" >> $TMPH
1420   echo "#ifndef __MINGW32__" >> $TMPH
1421   echo "#define __MINGW32__ 1" >> $TMPH
1422   echo "#endif" >> $TMPH
1423 fi
1424
1425 if test "$os2" = "yes" ; then
1426   echo "#define CONFIG_OS2 1" >> $TMPH
1427   echo "CONFIG_OS2=yes" >> config.mak
1428 fi
1429
1430 if test "$TARGET_OS" = "SunOS" ; then
1431   echo "#define CONFIG_SUNOS 1" >> $TMPH
1432 fi
1433
1434 if test "$TARGET_OS" = "BeOS" ; then
1435   echo "HAVE_BEOSTHREADS=yes" >> config.mak
1436   echo "#define HAVE_BEOSTHREADS 1" >> $TMPH
1437   echo "#define HAVE_THREADS 1" >> $TMPH
1438 fi
1439
1440 if test "$darwin" = "yes"; then
1441   echo "#define CONFIG_DARWIN 1"  >> $TMPH
1442   echo "CONFIG_DARWIN=yes" >> config.mak
1443 fi
1444
1445 if test "$_malloc_h" = "yes" ; then
1446   echo "#define HAVE_MALLOC_H 1" >> $TMPH
1447 else
1448   echo "#undef  HAVE_MALLOC_H" >> $TMPH
1449 fi
1450
1451 if test "$_memalign" = "yes" ; then
1452   echo "#define HAVE_MEMALIGN 1" >> $TMPH
1453 else
1454   echo "#undef  HAVE_MEMALIGN" >> $TMPH
1455 fi
1456
1457 if test "$memalignhack" = "yes" ; then
1458   echo "#define MEMALIGN_HACK 1" >> $TMPH
1459 fi
1460
1461
1462 if test "$netserver" = "yes" ; then
1463   echo "#define CONFIG_BEOS_NETSERVER 1" >> $TMPH
1464   echo "CONFIG_BEOS_NETSERVER=yes" >> config.mak
1465 fi
1466
1467 if test "$need_inet_aton" = "yes" ; then
1468   echo "NEED_INET_ATON=yes" >> config.mak
1469 fi
1470
1471 if test "$simpleidct" = "yes" ; then
1472   echo "#define SIMPLE_IDCT 1" >> $TMPH
1473 fi
1474
1475 if test "$ffserver" = "yes" ; then
1476   echo "#define CONFIG_FFSERVER 1" >> $TMPH
1477   echo "CONFIG_FFSERVER=yes" >> config.mak
1478 fi
1479
1480 if test "$ffplay" = "yes" ; then
1481   echo "CONFIG_FFPLAY=yes" >> config.mak
1482 fi
1483
1484 if test "$gpl" = "yes" ; then
1485   echo "#define CONFIG_GPL 1" >> $TMPH
1486   echo "CONFIG_GPL=yes" >> config.mak
1487 fi
1488
1489 echo "#define restrict $_restrict" >> $TMPH
1490
1491 if test "$optimize" = "small"; then
1492   echo "#define always_inline"  >> $TMPH
1493 fi
1494
1495 # build tree in object directory if source path is different from current one
1496 if test "$source_path_used" = "yes" ; then
1497     DIRS="doc libavformat libavcodec libavcodec/alpha libavcodec/armv4l \
1498           libavcodec/i386 libavcodec/sparc libavcodec/mlib \
1499           libavcodec/ppc libavcodec/liba52 libavcodec/libpostproc tests vhook"
1500     FILES="Makefile libavformat/Makefile libavcodec/Makefile \
1501           libavcodec/libpostproc/Makefile tests/Makefile vhook/Makefile \
1502           doc/Makefile doc/texi2pod.pl"
1503     for dir in $DIRS ; do
1504             mkdir -p $dir
1505     done
1506     for f in $FILES ; do
1507         ln -sf "$source_path/$f" $f
1508     done
1509     echo "SRC_PATH=$source_path" >> config.mak
1510 else
1511     echo "SRC_PATH='$source_path'" >> config.mak
1512 fi
1513
1514 if test "$amr_wb" = "yes" ; then
1515   echo "#define AMR_WB 1" >> $TMPH
1516   echo "AMR_WB=yes" >> config.mak
1517   echo
1518   echo "AMR WB FLOAT NOTICE ! Make sure you have downloaded TS26.204"
1519   echo "V5.1.0 from "
1520   echo "http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip"
1521   echo "and extracted the source to libavcodec/amrwb_float"
1522   echo
1523 fi
1524
1525 if test "$amr_nb" = "yes" ; then
1526   echo "#define AMR_NB 1" >> $TMPH
1527   echo "AMR_NB=yes" >> config.mak
1528   echo
1529 if test "$amr_nb_fixed" = "yes" ; then
1530   echo "AMR_NB_FIXED=yes" >> config.mak
1531   echo "#define AMR_NB_FIXED 1" >> $TMPH
1532   echo "AMR NB FIXED POINT NOTICE! Make sure you have downloaded TS26.073 "
1533   echo "REL-5 version 5.1.0 from "
1534   echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26073-5??.zip"
1535   echo "and extracted src to libavcodec/amr"
1536   echo "You must also add -DMMS_IO and remove -pedantic-errors to/from CFLAGS in libavcodec/amr/makefile."
1537   echo "i.e. CFLAGS = -Wall -I. \$(CFLAGS_\$(MODE)) -D\$(VAD) -DMMS_IO"
1538   echo
1539 else
1540   echo "AMR NB FLOAT NOTICE ! Make sure you have downloaded TS26.104"
1541   echo "REL-5 V5.1.0 from "
1542   echo "http://www.3gpp.org/ftp/Specs/latest/Rel-5/26_series/26104-5??.zip"
1543   echo "and extracted the source to libavcodec/amr_float"
1544   echo "and if u try this on an alpha, u may need to change Word32 to int in amr/typedef.h"
1545   echo
1546 fi
1547
1548 if test "$amr_if2" = "yes" ; then
1549   echo "AMR_CFLAGS=-DIF2=1" >> config.mak
1550 fi
1551
1552 fi
1553
1554 diff $TMPH config.h >/dev/null 2>&1
1555 if test $? -ne 0 ; then
1556         mv -f $TMPH config.h
1557 else
1558         echo "config.h is unchanged"
1559 fi
1560
1561 rm -f $TMPO $TMPC $TMPE $TMPS $TMPH