]> git.sesse.net Git - x264/blob - configure
iPhone compilation support
[x264] / configure
1 #!/bin/bash
2
3 if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
4
5 echo "Usage: ./configure [options]"
6 echo ""
7 echo "available options:"
8 echo ""
9 echo "  --help                   print this message"
10 echo "  --disable-avs-input      disables avisynth input (win32 only)"
11 echo "  --disable-lavf-input     disables libavformat input"
12 echo "  --disable-ffms-input     disables ffmpegsource input"
13 echo "  --disable-mp4-output     disables mp4 output (using gpac)"
14 echo "  --disable-pthread        disables multithreaded encoding"
15 echo "  --disable-asm            disables assembly optimizations on x86 and arm"
16 echo "  --enable-debug           adds -g, doesn't strip"
17 echo "  --enable-gprof           adds -pg, doesn't strip"
18 echo "  --enable-visualize       enables visualization (X11 only)"
19 echo "  --enable-pic             build position-independent code"
20 echo "  --enable-shared          build libx264.so"
21 echo "  --extra-asflags=EASFLAGS add EASFLAGS to ASFLAGS"
22 echo "  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS"
23 echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS"
24 echo "  --host=HOST              build programs to run on HOST"
25 echo "  --cross-prefix=PREFIX    use PREFIX for compilation tools"
26 echo "  --sysroot=SYSROOT        root of cross-build tree"
27 echo ""
28 exit 1
29 fi
30
31 log_check() {
32     echo -n "checking $1... " >> config.log
33 }
34
35 log_ok() {
36     echo "yes" >> config.log
37 }
38
39 log_fail() {
40     echo "no" >> config.log
41 }
42
43 log_msg() {
44     echo "$1" >> config.log
45 }
46
47 cc_check() {
48     if [ -z "$3" ]; then
49         if [ -z "$1$2" ]; then
50             log_check "whether $CC works"
51         elif [ -z "$1" ]; then
52             log_check "for $2"
53         else
54             log_check "for $1"
55         fi
56     elif [ -z "$1" ]; then
57         log_check "whether $CC supports $3"
58     else
59         log_check "for $3 in $1";
60     fi
61     rm -f conftest.c
62     [ -n "$1" ] && echo "#include <$1>" > conftest.c
63     echo "int main () { $3 return 0; }" >> conftest.c
64     if $CC conftest.c $CFLAGS $LDFLAGS $LDFLAGSCLI $2 -o conftest >conftest.log 2>&1; then
65         res=$?
66         log_ok
67     else
68         res=$?
69         log_fail
70         log_msg "Failed commandline was:"
71         log_msg "--------------------------------------------------"
72         log_msg "$CC conftest.c $CFLAGS $LDFLAGS $LDFLAGSCLI $2"
73         cat conftest.log >> config.log
74         log_msg "--------------------------------------------------"
75     fi
76     return $res
77 }
78
79 as_check() {
80     log_check "whether $AS supports $1"
81     echo "$1" > conftest.asm
82     if $AS conftest.asm $ASFLAGS $2 -o conftest.o >conftest.log 2>&1; then
83         res=$?
84         log_ok
85     else
86         res=$?
87         log_fail
88         log_msg "Failed commandline was:"
89         log_msg "--------------------------------------------------"
90         log_msg "$AS conftest.asm $ASFLAGS $2 -o conftest.o"
91         cat conftest.log >> config.log
92         log_msg "--------------------------------------------------"
93     fi
94     return $res
95 }
96
97 define() {
98     echo "#define $1$([ -n "$2" ] && echo " $2")" >> config.h
99 }
100
101 die() {
102     log_msg "DIED: $@"
103     echo "$@"
104     exit 1
105 }
106
107 rm -f config.h config.mak config.log x264.pc conftest*
108
109 prefix='/usr/local'
110 exec_prefix='${prefix}'
111 bindir='${exec_prefix}/bin'
112 libdir='${exec_prefix}/lib'
113 includedir='${prefix}/include'
114 DEVNULL='/dev/null'
115
116 avs_input="auto"
117 lavf_input="auto"
118 ffms_input="auto"
119 mp4_output="auto"
120 pthread="auto"
121 asm="yes"
122 debug="no"
123 gprof="no"
124 pic="no"
125 vis="no"
126 shared="no"
127
128 CFLAGS="$CFLAGS -Wall -I."
129 LDFLAGS="$LDFLAGS"
130 LDFLAGSCLI="$LDFLAGSCLI"
131 ASFLAGS="$ASFLAGS"
132 HAVE_GETOPT_LONG=1
133 cross_prefix=""
134
135 EXE=""
136
137 # parse options
138
139 for opt do
140     optarg="${opt#*=}"
141     case "$opt" in
142         --prefix=*)
143             prefix="$optarg"
144             ;;
145         --exec-prefix=*)
146             exec_prefix="$optarg"
147             ;;
148         --bindir=*)
149             bindir="$optarg"
150             ;;
151         --libdir=*)
152             libdir="$optarg"
153             ;;
154         --includedir=*)
155             includedir="$optarg"
156             ;;
157         --enable-asm)
158             asm="yes"
159             ;;
160         --disable-asm)
161             asm="no"
162             ;;
163         --enable-avs-input)
164             avs_input="auto"
165             ;;
166         --disable-avs-input)
167             avs_input="no"
168             ;;
169         --enable-lavf-input)
170             lavf_input="auto"
171             ;;
172         --disable-lavf-input)
173             lavf_input="no"
174             ;;
175         --enable-ffms-input)
176             ffms_input="auto"
177             ;;
178         --disable-ffms-input)
179             ffms_input="no"
180             ;;
181         --enable-mp4-output)
182             mp4_output="yes"
183             ;;
184         --disable-mp4-output)
185             mp4_output="no"
186             ;;
187         --extra-asflags=*)
188             ASFLAGS="$ASFLAGS ${opt#--extra-asflags=}"
189             ;;
190         --extra-cflags=*)
191             CFLAGS="$CFLAGS ${opt#--extra-cflags=}"
192             ;;
193         --extra-ldflags=*)
194             LDFLAGS="$LDFLAGS ${opt#--extra-ldflags=}"
195             ;;
196         --enable-pthread)
197             pthread="auto" # can't skip detection, since it differs by OS
198             ;;
199         --disable-pthread)
200             pthread="no"
201             ;;
202         --enable-debug)
203             debug="yes"
204             ;;
205         --enable-gprof)
206             CFLAGS="$CFLAGS -pg"
207             LDFLAGS="$LDFLAGS -pg"
208             gprof="yes"
209             ;;
210         --enable-pic)
211             pic="yes"
212             ;;
213         --enable-shared)
214             shared="yes"
215             ;;
216         --enable-visualize)
217             LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11"
218             define HAVE_VISUALIZE
219             vis="yes"
220             ;;
221         --host=*)
222             host="${opt#--host=}"
223             ;;
224         --cross-prefix=*)
225             cross_prefix="${opt#--cross-prefix=}"
226             ;;
227         --sysroot=*)
228             CFLAGS="$CFLAGS --sysroot=${opt#--sysroot=}"
229             LDFLAGS="$LDFLAGS --sysroot=${opt#--sysroot=}"
230             ;;
231         *)
232             echo "Unknown option $opt, ignored"
233             ;;
234     esac
235 done
236
237 CC="${CC-${cross_prefix}gcc}"
238 AR="${AR-${cross_prefix}ar}"
239 RANLIB="${RANLIB-${cross_prefix}ranlib}"
240 STRIP="${STRIP-${cross_prefix}strip}"
241
242 if [ "x$host" = x ]; then
243     host=`./config.guess`
244 fi
245 # normalize a triplet into a quadruplet
246 host=`./config.sub $host`
247
248 # split $host
249 host_cpu="${host%%-*}"
250 host="${host#*-}"
251 host_vendor="${host%%-*}"
252 host_os="${host#*-}"
253
254 case $host_os in
255   beos*)
256     SYS="BEOS"
257     define HAVE_MALLOC_H
258     ;;
259   darwin*)
260     SYS="MACOSX"
261     CFLAGS="$CFLAGS -falign-loops=16"
262     LDFLAGS="$LDFLAGS -lm"
263     if [ "$pic" = "no" ]; then
264         cc_check "" -mdynamic-no-pic && CFLAGS="$CFLAGS -mdynamic-no-pic"
265     fi
266     ;;
267   freebsd*)
268     SYS="FREEBSD"
269     LDFLAGS="$LDFLAGS -lm"
270     ;;
271   kfreebsd*-gnu)
272     SYS="FREEBSD"
273     define HAVE_MALLOC_H
274     LDFLAGS="$LDFLAGS -lm"
275     ;;
276   netbsd*)
277     SYS="NETBSD"
278     LDFLAGS="$LDFLAGS -lm"
279     ;;
280   openbsd*)
281     SYS="OPENBSD"
282     CFLAGS="$CFLAGS -I/usr/X11R6/include"
283     LDFLAGS="$LDFLAGS -lm"
284     ;;
285   *linux*)
286     SYS="LINUX"
287     define HAVE_MALLOC_H
288     LDFLAGS="$LDFLAGS -lm"
289     ;;
290   cygwin*)
291     SYS="MINGW"
292     EXE=".exe"
293     DEVNULL="NUL"
294     if cc_check "" -mno-cygwin; then
295         CFLAGS="$CFLAGS -mno-cygwin"
296         LDFLAGS="$LDFLAGS -mno-cygwin"
297     fi
298     ;;
299   mingw*)
300     SYS="MINGW"
301     EXE=".exe"
302     DEVNULL="NUL"
303     ;;
304   sunos*|solaris*)
305     SYS="SunOS"
306     define HAVE_MALLOC_H
307     LDFLAGS="$LDFLAGS -lm"
308     HAVE_GETOPT_LONG=0
309     ;;
310   *)
311     die "Unknown system $host, edit the configure"
312     ;;
313 esac
314
315 case $host_cpu in
316   i*86)
317     ARCH="X86"
318     AS="yasm"
319     ASFLAGS="$ASFLAGS -O2"
320     if [[ "$asm" == yes && "$CFLAGS" != *-march* ]]; then
321       CFLAGS="$CFLAGS -march=i686"
322     fi
323     if [[ "$asm" == yes && "$CFLAGS" != *-mfpmath* ]]; then
324       CFLAGS="$CFLAGS -mfpmath=sse -msse"
325     fi
326     if [ "$SYS" = MACOSX ]; then
327       ASFLAGS="$ASFLAGS -f macho -DPREFIX"
328     elif [ "$SYS" = MINGW ]; then
329       ASFLAGS="$ASFLAGS -f win32 -DPREFIX"
330     else
331       ASFLAGS="$ASFLAGS -f elf"
332     fi
333     ;;
334   x86_64)
335     ARCH="X86_64"
336     AS="yasm"
337     if [ "$SYS" = MACOSX ];then
338       ASFLAGS="$ASFLAGS -f macho64 -m amd64 -DPIC -DPREFIX"
339       if cc_check '' "-arch x86_64"; then
340         CFLAGS="$CFLAGS -arch x86_64"
341         LDFLAGS="$LDFLAGS -arch x86_64"
342       fi
343     elif [ "$SYS" = MINGW ]; then
344       ASFLAGS="$ASFLAGS -f win32 -m amd64 -DPREFIX"
345     else
346       ASFLAGS="$ASFLAGS -f elf -m amd64"
347     fi
348     ;;
349   powerpc|powerpc64)
350     ARCH="PPC"
351     if [ $SYS = MACOSX ]
352     then
353       CFLAGS="$CFLAGS -faltivec -fastf -mcpu=G4"
354     else
355       CFLAGS="$CFLAGS -maltivec -mabi=altivec"
356       define HAVE_ALTIVEC_H
357     fi
358     ;;
359   sparc)
360     if test "$(uname -m)" = "sun4u"; then
361       ARCH="UltraSparc"
362       CFLAGS="$CFLAGS -mcpu=ultrasparc"
363       LDFLAGS="$LDFLAGS -mcpu=ultrasparc"
364       AS="${cross_prefix}as"
365       ASFLAGS="$ASFLAGS -xarch=v8plusa"
366     else
367       ARCH="Sparc"
368     fi
369     ;;
370   mips|mipsel|mips64|mips64el)
371     ARCH="MIPS"
372     ;;
373   arm*)
374     ARCH="ARM"
375     if [ "$SYS" = MACOSX ] ; then
376       AS="${AS-extras/gas-preprocessor.pl $CC}"
377       ASFLAGS="$ASFLAGS -DPREFIX -DPIC"  # apple's ld doesn't support movw/movt relocations at all
378       # build for armv7 by default
379       if ! echo $CFLAGS | grep -Eq '\-arch' ; then
380         CFLAGS="$CFLAGS -arch armv7"
381         LDFLAGS="$LDFLAGS -arch armv7"
382       fi
383     else
384       AS="${AS-${cross_prefix}gcc}"
385     fi
386     ;;
387   s390|s390x)
388     ARCH="S390"
389     ;;
390   parisc|parisc64)
391     ARCH="PARISC"
392     ;;
393   *)
394     ARCH="$(echo $host_cpu | tr a-z A-Z)"
395     ;;
396 esac
397
398 log_msg "x264 configure script"
399 if [ -n "$*" ]; then
400     msg="Command line options:"
401     for i in $@; do
402         msg="$msg \"$i\""
403     done
404     log_msg "$msg"
405 fi
406 log_msg ""
407
408 # check requirements
409
410 cc_check || die "No working C compiler found."
411
412 if cc_check '' -std=gnu99 ; then
413     CFLAGS="$CFLAGS -std=gnu99"
414 elif cc_check '' -std=c99 ; then
415     CFLAGS="$CFLAGS -std=c99 -D_POSIX_C_SOURCE=200112L -D_BSD_SOURCE"
416 fi
417
418 if [ $shared = yes -a \( $ARCH = "X86_64" -o $ARCH = "PPC" -o $ARCH = "ALPHA" -o $ARCH = "ARM" \) ] ; then
419     pic="yes"
420 fi
421
422 if [ $asm = yes -a \( $ARCH = X86 -o $ARCH = X86_64 \) ] ; then
423     if ! as_check "lzcnt eax, eax" ; then
424         VER=`($AS --version || echo no assembler) 2>$DEVNULL | head -n 1`
425         echo "Found $VER"
426         echo "Minimum version is yasm-0.6.2"
427         echo "If you really want to compile without asm, configure with --disable-asm."
428         exit 1
429     fi
430     if ! cc_check '' '' '__asm__("pabsw %xmm0, %xmm0");' ; then
431         VER=`(as --version || echo no gnu as) 2>$DEVNULL | head -n 1`
432         echo "Found $VER"
433         echo "Minimum version is binutils-2.17"
434         echo "Your compiler can't handle inline SSSE3 asm."
435         echo "If you really want to compile without asm, configure with --disable-asm."
436         exit 1
437     fi
438     define HAVE_MMX
439 fi
440
441 if [ $asm = yes -a $ARCH = ARM ] ; then
442     # set flags so neon is built by default
443     echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu|-mfloat-abi)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
444
445     if  cc_check '' '' '__asm__("rev ip, ip");' ; then      define HAVE_ARMV6   && ASFLAGS="$ASFLAGS -DHAVE_ARMV6"
446         cc_check '' '' '__asm__("movt r0, #0");'         && define HAVE_ARMV6T2 && ASFLAGS="$ASFLAGS -DHAVE_ARMV6T2"
447         cc_check '' '' '__asm__("vadd.i16 q0, q0, q0");' && define HAVE_NEON    && ASFLAGS="$ASFLAGS -DHAVE_NEON"
448         ASFLAGS="$ASFLAGS -c"
449     else
450         echo "You specified a pre-ARMv6 or Thumb-1 CPU in your CFLAGS."
451         echo "If you really want to run on such a CPU, configure with --disable-asm."
452         exit 1
453     fi
454 fi
455
456 [ $asm = no ] && AS=""
457 [ "x$AS" = x ] && asm="no"
458
459 define ARCH_$ARCH
460 define SYS_$SYS
461
462 echo "int i = 0x42494745; double f = 0x1.0656e6469616ep+102;" > conftest.c
463 $CC $CFLAGS conftest.c -c -o conftest.o 2>$DEVNULL || die "endian test failed"
464 if grep -q BIGE conftest.o && grep -q FPendian conftest.o ; then
465     define WORDS_BIGENDIAN
466 elif !(grep -q EGIB conftest.o && grep -q naidnePF conftest.o) ; then
467     die "endian test failed"
468 fi
469
470 # autodetect options that weren't forced nor disabled
471
472 libpthread=""
473 if test "$pthread" = "auto" ; then
474     pthread="no"
475     case $SYS in
476         BEOS)
477             pthread="yes"
478             ;;
479         MINGW)
480             if cc_check pthread.h -lpthread "pthread_create(0,0,0,0);" ; then
481                 pthread="yes"
482                 libpthread="-lpthread"
483             elif cc_check pthread.h -lpthreadGC2 "pthread_create(0,0,0,0);" ; then
484                 pthread="yes"
485                 libpthread="-lpthreadGC2"
486             elif cc_check pthread.h "-lpthreadGC2 -lwsock32 -DPTW32_STATIC_LIB" "pthread_create(0,0,0,0);" ; then
487                 pthread="yes"
488                 libpthread="-lpthreadGC2 -lwsock32"
489                 define PTW32_STATIC_LIB
490             elif cc_check pthread.h "-lpthreadGC2 -lws2_32 -DPTW32_STATIC_LIB" "pthread_create(0,0,0,0);" ; then
491                 pthread="yes"
492                 libpthread="-lpthreadGC2 -lws2_32"
493                 define PTW32_STATIC_LIB
494             fi
495             ;;
496         OPENBSD)
497             cc_check pthread.h -pthread && pthread="yes" && libpthread="-pthread"
498             ;;
499         *)
500             cc_check pthread.h -lpthread && pthread="yes" && libpthread="-lpthread"
501             ;;
502     esac
503 fi
504 if test "$pthread" = "yes" ; then
505     define HAVE_PTHREAD
506     LDFLAGS="$LDFLAGS $libpthread"
507 fi
508
509 if cc_check "math.h" "-Werror" "return log2f(2);" ; then
510     define HAVE_LOG2F
511 fi
512
513 if [ "$lavf_input" = "auto" ] ; then
514     lavf_input="no"
515     if ${cross_prefix}pkg-config --exists libavformat libavcodec libswscale 2>$DEVNULL; then
516         LAVF_LIBS="$LAVF_LIBS $(${cross_prefix}pkg-config --libs libavformat libavcodec libswscale)"
517         LAVF_CFLAGS="$LAVF_CFLAGS $(${cross_prefix}pkg-config --cflags libavformat libavcodec libswscale)"
518     fi
519     if [ -z "$LAVF_LIBS" -a -z "$LAVF_CFLAGS" ]; then
520         LAVF_LIBS="-lavformat -lswscale"
521         for lib in -lpostproc -lavcodec -lavutil -lm -lz -lbz2 $libpthread -lavifil32; do
522             cc_check "" $lib && LAVF_LIBS="$LAVF_LIBS $lib"
523         done
524     fi
525     LAVF_LIBS="-L. $LAVF_LIBS"
526     if cc_check libavformat/avformat.h "$LAVF_CFLAGS $LAVF_LIBS" && \
527        cc_check libswscale/swscale.h "$LAVF_CFLAGS $LAVF_LIBS" ; then
528         # avcodec_decode_video2 is currently the most recently added function that we use; it was added in r18351
529         if cc_check libavformat/avformat.h "$LAVF_CFLAGS $LAVF_LIBS" "avcodec_decode_video2( NULL, NULL, NULL, NULL );" ; then
530             lavf_input="yes"
531             define LAVF_INPUT
532         else
533             echo "Warning: libavformat is too old, update to ffmpeg r18351+"
534         fi
535     fi
536 fi
537
538 if [ "$ffms_input" = "auto" ] ; then
539     ffms_major="2"; ffms_minor="13"; ffms_micro="1"; ffms_bump="0"
540
541     ffms_input="no"
542     [ $ffms_micro -gt 0 -o $ffms_bump -gt 0 ] && vmicro=".$ffms_micro"
543     [ $ffms_bump -gt 0 ] && vbump=".$ffms_bump"
544     if ${cross_prefix}pkg-config --atleast-version="$ffms_major.$ffms_minor$vmicro$vbump" ffms2 2>$DEVNULL; then
545         FFMS2_LIBS="$FFMS2_LIBS $(${cross_prefix}pkg-config --libs ffms2)"
546         FFMS2_CFLAGS="$FFMS2_LIBS $(${cross_prefix}pkg-config --cflags ffms2)"
547         api_check="no"
548     else
549         api_check="yes"
550     fi
551     [ -z "$FFMS2_LIBS" ] && FFMS2_LIBS="-lffms2"
552
553     if cc_check ffms.h "$FFMS2_CFLAGS $FFMS2_LIBS" "FFMS_DestroyVideoSource(0);" ; then
554         ffms_input="yes"
555     elif cc_check ffms.h "$FFMS2_CFLAGS $FFMS2_LIBS -lstdc++ $LAVF_LIBS" "FFMS_DestroyVideoSource(0);" ; then
556         ffms_input="yes"
557         FFMS2_LIBS="$FFMS2_LIBS -lstdc++ $LAVF_LIBS"
558     fi
559
560     if [ $api_check = "yes" -a $ffms_input = "yes" ]; then
561         log_check "whether ffms2 version is at least $ffms_major.$ffms_minor$vmicro$vbump"
562         $CC $CFLAGS $FFMS2_CFLAGS -c -o conftest -x c - >$DEVNULL 2>&1 <<EOF
563 #include <ffms.h>
564 #if FFMS_VERSION < (($ffms_major << 24) | ($ffms_minor << 16) | ($ffms_micro << 8) | $ffms_bump)
565 #error Requires ffms2 version 2.13.1
566 #endif
567 EOF
568         [ $? = 0 ] && log_ok || { ffms_input="no"; log_fail; }
569     fi
570 fi
571
572 if [ "$ffms_input" = "yes" ]; then
573     LDFLAGSCLI="$FFMS2_LIBS $LDFLAGSCLI"
574     [ -n "$FFMS2_CFLAGS" ] && CFLAGS="$CFLAGS $FFMS2_CFLAGS"
575     define FFMS_INPUT
576 elif [ "$lavf_input" = "yes" ]; then
577     LDFLAGSCLI="$LAVF_LIBS $LDFLAGSCLI"
578     [ -n "$LAVF_CFLAGS" ] && CFLAGS="$CFLAGS $LAVF_CFLAGS"
579 fi
580
581 MP4_LDFLAGS="-lgpac_static"
582 if [ $SYS = MINGW ]; then
583     MP4_LDFLAGS="$MP4_LDFLAGS -lwinmm"
584 fi
585 if [ "$mp4_output" = "auto" ] ; then
586     mp4_output="no"
587     cc_check gpac/isomedia.h "$MP4_LDFLAGS" && mp4_output="yes"
588 fi
589 if [ "$mp4_output" = "yes" ] ; then
590     define MP4_OUTPUT
591     LDFLAGSCLI="$LDFLAGSCLI $MP4_LDFLAGS"
592 fi
593
594 if [ "$avs_input" = "auto" ] ; then
595     avs_input=no
596     if [ $SYS = MINGW ] && cc_check avisynth_c.h ; then
597         avs_input="yes"
598         define AVS_INPUT
599         define HAVE_AVISYNTH_C_H
600     elif [ $SYS = MINGW ] && cc_check extras/avisynth_c.h ; then
601         avs_input="yes"
602         define AVS_INPUT
603     fi
604 fi
605
606 if [ "$pic" = "yes" ] ; then
607     CFLAGS="$CFLAGS -fPIC"
608     ASFLAGS="$ASFLAGS -DPIC"
609     # resolve textrels in the x86 asm
610     cc_check stdio.h -Wl,-Bsymbolic && LDFLAGS="$LDFLAGS -Wl,-Bsymbolic"
611 fi
612
613 if [ "$debug" != "yes" -a "$gprof" != "yes" ]; then
614     CFLAGS="$CFLAGS -s -fomit-frame-pointer"
615     LDFLAGS="$LDFLAGS -s"
616 fi
617
618 if [ "$debug" = "yes" ]; then
619     CFLAGS="-O1 -g $CFLAGS"
620 elif [ $ARCH = ARM ]; then
621     # arm-gcc-4.2 produces incorrect output with -ffast-math
622     # and it doesn't save any speed anyway on 4.4, so disable it
623     CFLAGS="-O3 -fno-fast-math $CFLAGS"
624 else
625     CFLAGS="-O3 -ffast-math $CFLAGS"
626 fi
627
628 if cc_check "stdio.h" "" "fseeko(stdin,0,0);" ; then
629     define fseek fseeko
630     define ftell ftello
631 elif cc_check "stdio.h" "" "fseeko64(stdin,0,0);" ; then
632     define fseek fseeko64
633     define ftell ftello64
634 fi
635
636 rm -f conftest*
637
638 # generate config files
639
640 cat > config.mak << EOF
641 prefix=$prefix
642 exec_prefix=$exec_prefix
643 bindir=$bindir
644 libdir=$libdir
645 includedir=$includedir
646 ARCH=$ARCH
647 SYS=$SYS
648 CC=$CC
649 CFLAGS=$CFLAGS
650 LDFLAGS=$LDFLAGS
651 LDFLAGSCLI=$LDFLAGSCLI
652 AR=$AR
653 RANLIB=$RANLIB
654 STRIP=$STRIP
655 AS=$AS
656 ASFLAGS=$ASFLAGS
657 EXE=$EXE
658 VIS=$vis
659 HAVE_GETOPT_LONG=$HAVE_GETOPT_LONG
660 DEVNULL=$DEVNULL
661 EOF
662
663 if [ "$shared" = "yes" ]; then
664     API=$(grep '#define X264_BUILD' < x264.h | cut -f 3 -d ' ')
665     if [ "$SYS" = "MINGW" ]; then
666         echo "SONAME=libx264-$API.dll" >> config.mak
667         echo 'IMPLIBNAME=libx264.dll.a' >> config.mak
668         echo 'SOFLAGS=-Wl,--out-implib,$(IMPLIBNAME) -Wl,--enable-auto-image-base' >> config.mak
669     elif [ "$SYS" = "MACOSX" ]; then
670         echo "SOSUFFIX=dylib" >> config.mak
671         echo "SONAME=libx264.$API.dylib" >> config.mak
672         echo 'SOFLAGS=-dynamiclib -Wl,-single_module -Wl,-read_only_relocs,suppress -install_name $(DESTDIR)$(libdir)/$(SONAME)' >> config.mak
673     elif [ "$SYS" = "SunOS" ]; then
674         echo "SOSUFFIX=so" >> config.mak
675         echo "SONAME=libx264.so.$API" >> config.mak
676         echo 'SOFLAGS=-Wl,-h,$(SONAME)' >> config.mak
677     else
678         echo "SOSUFFIX=so" >> config.mak
679         echo "SONAME=libx264.so.$API" >> config.mak
680         echo 'SOFLAGS=-Wl,-soname,$(SONAME)' >> config.mak
681     fi
682     echo 'default: $(SONAME)' >> config.mak
683 fi
684
685 ./version.sh
686
687 pclibs="-L$libdir -lx264 $libpthread"
688
689 cat > x264.pc << EOF
690 prefix=$prefix
691 exec_prefix=$exec_prefix
692 libdir=$libdir
693 includedir=$includedir
694
695 Name: x264
696 Description: H.264 (MPEG4 AVC) encoder library
697 Version: $(grep POINTVER < config.h | sed -e 's/.* "//; s/".*//')
698 Libs: $pclibs
699 Cflags: -I$includedir
700 EOF
701
702 cat > conftest.log <<EOF
703 Platform:   $ARCH
704 System:     $SYS
705 asm:        $asm
706 avs input:  $avs_input
707 lavf input: $lavf_input
708 ffms input: $ffms_input
709 mp4 output: $mp4_output
710 pthread:    $pthread
711 debug:      $debug
712 gprof:      $gprof
713 PIC:        $pic
714 shared:     $shared
715 visualize:  $vis
716 EOF
717
718 echo >> config.log
719 cat conftest.log >> config.log
720 cat conftest.log
721 rm conftest.log
722
723 echo
724 echo "You can run 'make' or 'make fprofiled' now."
725