[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