[x264-devel] [Patch] Cross-compile configure
Christophe Mutricy
xtophe at nxtelevision.com
Sat Mar 18 18:43:53 CET 2006
Hello,
Find attached a patch against current svn which allow you to
crosscompile.
The main modifications are in configure.
There is a few mods in Makefile to use the good binutils and make the
install rule works with win32.
This was already discussed at the end of October but nothing was
commited.
--
Xtophe
-------------- next part --------------
Index: configure
===================================================================
--- configure (revision 473)
+++ configure (working copy)
@@ -7,6 +7,7 @@
echo "available options:"
echo ""
echo " --help print this message"
+echo " --crosscompile=ARCH crosscompile for ARCH"
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"
@@ -64,43 +65,143 @@
EXE=""
-UNAMES="`uname -s`"
+AR="ar"
+AROPTS="rc"
+RANLIB="ranlib"
+
+UNAMES="`uname -s |tr A-Z a-z`"
+UNAMEM="`uname -m |tr A-Z a-z`"
+
+# parse options
+
+for opt do
+ optarg="${opt#*=}"
+ case "$opt" in
+ --crosscompile=*)
+ CROSS="$optarg"
+ CC="$CROSS-gcc"
+ AR="$CROSS-ar"
+ RANLIB="$CROSS-ranlib"
+ UNAMES="`echo $CROSS | cut -d- -f2`"
+ UNAMEM="`echo $CROSS | cut -d- -f1`"
+ ;;
+ --prefix=*)
+ prefix="$optarg"
+ ;;
+ --exec-prefix=*)
+ eprefix="$optarg"
+ ;;
+ --bindir=*)
+ bindir="$optarg"
+ ;;
+ --libdir=*)
+ libdir="$optarg"
+ ;;
+ --includedir=*)
+ includedir="$optarg"
+ ;;
+ --enable-avis-input)
+ if [ $SYS = CYGWIN -o $SYS = MINGW ]; then
+ CFLAGS="$CFLAGS -DAVIS_INPUT"
+ LDFLAGS="$LDFLAGS -lvfw32"
+ avis_input="yes"
+ fi
+ ;;
+ --enable-mp4-output)
+ CFLAGS="$CFLAGS -DMP4_OUTPUT"
+ LDFLAGS="$LDFLAGS -lgpac_static"
+ if [ $SYS = CYGWIN -o $SYS = MINGW ]; then
+ LDFLAGS="$LDFLAGS -lwinmm"
+ fi
+ mp4_output="yes"
+ ;;
+ --extra-asflags=*)
+ ASFLAGS="$ASFLAGS ${opt#--extra-asflags=}"
+ ;;
+ --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)
+ CFLAGS="$CFLAGS -DHAVE_PTHREAD=1"
+ pthread="yes"
+ case $SYS in
+ MINGW|CYGWIN|BEOS)
+ ;;
+ *)
+ LDFLAGS="$LDFLAGS -lpthread"
+ ;;
+ esac
+ ;;
+ --enable-debug)
+ CFLAGS="$CFLAGS -g"
+ debug="yes"
+ ;;
+ --enable-gprof)
+ CFLAGS="$CFLAGS -pg"
+ LDFLAGS="$LDFLAGS -pg"
+ gprof="yes"
+ ;;
+ --enable-pic)
+ CFLAGS="$CFLAGS -fPIC"
+ ASFLAGS="$ASFLAGS -D__PIC__"
+ pic="yes"
+ ;;
+ --enable-vfw)
+ vfw="yes"
+ ;;
+ --enable-visualize)
+ LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11"
+ CFLAGS="$CFLAGS -DVISUALIZE=1"
+ vis="yes"
+ ;;
+ *)
+ echo "Unknown option $opt, ignored"
+ ;;
+ esac
+done
+
+
case "$UNAMES" in
- BeOS)
+ 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"
;;
- NetBSD)
+ netbsd)
SYS="NETBSD"
LDFLAGS="$LDFLAGS -lm"
;;
- Linux)
+ 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)
SYS="SunOS"
CFLAGS="$CFLAGS -DHAVE_MALLOC_H"
LDFLAGS="$LDFLAGS -lm"
@@ -112,9 +213,8 @@
;;
esac
-UNAMEM="`uname -m`"
case "$UNAMEM" in
- i386|i486|i586|i686|BePC)
+ i386|i486|i586|i686|bepc)
ARCH="X86"
CFLAGS="$CFLAGS -DHAVE_MMXEXT -DHAVE_SSE2"
AS="nasm"
@@ -135,7 +235,7 @@
AS="yasm"
ASFLAGS="-f elf -m amd64"
;;
- "Power Macintosh"|ppc)
+ "power macintosh"|ppc)
ARCH="PPC"
if [ $SYS = MACOSX ]
then
@@ -183,90 +283,7 @@
CFLAGS="$CFLAGS -DARCH_$ARCH -DSYS_$SYS"
-# parse options
-for opt do
- optarg="${opt#*=}"
- case "$opt" in
- --prefix=*)
- prefix="$optarg"
- ;;
- --exec-prefix=*)
- exec_prefix="$optarg"
- ;;
- --bindir=*)
- bindir="$optarg"
- ;;
- --libdir=*)
- libdir="$optarg"
- ;;
- --includedir=*)
- includedir="$optarg"
- ;;
- --enable-avis-input)
- avis_input="yes"
- ;;
- --disable-avis-input)
- avis_input="no"
- ;;
- --enable-mp4-output)
- mp4_output="yes"
- ;;
- --disable-mp4-output)
- mp4_output="no"
- ;;
- --extra-asflags=*)
- ASFLAGS="$ASFLAGS ${opt#--extra-asflags=}"
- ;;
- --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"
- ;;
- --disable-pthread)
- pthread="no"
- ;;
- --enable-debug)
- CFLAGS="$CFLAGS -g"
- debug="yes"
- ;;
- --enable-gprof)
- CFLAGS="$CFLAGS -pg"
- LDFLAGS="$LDFLAGS -pg"
- gprof="yes"
- ;;
- --enable-pic)
- pic="yes"
- ;;
- --enable-vfw)
- vfw="yes"
- ;;
- --disable-vfw)
- vfw="no"
- ;;
- --enable-shared)
- shared="yes"
- if [ $ARCH = "X86_64" -o $ARCH = "PPC" -o $ARCH = "ALPHA" ] ; then
- pic="yes"
- fi
- ;;
- --enable-visualize)
- LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11"
- CFLAGS="$CFLAGS -DVISUALIZE=1"
- vis="yes"
- ;;
- *)
- echo "Unknown option $opt, ignored"
- ;;
- esac
-done
-
# autodetect options that weren't forced nor disabled
if test "$pthread" = "auto" ; then
@@ -351,6 +368,9 @@
ASFLAGS=$ASFLAGS
VFW=$vfw
EXE=$EXE
+AR=$AR
+AROPTS=$AROPTS
+RANLIB=$RANLIB
VIS=$vis
HAVE_GETOPT_LONG=$HAVE_GETOPT_LONG
DEVNULL=$DEVNULL
Index: Makefile
===================================================================
--- Makefile (revision 473)
+++ Makefile (working copy)
@@ -64,8 +64,8 @@
default: $(DEP) x264$(EXE)
libx264.a: .depend $(OBJS) $(OBJASM)
- ar rc libx264.a $(OBJS) $(OBJASM)
- ranlib libx264.a
+ $(AR) rc libx264.a $(OBJS) $(OBJASM)
+ $(RANLIB) libx264.a
$(SONAME): .depend $(OBJS) $(OBJASM)
$(CC) -shared -o $@ $(OBJS) $(OBJASM) -Wl,-soname,$(SONAME)
@@ -133,14 +133,14 @@
distclean: clean
rm -f config.mak config.h vfw/build/cygwin/config.mak x264.pc
-install: x264 $(SONAME)
+install: x264$(EXE)
install -d $(DESTDIR)$(bindir) $(DESTDIR)$(includedir)
install -d $(DESTDIR)$(libdir) $(DESTDIR)$(libdir)/pkgconfig
install -m 644 x264.h $(DESTDIR)$(includedir)
install -m 644 libx264.a $(DESTDIR)$(libdir)
install -m 644 x264.pc $(DESTDIR)$(libdir)/pkgconfig
- install x264 $(DESTDIR)$(bindir)
- ranlib $(DESTDIR)$(libdir)/libx264.a
+ install x264$(EXE) $(DESTDIR)$(bindir)
+ $(RANLIB) $(DESTDIR)$(libdir)/libx264.a
$(if $(SONAME), ln -sf $(DESTDIR)$(libdir)/$(SONAME) $(DESTDIR)$(libdir)/libx264.so)
$(if $(SONAME), install -m 755 $(SONAME) $(DESTDIR)$(libdir))
More information about the x264-devel
mailing list