From daf8e9557d55d13d45b83329db59f711fb9c7251 Mon Sep 17 00:00:00 2001
From: Fabrice Bellard <fabrice@bellard.org>
Date: Wed, 15 Aug 2001 22:29:44 +0000
Subject: [PATCH] added win32 cross compile support

Originally committed as revision 107 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 Makefile  | 18 ++++++++++++------
 configure | 26 +++++++++++++++++++++-----
 ffmpeg.c  |  9 +++------
 3 files changed, 36 insertions(+), 17 deletions(-)

diff --git a/Makefile b/Makefile
index d810a2c72a5..e93365bf7d0 100644
--- a/Makefile
+++ b/Makefile
@@ -10,7 +10,13 @@ CFLAGS+=-p
 LDFLAGS+=-p
 endif
 
-PROG= ffmpeg ffserver
+ifeq ($(CONFIG_WIN32),yes)
+EXE=.exe
+PROG=ffmpeg$(EXE)
+else
+EXT=
+PROG=ffmpeg ffserver
+endif
 
 all: lib $(PROG)
 
@@ -18,14 +24,14 @@ lib:
 	$(MAKE) -C libavcodec all
 	$(MAKE) -C libav all
 
-ffmpeg: ffmpeg.o libav/libav.a libavcodec/libavcodec.a
-	gcc $(LDFLAGS) -o $@ $^ -lm
+ffmpeg$(EXE): ffmpeg.o libav/libav.a libavcodec/libavcodec.a
+	$(CC) $(LDFLAGS) -o $@ $^ -lm
 
-ffserver: ffserver.o libav/libav.a libavcodec/libavcodec.a
-	gcc $(LDFLAGS) -o $@ $^ -lm
+ffserver$(EXE): ffserver.o libav/libav.a libavcodec/libavcodec.a
+	$(CC) $(LDFLAGS) -o $@ $^ -lm
 
 %.o: %.c
-	gcc $(CFLAGS) -c -o $@ $< 
+	$(CC) $(CFLAGS) -c -o $@ $< 
 
 install: all
 	install -s -m 755 $(PROG) $(prefix)/bin
diff --git a/configure b/configure
index 54435a004a7..468774d0b03 100755
--- a/configure
+++ b/configure
@@ -21,6 +21,7 @@ esac
 gprof="no"
 mp3lib="yes"
 grab="yes"
+win32="no"
 
 if [ "$1" = "-h" -o "$1" = "--help" ] ; then
 cat << EOF
@@ -37,6 +38,7 @@ echo "  --disable-mmx           disable mmx usage"
 echo "  --enable-gprof          enable profiling with gprof [$gprof]"
 echo "  --disable-mp3lib        disable mp3 lib compiling"
 echo "  --disable-grab          disable audio/video grabbing code"
+echo "  --enable-win32          enable win32 cross compile"
 exit 1
 fi
 
@@ -56,9 +58,23 @@ for opt do
   ;;
   --disable-grab) grab="no"
   ;;
+  --enable-win32) win32="yes"
+  ;;
   esac
 done
 
+# Checking for CFLAGS
+if test -z "$CFLAGS"; then
+    CFLAGS="-O2"
+fi
+
+if [ "$win32" = "yes" ] ; then
+    cross_prefix="i386-mingw32msvc-"
+    cc="${cross_prefix}gcc"
+    ar="${cross_prefix}ar"
+    grab="no"
+fi
+
 echo "Install prefix   $prefix"
 echo "C compiler       $cc"
 echo "CPU              $cpu"
@@ -71,11 +87,6 @@ echo "Creating config.mak and config.h"
 echo "# Automatically generated by configure - do not modify" > config.mak
 echo "/* Automatically generated by configure - do not modify */" > config.h
 
-# Checking for CFLAGS
-if test -z "$CFLAGS"; then
- CFLAGS="-O2"
-fi
-
 echo "prefix=$prefix" >> config.mak
 echo "MAKE=make" >> config.mak
 echo "CC=$cc" >> config.mak
@@ -120,3 +131,8 @@ if [ "$grab" = "yes" ] ; then
   echo "#define CONFIG_GRAB 1" >> config.h
   echo "CONFIG_GRAB=yes" >> config.mak
 fi
+
+if [ "$win32" = "yes" ] ; then
+  echo "#define CONFIG_WIN32 1" >> config.h
+  echo "CONFIG_WIN32=yes" >> config.mak
+fi
diff --git a/ffmpeg.c b/ffmpeg.c
index 9f97111f79c..b9812b4b927 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -16,12 +16,10 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
+#define HAVE_AV_CONFIG_H
+#include "avformat.h"
+
 #ifndef CONFIG_WIN32
-#include "config.h"
 #include <unistd.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
@@ -33,7 +31,6 @@
 #include <ctype.h>
 #endif
 
-#include "avformat.h"
 
 #define MAXINT64 INT64_C(0x7fffffffffffffff)
 
-- 
GitLab