-#! /bin/sh
+#!/bin/bash
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
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
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
--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
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
;;
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)
then
ALTIVECFLAGS="$ALTIVECFLAGS -faltivec -fastf -mcpu=G4"
else
- ALTIVECFLAGS="$ALTIVECFLAGS -maltivec -mabi=altivec"
+ ALTIVECFLAGS="$ALTIVECFLAGS -maltivec -mabi=altivec -DHAVE_ALTIVEC_H"
fi
;;
sparc)
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
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"
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"
;;
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
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
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