sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
sudo apt-get install autoconf2.13 pkg-config
sudo apt-get install git-core
sudo apt-get install tsocks
tsocks git clone git://
OR
tsocks git pull
export PREFIX=/usr/local/i586-mingw32msvc
mkdir -p $PREFIX/src
sudo install -d $PREFIX/lib
sudo install -d $PREFIX/include
cd $PREFIX/src
wget http://www.mirrorservice.org/sites/sourceware.org/pub/pthreads-win32/pthreads-w32-2-8-0-release.tar.gz
tar -zxf pthreads-w32-2-8-0-release.tar.gz
cd pthreads-w32-2-8-0-release/
make CROSS=i586-mingw32msvc- realclean GC-static
sudo /usr/bin/install -m 644 -c libpthreadGC2.a $PREFIX/lib/libpthreadGC2.a
sudo ln -sf $PREFIX/lib/libpthreadGC2.a $PREFIX/lib/libpthread.a
sudo /usr/bin/install -m 644 -c pthread.h $PREFIX/include/pthread.h
sudo /usr/bin/install -m 644 -c sched.h $PREFIX/include/sched.h
cd $PREFIX/src
wget http://downloads.xvid.org/downloads/xvidcore-1.2.2.tar.gz
tar -zxf xvidcore-1.2.2.tar.gz
cd xvidcore/build/generic
./configure \
--host=i586-mingw32msvc \
--prefix=$PREFIX
make xvidcore.a
sudo install -m 644 =build/xvidcore.a $PREFIX/lib/libxvidcore.a
sudo install -m 644 ../../src/xvid.h $PREFIX/include/xvid.h
cd $PREFIX/src
wget http://zlib.net/zlib-1.2.5.tar.bz2
tar -jxf zlib-1.2.5.tar.bz2
cd zlib-1.2.5/
AR="/usr/bin/i586-mingw32msvc-ar" \
CC=/usr/bin/i586-mingw32msvc-gcc \
CPP=/usr/bin/i586-mingw32msvc-cpp \
CPPFLAGS="-I/usr/i586-mingw32msvc/include -I$PREFIX/include" \
CXX=/usr/bin/i586-mingw32msvc-g++ \
LDFLAGS="-L/usr/i586-mingw32msvc/lib -L$PREFIX/lib" \
PATH=/usr/i586-mingw32msvc/bin:$PATH \
RANLIB=/usr/bin/i586-mingw32msvc-ranlib \
RC=/usr/bin/i586-mingw32msvc-windres \
WINDRES=/usr/bin/i586-mingw32msvc-windres \
./configure \
--prefix=$PREFIX
make
sudo make install
cd $PREFIX/src Download source viahttp://www.libpng.org/pub/png/libpng.html tar -zxf libpng-1.5.1.tar.gz cd libpng-1.5.1/ CPPFLAGS="-I/usr/i586-mingw32msvc/include -I$PREFIX/include" \ LDFLAGS="-L/usr/i586-mingw32msvc/lib -L$PREFIX/lib" \ ./configure \ --host=i586-mingw32msvc \ --prefix=$PREFIX \ --disable-shared \ --enable-static make sudo make install !openjpeg_v1_2! cd $PREFIX/src svn checkout http://openjpeg.googlecode.com/svn/trunk/ openjpeg-trunk cd openjpeg-trunk ./bootstrap.sh PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \ CPPFLAGS="-I/usr/i586-mingw32msvc/include -I$PREFIX/include" \ LDFLAGS="-L/usr/i586-mingw32msvc/lib -L$PREFIX/lib" \ ./configure \ --prefix=$PREFIX \ --host=i586-mingw32msvc \ --disable-shared \ --enable-static cd libopenjpeg make sudo make install !libogg-1.2.2! cd $PREFIX/src wget http://downloads.xiph.org/releases/ogg/libogg-1.2.2.tar.gz tar -zxf libogg-1.2.2.tar.gz cd libogg-1.2.2 ./configure \ --host=i586-mingw32msvc \ --prefix=$PREFIX \ --disable-shared \ --enable-static make sudo make install !libvorbis-1.3.2! cd $PREFIX/src wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.2.tar.bz2 tar -jxf libvorbis-1.3.2.tar.bz2 cd libvorbis-1.3.2 PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \ CPPFLAGS="-I/usr/i586-mingw32msvc/include -I$PREFIX/include" \ LDFLAGS="-L/usr/i586-mingw32msvc/lib -L$PREFIX/lib" \ ./configure \ --prefix=$PREFIX \ --host=i586-mingw32msvc \ --disable-shared \ --enable-static make sudo make install !libtheora-1.1.1! cd $PREFIX/src wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.bz2 tar -jxf libtheora-1.1.1.tar.bz2 cd libtheora-1.1.1 PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \ CPPFLAGS="-I/usr/i586-mingw32msvc/include -I$PREFIX/include" \ LDFLAGS="-L/usr/i586-mingw32msvc/lib -L$PREFIX/lib" \ ./configure \ --prefix=$PREFIX \ --host=i586-mingw32msvc \ --disable-shared \ --enable-static make sudo make install !speex-1.2rc1! cd $PREFIX/src wget http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz tar -zxf speex-1.2rc1.tar.gz cd speex-1.2rc1 PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \ CPPFLAGS="-I/usr/i586-mingw32msvc/include -I$PREFIX/include" \ LDFLAGS="-L/usr/i586-mingw32msvc/lib -L$PREFIX/lib" \ ./configure \ --prefix=$PREFIX \ --host=i586-mingw32msvc \ --disable-shared \ --enable-static make sudo make install !dirac-1.0.2! cd $PREFIX/src wget http://downloads.sourceforge.net/project/dirac/dirac-codec/Dirac-1.0.2/dirac-1.0.2.tar.gz tar -zxf dirac-1.0.2.tar.gz cd dirac-1.0.2 ./configure \ --prefix=$PREFIX \ --host=i586-mingw32msvc make sudo make install !faac-1.28! cd $PREFIX wget http://downloads.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.tar.gz tar -zxf faac-1.28.tar.gz cd faac-1.28 ./configure \ --prefix=$PREFIX \ --host=i586-mingw32msvc \ --disable-shared cd libfaac make sudo make install cd ../include sudo make install !libgsm-1.0.13! cd $PREFIX apt-get source libgsm cd libgsm-1.0.13 Edit '''Makefile''' vim Makefile Add this and comment out any definitions that clash: AR = /usr/bin/i586-mingw32msvc-ar ARFLAGS = cr CC = /usr/bin/i586-mingw32msvc-gcc -ansi -pedantic CCFLAGS = -c -O2 -DNeedFunctionPrototypes=1 CPP = /usr/bin/i586-mingw32msvc-cpp CPPFLAGS = -I/usr/i586-mingw32msvc/include -I$PREFIX/include CXX = /usr/bin/i586-mingw32msvc-g++ LD = $(CC) LDFLAGS = -L/usr/i586-mingw32msvc/lib -L$PREFIX/lib RANLIB = /usr/bin/i586-mingw32msvc-ranlib RC = /usr/bin/i586-mingw32msvc-windres WINDRES = /usr/bin/i586-mingw32msvc-windres INSTALL_ROOT = $PREFIX make it'll '''fail''' with this error ./src/toast.o:toast.c:(.text+0x68b): undefined reference to `_fchmod' ./src/toast.o:toast.c:(.text+0x6c7): undefined reference to `_fchown' collect2: ld returned 1 exit status make: *** [bin/toast] Error 1 but never mind, as it's built what we need... chmod 644 lib/libgsm.a i586-mingw32msvc-ranlib lib/libgsm.a sudo /usr/bin/install -c lib/libgsm.a $PREFIX/lib/libgsm.a sudo /usr/bin/install -d $PREFIX/include/gsm sudo /usr/bin/install -c inc/gsm.h $PREFIX/include/gsm/gsm.h !lame-398-4! cd $PREFIX/src wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz tar -zxf lame-3.98.4.tar.gz cd lame-3.98.4/ ./configure \ --prefix=$PREFIX \ --host=i586-mingw32msvc \ --disable-shared make sudo make install !libx264! cd $PREFIX/src git clone git://git.videolan.org/x264.git cd x264 ./configure \ --host=i586-mingw32msvc \ --prefix=$PREFIX \ --cross-prefix=i586-mingw32msvc- \ --extra-cflags='--static -I $PREFIX/include -I /usr/i586-mingw32msvc/include/' \ --extra-ldflags='-static -L $PREFIX/lib -L /usr/i586-mingw32msvc/lib/' make sudo make install !schroedinger-1.0.10! Schroedinger requires ORC: cd $PREFIX/src wget http://code.entropywave.com/download/orc/orc-0.4.14.tar.gz tar -zxf orc-0.4.14.tar.gz cd orc-0.4.14/ PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \ ./configure \ --prefix=$PREFIX \ --host=i586-mingw32msvc \ --enable-static \ --disable-shared make sudo make install When that's complete, make Schro': cd $PREFIX/src wget http://diracvideo.org/download/schroedinger/schroedinger-1.0.10.tar.gz tar -zxf schroedinger-1.0.10.tar.gz cd schroedinger-1.0.10/ PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \ CPPFLAGS="-I/usr/i586-mingw32msvc/include -I$PREFIX/include -DPTW32_STATIC_LIB" \ LDFLAGS="-L/usr/i586-mingw32msvc/lib -L$PREFIX/lib" \ LIBS="-lws2_32" \ ./configure \ --prefix=$PREFIX \ --host=i586-mingw32msvc \ --enable-static \ --disable-shared \ --with-thread=pthread make sudo make install Edit '''$PREFIX/lib/pkgconfig/schroedinger-1.0.pc''' to add '''-lws2_32''' to '''Libs.private''' line sudo vim $PREFIX/lib/pkgconfig/schroedinger-1.0.pc ... Libs.private: -lpthread -lws2_32 -lm ... !VPx! cd $PREFIX/src git clone git://review.webmproject.org/libvpx.git cd libvpx CROSS=i586-mingw32msvc- \ ./configure \ --prefix=$PREFIX \ --target=x86-win32-gcc \ --cpu=i686 \ --disable-shared \ --disable-examples make verbose=1 sudo make install !!!Building FFmbc!!! cd $PREFIX/src wget http://ffmbc.googlecode.com/files/FFmbc-0.6-rc5.tar.gz tar -zxf FFmbc-0.6-rc5.tar.gz cd FFmbc-0.6-rc5 !!Static build!! !Configure! PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig \ ./configure \ --cpu=i686 \ --arch=i686 \ --prefix=$PREFIX \ --target-os=mingw32 \ --enable-memalign-hack \ --cross-prefix=i586-mingw32msvc- \ --extra-cflags='--static -I $PREFIX/include -D_WIN32_WINNT=0x0501' \ --extra-ldflags='-static -L $PREFIX/lib' \ --enable-gpl \ --enable-nonfree \ --enable-pthreads \ --enable-static \ --disable-shared \ --enable-libdirac \ --enable-libfaac \ --enable-libgsm \ --enable-libmp3lame \ --enable-libopenjpeg \ --enable-libspeex \ --enable-libtheora \ --enable-libvorbis \ --enable-libxvid \ --enable-libschroedinger \ --enable-libx264 \ --enable-libvpx Edit '''config.mak''' to remove '''-Werror=missing-prototypes''' from the end of '''CFLAGS''' line 29 make sudo make install