]> git.sesse.net Git - x264/blobdiff - configure
Slightly faster 8x16 SAD on Penryn Core 2
[x264] / configure
index eb5109192366d005d10114eec588b220695c8aa6..f4b53446fc07766cc0ed288ce4e82022709adfa3 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/bash
 
 if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
 
@@ -20,6 +20,7 @@ echo "  --extra-asflags=EASFLAGS add EASFLAGS to ASFLAGS"
 echo "  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS"
 echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS"
 echo "  --host=HOST              build programs to run on HOST"
+echo "  --cross-prefix=PREFIX    use PREFIX for compilation tools"
 echo ""
 exit 1
 fi
@@ -60,28 +61,14 @@ pic="no"
 vis="no"
 shared="no"
 
-CC="${CC-gcc}"
 CFLAGS="$CFLAGS -Wall -I."
 LDFLAGS="$LDFLAGS"
+ASFLAGS="$ASFLAGS"
 HAVE_GETOPT_LONG=1
-
-AS="yasm"
-ASFLAGS=""
+cross_prefix=""
 
 EXE=""
 
-# check whether 'echo -n' works as expected, otherwise try printf
-if [ "x`echo -n houba`" = xhouba ]
-then
-  ECHON="echo -n"
-elif [ "x`printf houba`" = xhouba ]
-then
-  ECHON="printf"
-else
-  echo "Neither 'echo -n' nor 'printf' are working with your shell!"
-  exit 1
-fi
-
 # parse options
 
 for opt do
@@ -157,12 +144,21 @@ for opt do
         --host=*)
             host="${opt#--host=}"
             ;;
+        --cross-prefix=*)
+            cross_prefix="${opt#--cross-prefix=}"
+            ;;
         *)
             echo "Unknown option $opt, ignored"
             ;;
     esac
 done
 
+CC="${CC-${cross_prefix}gcc}"
+AR="${AR-${cross_prefix}ar}"
+RANLIB="${RANLIB-${cross_prefix}ranlib}"
+STRIP="${STRIP-${cross_prefix}strip}"
+AS=""
+
 if [ "x$host" = x ]; then
     host=`./config.guess`
 fi
@@ -238,7 +234,8 @@ esac
 case $host_cpu in
   i*86)
     ARCH="X86"
-    ASFLAGS="-O2"
+    AS="yasm"
+    ASFLAGS="$ASFLAGS -O2"
     if [ "$SYS" = MACOSX ]; then
       ASFLAGS="$ASFLAGS -f macho -DPREFIX"
     elif [ "$SYS" = MINGW ]; then
@@ -249,12 +246,15 @@ case $host_cpu in
     ;;
   x86_64)
     ARCH="X86_64"
+    AS="yasm"
     if [ "$SYS" = MACOSX ];then
-      ASFLAGS="-f macho64 -m amd64 -DPIC -DPREFIX"
+      ASFLAGS="$ASFLAGS -f macho64 -m amd64 -DPIC -DPREFIX"
       CFLAGS="$CFLAGS -arch x86_64"
       LDFLAGS="$LDFLAGS -arch x86_64"
+    elif [ "$SYS" = MINGW ]; then
+      ASFLAGS="$ASFLAGS -f win32 -m amd64 -DPREFIX"
     else
-      ASFLAGS="-f elf -m amd64"
+      ASFLAGS="$ASFLAGS -f elf -m amd64"
     fi
     ;;
   powerpc|powerpc64)
@@ -263,7 +263,7 @@ case $host_cpu in
     then
       ALTIVECFLAGS="$ALTIVECFLAGS -faltivec -fastf -mcpu=G4"
     else
-      ALTIVECFLAGS="$ALTIVECFLAGS -maltivec -mabi=altivec"
+      ALTIVECFLAGS="$ALTIVECFLAGS -maltivec -mabi=altivec -DHAVE_ALTIVEC_H"
     fi
     ;;
   sparc)
@@ -271,8 +271,8 @@ case $host_cpu in
       ARCH="UltraSparc"
       CFLAGS="$CFLAGS -mcpu=ultrasparc"
       LDFLAGS="$LDFLAGS -mcpu=ultrasparc"
-      AS="as"
-      ASFLAGS="-xarch=v8plusa"
+      AS="${cross_prefix}as"
+      ASFLAGS="$ASFLAGS -xarch=v8plusa"
     else
       ARCH="Sparc"
     fi
@@ -310,9 +310,9 @@ if [ $asm = yes -a \( $ARCH = X86 -o $ARCH = X86_64 \) ] ; then
         echo "If you really want to compile without asm, configure with --disable-asm."
         exit 1
     fi
-else
-    AS=""
 fi
+[ $asm = no ] && AS=""
+[ "x$AS" = x ] && asm="no"
 
 CFLAGS="$CFLAGS -DARCH_$ARCH -DSYS_$SYS"
 
@@ -340,8 +340,15 @@ if test "$pthread" = "auto" ; then
                 pthread="yes"
                 libpthread="-lpthreadGC2 -lwsock32"
                 CFLAGS="$CFLAGS -DPTW32_STATIC_LIB"
+            elif cc_check pthread.h "-lpthreadGC2 -lws2_32 -DPTW32_STATIC_LIB" "pthread_create(0,0,0,0);" ; then
+                pthread="yes"
+                libpthread="-lpthreadGC2 -lws2_32"
+                CFLAGS="$CFLAGS -DPTW32_STATIC_LIB"
             fi
             ;;
+        OPENBSD)
+            cc_check pthread.h -pthread && pthread="yes" && libpthread="-pthread"
+            ;;
         *)
             cc_check pthread.h -lpthread && pthread="yes" && libpthread="-lpthread"
             ;;
@@ -373,8 +380,15 @@ if [ "$avis_input" = "auto" ] ; then
     fi
 fi
 if [ "$avis_input" = "yes" ] ; then
-    echo "#define AVIS_INPUT" >> config.h
-    LDFLAGS="$LDFLAGS -lvfw32"
+    if cc_check "stdlib.h" -lvfw32 ; then
+        echo "#define AVIS_INPUT" >> config.h
+        LDFLAGS="$LDFLAGS -lvfw32"
+    elif cc_check "stdlib.h" -lavifil32 ; then
+        echo "#define AVIS_INPUT" >> config.h
+        LDFLAGS="$LDFLAGS -lavifil32"
+    else
+        avis_input="no";
+    fi
 fi
 
 if [ "$pic" = "yes" ] ; then
@@ -419,21 +433,17 @@ CC=$CC
 CFLAGS=$CFLAGS
 ALTIVECFLAGS=$ALTIVECFLAGS
 LDFLAGS=$LDFLAGS
+AR=$AR
+RANLIB=$RANLIB
+STRIP=$STRIP
 AS=$AS
 ASFLAGS=$ASFLAGS
 EXE=$EXE
 VIS=$vis
 HAVE_GETOPT_LONG=$HAVE_GETOPT_LONG
 DEVNULL=$DEVNULL
-ECHON=$ECHON
 EOF
 
-$ECHON 'CONFIGURE_ARGS=' >> config.mak
-for A in "$@" ; do
-    $ECHON " '$A'" >> config.mak
-done
-echo '' >> config.mak
-
 if [ "$shared" = "yes" ]; then
     API=$(grep '#define X264_BUILD' < x264.h | cut -f 3 -d ' ')
     if [ "$SYS" = "MINGW" ]; then
@@ -444,6 +454,10 @@ if [ "$shared" = "yes" ]; then
         echo "SOSUFFIX=dylib" >> config.mak
         echo "SONAME=libx264.$API.dylib" >> config.mak
         echo 'SOFLAGS=-dynamiclib -Wl,-single_module -Wl,-read_only_relocs,suppress -install_name $(DESTDIR)$(libdir)/$(SONAME)' >> config.mak
+    elif [ "$SYS" = "SunOS" ]; then
+        echo "SOSUFFIX=so" >> config.mak
+        echo "SONAME=libx264.so.$API" >> config.mak
+        echo 'SOFLAGS=-Wl,-h,$(SONAME)' >> config.mak
     else
         echo "SOSUFFIX=so" >> config.mak
         echo "SONAME=libx264.so.$API" >> config.mak