X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=configure;h=c16a3293e752cc76d7535a5c00bfe73112aa3ff1;hb=62fc8a9c507166baaf104e69fd4c055d41fb0dce;hp=8530c48b0965a7e4a98192e67506e31950110830;hpb=c20906a56b2f17a89b7ba4afc87e78202447e7fb;p=x264 diff --git a/configure b/configure index 8530c48b..c16a3293 100755 --- a/configure +++ b/configure @@ -9,7 +9,7 @@ echo "" echo " --help print this message" echo " --enable-avis-input enables avisynth input (win32 only)" echo " --enable-mp4-output enables mp4 output (using gpac)" -echo " --enable-vfw compiles the VfW frontend" +echo " --enable-gtk build GTK+ interface" echo " --enable-pthread enables multithreaded encoding" echo " --enable-debug adds -g, doesn't strip" echo " --enable-gprof adds -pg, doesn't strip" @@ -29,9 +29,9 @@ cc_check() { #include <$1> int main () { $3 return 0; } EOF - $CC $CFLAGS $LDFLAGS $2 conftest.c -o conftest 2>$DEVNULL + $CC conftest.c $CFLAGS $LDFLAGS $2 -o conftest 2>$DEVNULL TMP="$?" - rm -f conftest.c conftest* + rm -f conftest* return $TMP } @@ -50,13 +50,13 @@ pthread="auto" debug="no" gprof="no" pic="no" -vfw="no" +gtk="no" vis="no" shared="no" -CC="gcc" -CFLAGS="-Wall -I. -O4 -ffast-math -D__X264__" -LDFLAGS="" +CC="${CC-gcc}" +CFLAGS="$CFLAGS -Wall -I. -D__X264__" +LDFLAGS="$LDFLAGS" HAVE_GETOPT_LONG=1 AS="nasm" @@ -64,57 +64,79 @@ ASFLAGS="" EXE="" -UNAMES="`uname -s`" -case "$UNAMES" in - BeOS) +# 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 + +MACHINE="$(./config.guess)" + +case "${MACHINE#*-*-}" in + beos*) SYS="BEOS" CFLAGS="$CFLAGS -DHAVE_MALLOC_H" ;; - Darwin) + darwin*) SYS="MACOSX" CFLAGS="$CFLAGS -falign-loops=16" LDFLAGS="$LDFLAGS -lm -lmx" ;; - FreeBSD) + freebsd*) + SYS="FREEBSD" + LDFLAGS="$LDFLAGS -lm" + ;; + kfreebsd*-gnu) SYS="FREEBSD" + CFLAGS="$CFLAGS -DHAVE_MALLOC_H" LDFLAGS="$LDFLAGS -lm" ;; - NetBSD) + netbsd*) SYS="NETBSD" LDFLAGS="$LDFLAGS -lm" ;; - Linux) + openbsd*) + SYS="OPENBSD" + CFLAGS="$CFLAGS -I/usr/X11R6/include" + LDFLAGS="$LDFLAGS -lm" + ;; + linux*) SYS="LINUX" CFLAGS="$CFLAGS -DHAVE_MALLOC_H" LDFLAGS="$LDFLAGS -lm" ;; - CYGWIN*) + cygwin*) SYS="CYGWIN" CFLAGS="$CFLAGS -mno-cygwin" LDFLAGS="$LDFLAGS -mno-cygwin" EXE=".exe" DEVNULL="NUL" ;; - MINGW*) + mingw*) SYS="MINGW" EXE=".exe" DEVNULL="NUL" ;; - SunOS) + sunos*|solaris*) SYS="SunOS" CFLAGS="$CFLAGS -DHAVE_MALLOC_H" LDFLAGS="$LDFLAGS -lm" HAVE_GETOPT_LONG=0 ;; *) - echo "Unknown system $UNAMES, edit the configure" + echo "Unknown system $MACHINE, edit the configure" exit 1 ;; esac -UNAMEM="`uname -m`" -case "$UNAMEM" in - i386|i486|i586|i686|BePC) +case "${MACHINE%%-*}" in + i*86) ARCH="X86" CFLAGS="$CFLAGS -DHAVE_MMXEXT -DHAVE_SSE2" AS="nasm" @@ -135,38 +157,30 @@ case "$UNAMEM" in AS="yasm" ASFLAGS="-f elf -m amd64" ;; - "Power Macintosh"|ppc) + powerpc|powerpc64) ARCH="PPC" if [ $SYS = MACOSX ] then - CFLAGS="$CFLAGS -faltivec" + CFLAGS="$CFLAGS -faltivec -fastf -mcpu=G4" else CFLAGS="$CFLAGS -maltivec -mabi=altivec" fi ;; - sun4m|sun4d|sparc|sparc64) - ARCH="Sparc" - ;; - sun4u) - ARCH="UltraSparc" - CFLAGS="$CFLAGS -mcpu=ultrasparc" - LDFLAGS="$LDFLAGS -mcpu=ultrasparc" - AS="as" - ASFLAGS="-xarch=v8plusa" - ;; - ia64) - ARCH="IA64" - ;; - alpha) - ARCH="ALPHA" + sparc) + if test "$(uname -m)" = "sun4u"; then + ARCH="UltraSparc" + CFLAGS="$CFLAGS -mcpu=ultrasparc" + LDFLAGS="$LDFLAGS -mcpu=ultrasparc" + AS="as" + ASFLAGS="-xarch=v8plusa" + else + ARCH="Sparc" + fi ;; - mips|mipsel) + mips|mipsel|mips64|mips64el) ARCH="MIPS" ;; - m68k) - ARCH="M68K" - ;; - arm|armv5tel) + arm*) ARCH="ARM" ;; s390|s390x) @@ -176,11 +190,25 @@ case "$UNAMEM" in ARCH="PARISC" ;; *) - echo "Unknown platform $UNAMEM, edit the configure" - exit 1 + ARCH="$(echo ${MACHINE%%-*} | tr a-z A-Z)" ;; esac +# check requirements + +if [ $SYS = MACOSX -a $ARCH = X86 ] +then + # we want Apple's nasm from Xcode 2.4.1 or later + NASM_BUILD_REQUIRED=11 + NASM_BUILD=`nasm -v|grep "Apple Computer"|sed 's/.*build \([0-9]*\).*/\1/'` + if [ $NASM_BUILD -lt $NASM_BUILD_REQUIRED ] + then + echo "Your version of 'nasm' is too old." + echo "Please install Xcode 2.4.1 or later." + exit 1 + fi +fi + CFLAGS="$CFLAGS -DARCH_$ARCH -DSYS_$SYS" # parse options @@ -220,20 +248,17 @@ for opt do ;; --extra-cflags=*) CFLAGS="$CFLAGS ${opt#--extra-cflags=}" - VFW_CFLAGS="${opt#--extra-cflags=}" ;; --extra-ldflags=*) LDFLAGS="$LDFLAGS ${opt#--extra-ldflags=}" - VFW_LDFLAGS="${opt#--extra-ldflags=}" ;; --enable-pthread) - pthread="yes" + pthread="auto" # can't skip detection, since it differs by OS ;; --disable-pthread) pthread="no" ;; --enable-debug) - CFLAGS="$CFLAGS -g" debug="yes" ;; --enable-gprof) @@ -244,11 +269,11 @@ for opt do --enable-pic) pic="yes" ;; - --enable-vfw) - vfw="yes" + --enable-gtk) + gtk="yes" ;; - --disable-vfw) - vfw="no" + --disable-gtk) + gtk="no" ;; --enable-shared) shared="yes" @@ -269,25 +294,34 @@ done # autodetect options that weren't forced nor disabled +libpthread="" if test "$pthread" = "auto" ; then + pthread="no" case $SYS in - MINGW|CYGWIN|BEOS) + BEOS) pthread="yes" ;; + MINGW|CYGWIN) + if cc_check pthread.h -lpthread "pthread_create(0,0,0,0);" ; then + pthread="yes" + libpthread="-lpthread" + elif cc_check pthread.h -lpthreadGC2 "pthread_create(0,0,0,0);" ; then + pthread="yes" + libpthread="-lpthreadGC2" + elif cc_check pthread.h "-lpthreadGC2 -lwsock32 -DPTW32_STATIC_LIB" "pthread_create(0,0,0,0);" ; then + pthread="yes" + libpthread="-lpthreadGC2 -lwsock32"\ + CFLAGS="$CFLAGS -DPTW32_STATIC_LIB" + fi + ;; *) - pthread="no" - cc_check pthread.h -lpthread && pthread="yes" + cc_check pthread.h -lpthread && pthread="yes" && libpthread="-lpthread" ;; esac fi if test "$pthread" = "yes" ; then - CFLAGS="$CFLAGS -DHAVE_PTHREAD=1" - case $SYS in - MINGW|CYGWIN|BEOS) - ;; - *) LDFLAGS="$LDFLAGS -lpthread" - ;; - esac + CFLAGS="$CFLAGS -DHAVE_PTHREAD" + LDFLAGS="$LDFLAGS $libpthread" fi MP4_LDFLAGS="-lgpac_static" @@ -323,7 +357,12 @@ fi if [ "$debug" != "yes" -a "$gprof" != "yes" ]; then CFLAGS="$CFLAGS -s -fomit-frame-pointer" LDFLAGS="$LDFLAGS -s" - VFW_LDFLAGS="$VFW_LDFLAGS -s" +fi + +if [ "$debug" = "yes" ]; then + CFLAGS="-O1 -g $CFLAGS" +else + CFLAGS="-O4 -ffast-math $CFLAGS" fi if cc_check "stdio.h" "" "fseeko(stdin,0,0);" ; then @@ -349,31 +388,40 @@ CFLAGS=$CFLAGS LDFLAGS=$LDFLAGS AS=$AS ASFLAGS=$ASFLAGS -VFW=$vfw +GTK=$gtk EXE=$EXE VIS=$vis HAVE_GETOPT_LONG=$HAVE_GETOPT_LONG DEVNULL=$DEVNULL -CONFIGURE_ARGS=$@ +ECHON=$ECHON EOF -if [ "$vfw" = "yes" ]; then - rm -f vfw/build/cygwin/config.mak - cat > vfw/build/cygwin/config.mak << EOF -CFLAGS=$VFW_CFLAGS -LDFLAGS=$VFW_LDFLAGS -EOF - echo "default: x264vfw.dll" >> config.mak -fi +$ECHON 'CONFIGURE_ARGS=' >> config.mak +for A in "$@" ; do + $ECHON " '$A'" >> config.mak +done +echo '' >> config.mak + +cp config.mak gtk/config.mak if [ "$shared" = "yes" ]; then - API=`grep '#define X264_BUILD' < x264.h | cut -f 3 -d ' '` + API=$(grep '#define X264_BUILD' < x264.h | cut -f 3 -d ' ') echo "SONAME=libx264.so.$API" >> config.mak echo 'default: $(SONAME)' >> config.mak + if [ "$gtk" = "yes" ]; then + echo "SONAMEGTK=libx264gtk.so.$API" >> gtk/config.mak + fi +fi + +if [ "$gtk" = "yes" ]; then + echo 'default: libx264gtk.a' >> config.mak + echo 'install: install-gtk' >> config.mak fi ./version.sh +pclibs="-L$libdir -lx264 $libpthread" + cat > x264.pc << EOF prefix=$prefix exec_prefix=$exec_prefix @@ -383,7 +431,7 @@ includedir=$includedir Name: x264 Description: H.264 (MPEG4 AVC) encoder library Version: $(grep POINTVER < config.h | sed -e 's/.* "//; s/".*//') -Libs: -L$libdir -lx264 +Libs: $pclibs Cflags: -I$includedir EOF @@ -393,7 +441,7 @@ echo "System: $SYS" echo "avis input: $avis_input" echo "mp4 output: $mp4_output" echo "pthread: $pthread" -echo "vfw: $vfw" +echo "gtk: $gtk" echo "debug: $debug" echo "gprof: $gprof" echo "PIC: $pic"