[MPlayer-cygwin] How to compile MPlayer for WIN32 using MinGW

Milen Manev mmanev at gmail.com
Mon Mar 16 13:10:04 CET 2009


Hi all,

http://www.mplayerhq.hu/MPlayer/contrib/win32/MPlayer-MinGW-Howto.txt
is quite old.
No one update it.
There are many places where pre-compiled version of MPlayer for
Windows can be found.
But I found nowhere "How To", moreover in these versions there is no
support for cdda and dvdnav.
That is why i decided to write this article.


How to compile MPlayer for WIN32 using MinGW

I. Install MinGW/MSYS
Get following packages from:
http://sourceforge.net/project/showfiles.php?group_id=2435

	gcc-core-3.4.5-20060117-3.tar.gz
	gcc-g++-3.4.5-20060117-3.tar.gz
	binutils-2.19.1-mingw32-bin.tar.gz
	gdb-6.8-mingw-3.tar.bz2
	mingw32-make-3.81-20080326-3.tar.gz
	mingw-runtime-3.14.tar.gz
	mingw-utils-0.3.tar.gz
	w32api-3.13-mingw32-dev.tar.gz
	msysCORE-1.0.11-20080826.tar.gz
	MSYS-1.0.11-20090120-dll.tar.gz
	tar-1.19.90-MSYS-1.0.11-2-bin.tar.gz
	findutils-4.3.0-MSYS-1.0.11-3-bin.tar.gz
	autoconf2.5-2.61-1-bin.tar.bz2
	autoconf-4-1-bin.tar.bz2
	automake1.9-1.9.6-2-bin.tar.bz2
	automake-3-1-bin.tar.bz2
	bison-2.3-MSYS-1.0.11-1.tar.bz2
	crypt-1.1-1-MSYS-1.0.11-1.tar.bz2
	libtool1.5-1.5.25a-1-bin.tar.bz2
	libtool1.5-1.5.25a-1-dll.tar.bz2
	perl-5.6.1-MSYS-1.0.11-1.tar.bz2

Important:
	- Do not take mingw-runtime-3.15 because mplayer liba52 crashes.
	- automake1.9 is required by faac. Use it instead of automake1.10
	- I have problems with compilation using gcc 4.3.0. MPlayer can't
link static pthreads.

1) creare folder c:\MinGW
2) Extract:
	gcc-core-3.4.5-20060117-3.tar.gz
	gcc-g++-3.4.5-20060117-3.tar.gz
	binutils-2.19.1-mingw32-bin.tar.gz
	gdb-6.8-mingw-3.tar.bz2
	mingw32-make-3.81-20080326-3.tar.gz
	mingw-runtime-3.14.tar.gz
	mingw-utils-0.3.tar.gz
	w32api-3.13-mingw32-dev.tar.gz
in folder c:\MinGW

3) Create folder msys\1.0.11 in c:\MinGW
4) Extract:
	msysCORE-1.0.11-20080826.tar.gz
	MSYS-1.0.11-20090120-dll.tar.gz
	tar-1.19.90-MSYS-1.0.11-2-bin.tar.gz
	findutils-4.3.0-MSYS-1.0.11-3-bin.tar.gz
	autoconf2.5-2.61-1-bin.tar.bz2
	autoconf-4-1-bin.tar.bz2
	automake1.9-1.9.6-2-bin.tar.bz2
	automake-3-1-bin.tar.bz2
	bison-2.3-MSYS-1.0.11-1.tar.bz2
	crypt-1.1-1-MSYS-1.0.11-1.tar.bz2
	libtool1.5-1.5.25a-1-bin.tar.bz2
	libtool1.5-1.5.25a-1-dll.tar.bz2
	perl-5.6.1-MSYS-1.0.11-1.tar.bz2
in c:\MinGW\msys\1.0.11
5) create folder mingw in c:\MinGW\msys\1.0.11
6) Move folder c:\MinGW\msys\1.0.11\usr\local to c:\MinGW\msys\1.0.11
- do not remove folder usr even it is empty
7) create file fstab in folder c:\MinGW\msys\1.0.11\ using example
file c:\MinGW\msys\1.0.11\fstab.sample

II. Running MSYS.
Start c:\MinGW\msys\1.0.11\msys.bat
Folder c:\MinGW\msys\1.0.11\home\yourname will be created for you

III. Compilation of packages
1) To compile packages in your home folder (without spoil MinGW/MSYS)
following folders must be created:
	- /home/yourname/bin
	- /home/yourname/lib
	- /home/yourname/include
	- /home/yourname/man/man1
Start c:\MinGW\msys\1.0.11\msys.bat and create folders using
	mkdir .....

2) Export following variables:
	export PATH="$PATH:/home/yourname/bin"
	export CPPFLAGS="$CPPFLAGS -I/home/yourname/include"
	export LDFLAGS="$LDFLAGS -L/home/yourname/lib"

3) To enable DirectX support extract dx7headers.tgz from
http://www.mplayerhq.hu/MPlayer/contrib/win32/ to
/home/yourname/include

4) To enable 64 bit file support patch MinGW with following patch
file64_mingw.diff
from http://oss.netfarm.it/mplayer/misc/file64_mingw.diff

5) Here is the list of packages that will be used:

	http://www.gnu.org/software/libiconv/
	libiconv-1.12.tar.gz

	http://pkg-config.freedesktop.org/wiki/
	pkg-config-0.23.tar.gz

	http://sourceware.org/pthreads-win32/announcement.html
	pthreads-w32-2-8-0-release.tar.gz

	http://www.videolan.org/developers/libdca.html
	libdca-0.0.5.tar.bz2

	http://www.underbit.com/products/mad/
	libmad-0.15.1b.tar.gz

	http://www.oberhumer.com/opensource/lzo/download/
	lzo-2.03.tar.gz

	http://sourceforge.net/projects/faac
	faac-1.28.tar.bz2

	http://www.musepack.net/index.php?pg=src
	libmpcdec-1.2.6.tar.bz2

	http://downloads.xiph.org/releases/ogg/
	libogg-1.1.3.tar.gz

	http://downloads.xiph.org/releases/vorbis/
	libvorbis-1.2.0.tar.bz2

	http://downloads.xiph.org/releases/theora/
	libtheora-1.0beta3.tar.bz2

	http://www.speex.org/downloads/
	speex-1.2rc1.tar.gz

	http://sourceforge.net/projects/freetype/
	freetype-2.3.8.tar.bz2

	http://www.zlib.net/
	zlib-1.2.3.tar.bz2

	http://www.bzip.org/index.html
	bzip2-1.0.5.tar.gz

	http://sourceforge.net/projects/libpng/
	libpng-1.2.35.tar.bz2

	http://www.littlecms.com/
	lcms-1.17.tar.gz

	http://www.ijg.org/
	jpegsrc.v6b.tar.gz

	http://www.libpng.org/pub/mng/
	libmng-1.0.10.tar.bz2

	http://sourceforge.net/projects/giflib/
	libungif-4.1.4.tar.bz2

	http://sourceforge.net/projects/nasm/
	nasm-2.05.01.tar.bz2

	http://www.tortall.net/projects/yasm/
	yasm-0.7.2.tar.gz

	http://lame.sourceforge.net/download/download.html
	lame-398-2.tar.gz

	http://www.twolame.org/
	twolame-0.3.12.tar.gz

	http://www.xvid.org/downloads.html
	xvidcore-1.2.1.tar.gz

	http://www.videolan.org/developers/x264.html
	x264-snapshot-YYYYMMDD-2245.tar.bz2

	http://www.live555.com/liveMedia/
	live.YYYY.MM.DD.tar.gz

	http://libcaca.zoy.org/download.html
	libcaca-0.99.beta16.tar.gz

	http://fribidi.freedesktop.org/wiki/
	fribidi-0.10.9.tar.gz

	http://www.gnu.org/software/libcdio/
	libcdio-0.81.tar.gz

	http://libdv.sourceforge.net/
	libdv-1.0.0.tar.gz

	http://www.penguin.cz/~utx/amr
	amrnb-7.0.0.2.tar.bz2

	http://www.3gpp.org/ftp/Specs/html-info/26104.htm
	26104-800.zip .

	http://www.penguin.cz/~utx/amr
	amrwb-7.0.0.3.tar.bz2

	http://www.3gpp.org/ftp/Specs/html-info/26204.htm
	26204-800.zip .

	http://www.nut-container.org/
	svn checkout svn://svn.mplayerhq.hu/nut/trunk nut

	http://diracvideo.org/
	dirac-1.0.2.tar.gz

	http://liboil.freedesktop.org/wiki/
	liboil-0.3.15.tar.gz

	http://diracvideo.org/download/schroedinger/
	schroedinger-1.0.5.tar.gz

	http://expat.sourceforge.net/
	expat-2.0.1.tar.gz

	http://fontconfig.org/wiki/
	fontconfig-2.6.0.tar.gz

6) All packages will be compiled with static linking.
Standard procedure for compilation is:
	./configure --prefix=/home/yourname --disable-shared
--with-extraincdir=/home/yourname/include
--extralibdir=/home/yourname/lib
	make
	make install

7) Specifics and patches
To compile packages with MinGW sometimes pathes are needed. In this
section specific compilation of some packages is described:
	- libiconv - replace $(PACKAGE_VERSION) with hard coded version
(libiconv-1.12.diff)
	- pkg-config -  link with -lwsock32 and to change -lglib-2.0 with
-lglib (pkg-config-0.22.diff)
	- libtheora - stddef.h has to be included to have definition of
size_t (libtheora-1.0beta3.diff)
	- bzip2 - add .exe to executable files (bzip2-1.0.5.diff)
	- libmng - enable lcms (libmng-1.0.10.diff)
	- linungif - do not compile utils (libungif-4.1.4.diff)
	- libtwolame - enable static linking (twolame-static-0.3.9.diff)
	- fribidi - enable static linking + use of time.h insted of
sys/times.h (fribidi-0.10.9.diff)
	- libcdio - time functions fixes (libcdio-0.81.diff)
	- libdv - disable test programs and players (libdv-1.0.0.diff)
	- amr - update amr to 8.0 and disable downloading of packages
(amrnb-7.0.0.2.diff, amrwb-7.0.0.3.diff)
	- nut - 64 bit file access (nut-SVN-r517.diff)
	- fontconfig - remove dll from library file names (fontconfig-2.6.0.diff)

	- glib - make manual install:
		a) copy glib.h glibconfig.h to /home/yourname/include
		b) copy .libs/*.* to /home/yourname/lib
	- pkg-config - after compiling execute:
		export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/home/yourname/lib/pkgconfig/"
	- pthreads - make manula install:
		a) copy libpthreadGC2.a to /home/yourname/lib
		b) copy pthread.h and sched.h /home/yourname/include/
	- libmpcdec - manual copy of header files from include/mpcdec/*.h to
/home/yourname/include/mpcdec
	- bzip2 - install using make install PREFIX=/home/yourname
	- jpeg - make manual install
		a) copy .libs/libjpeg.a to /home/yourname/lib/
		b) copy jpeglib.h jconfig.h jmorecfg.h to /home/yourname/include/
	- libmng - install using make install INSTALL_PREFIX=/home/yourname/
- do not forget / and the end of /home/yourname
	- xvid - rename /home/yourname/lib/xvidcore.a to
/home/yourname/lib/libxvidcore.a
	- live
		a) set compiler to gcc
		b) after compiling copy live folder to /home/yourname/lib/
	- nut - make manual install
		a) copy libnut/libnut.h /home/yourname/include
		b) copy libnut/libnut.a /home/yourname/lib

IV. Compiling MPlayer
Get latest sources from SVN
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
or daily snapshot
http://www.mplayerhq.hu/MPlayer/releases/mplayer-export-snapshot.tar.bz2
Patch Mplayer with xx_pthread_static.diff from
http://oss.netfarm.it/mplayer/patches/xx_pthread_static.diff
and xx_fontconfig_check.diff from
http://oss.netfarm.it/mplayer/patches/xx_fontconfig_check.diff
to have pthreads linked static and fontconfig linked.
Configure using:
./configure --prefix=/home/yourname --enable-static
--with-extralibdir=/home/yourname/lib
--with-extraincdir=/home/yourname/include --enable-mng
--disable-tremor-internal --enable-caca
Then make and install.

V. Running MPlayer
When run MPlayer for the first time folder mplayer will be created.
Copy configuration files from mplayer source/etc/ to this folder.

VI Extras
1) Attached script InstallMinGW.bat do all things described in section I
To run the script you will need 7za.exe - command line version of
7zip, which can be found here:
http://downloads.sourceforge.net/sevenzip/7za465.zip.
Put 7za.exe in the same folder as MinGW/MSYS packages.
Example:
To install MinGW/MSYS in folder c:\MinGW if packages are downloaded in
c:\Install\MinGW and c:\Temp is used as TEMP folder call:
	InstallMinGW.bat c:\Install\MinGW c:\Temp c:\MinGW c:/MinGW
4-th parameter is the same as 3-rd but "\" is changed with "/"


2) Attached script InstallMplayer.sh do all things described in
section III and IV
Example: To compile MPlayer in your home folder and source packages in
c:\Install\Mplayer call:
	InstallMPlayer.sh /home/yourname /home/yourname /c/Install/MPlayer
For this you will need also unzip.exe from info-zip -
ftp:/tug.ctan.org/tex-archive/tools/zip/info-zip/WIN32/unz552xN.exe
Do not forget to get latest x264, live and mplayer

P.S. Remove .txt from names of attachment files InstallMPlayer.sh.txt
and InstallMinGW.bat.txt.
-- 
Milen Manev
-------------- next part --------------
: %1 - where are archives
: %2 - temp directory
: %4 - where to install
: %4 - where to map /mingw

: http://downloads.sourceforge.net/sevenzip/7za465.zip
: extract 7az.exe in folder with MinGW/MSYS archives


:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=82723
%1\7za x -y %1\gcc-core-3.4.5-20060117-3.tar.gz -o%2
%1\7za x -y %2\gcc-core-3.4.5-20060117-3.tar -o%3
del %2\gcc-core-3.4.5-20060117-3.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=82723
%1\7za x -y %1\gcc-g++-3.4.5-20060117-3.tar.gz -o%2
%1\7za x -y %2\gcc-g++-3.4.5-20060117-3.tar -o%3
del %2\gcc-g++-3.4.5-20060117-3.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=11290
%1\7za x -y %1\binutils-2.19.1-mingw32-bin.tar.gz -o%2
%1\7za x -y %2\binutils-2.19.1-mingw32-bin.tar -o%3
del %2\binutils-2.19.1-mingw32-bin.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=20507
%1\7za x -y %1\gdb-6.8-mingw-3.tar.bz2 -o%2
%1\7za x -y %2\gdb-6.8-mingw-3.tar -o%3
del %2\gdb-6.8-mingw-3.tar 

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=23918
%1\7za x -y %1\mingw32-make-3.81-20080326-3.tar.gz -o%2
%1\7za x -y %2\mingw32-make-3.81-20080326-3.tar -o%3
del %2\mingw32-make-3.81-20080326-3.tar 

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=11598
: Do not use 3.15 because liba52 crashes
%1\7za x -y %1\mingw-runtime-3.14.tar.gz -o%2
%1\7za x -y %2\mingw-runtime-3.14.tar -o%3
del %2\mingw-runtime-3.14.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=61599
%1\7za x -y %1\mingw-utils-0.3.tar.gz -o%2
%1\7za x -y %2\mingw-utils-0.3.tar -o%3
del %2\mingw-utils-0.3.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=11550
%1\7za x -y %1\w32api-3.13-mingw32-dev.tar.gz -o%2
%1\7za x -y %2\w32api-3.13-mingw32-dev.tar -o%3
del %2\w32api-3.13-mingw32-dev.tar




mkdir %3\msys
mkdir %3\msys\1.0.11

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=24963
%1\7za x -y %1\msysCORE-1.0.11-20080826.tar.gz -o%2
%1\7za x -y %2\msysCORE-1.0.11-20080826.tar -o%3\msys\1.0.11
del %2\msysCORE-1.0.11-20080826.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=24963
%1\7za x -y %1\MSYS-1.0.11-20090120-dll.tar.gz -o%2
%1\7za x -y %2\MSYS-1.0.11-20090120-dll.tar -o%3\msys\1.0.11
del %2\MSYS-1.0.11-20090120-dll.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=24963
%1\7za x -y %1\tar-1.19.90-MSYS-1.0.11-2-bin.tar.gz -o%2
%1\7za x -y %2\tar-1.19.90-MSYS-1.0.11-2-bin.tar -o%3\msys\1.0.11
del %2\tar-1.19.90-MSYS-1.0.11-2-bin.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=24963
%1\7za x -y %1\findutils-4.3.0-MSYS-1.0.11-3-bin.tar.gz -o%2
%1\7za x -y %2\findutils-4.3.0-MSYS-1.0.11-3-bin.tar -o%3\msys\1.0.11
del %2\findutils-4.3.0-MSYS-1.0.11-3-bin.tar





:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879
%1\7za x -y %1\autoconf2.5-2.61-1-bin.tar.bz2 -o%2
%1\7za x -y %2\autoconf2.5-2.61-1-bin.tar -o%3\msys\1.0.11
del %2\autoconf2.5-2.61-1-bin.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879
%1\7za x -y %1\autoconf-4-1-bin.tar.bz2 -o%2
%1\7za x -y %2\autoconf-4-1-bin.tar -o%3\msys\1.0.11
del %2\autoconf-4-1-bin.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879
: Because of faac compilation install automake1.9 instead of automake1.10
%1\7za x -y %1\automake1.9-1.9.6-2-bin.tar.bz2 -o%2
%1\7za x -y %2\automake1.9-1.9.6-2-bin.tar -o%3\msys\1.0.11
del %2\automake1.9-1.9.6-2-bin.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879
%1\7za x -y %1\automake-3-1-bin.tar.bz2 -o%2
%1\7za x -y %2\automake-3-1-bin.tar -o%3\msys\1.0.11
del %2\automake-3-1-bin.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879
%1\7za x -y %1\bison-2.3-MSYS-1.0.11-1.tar.bz2 -o%2
%1\7za x -y %2\bison-2.3-MSYS-1.0.11-1.tar -o%3\msys\1.0.11
del %2\bison-2.3-MSYS-1.0.11-1.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879
%1\7za x -y %1\crypt-1.1-1-MSYS-1.0.11-1.tar.bz2 -o%2
%1\7za x -y %2\crypt-1.1-1-MSYS-1.0.11-1.tar -o%3\msys\1.0.11
del %2\crypt-1.1-1-MSYS-1.0.11-1.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879
%1\7za x -y %1\libtool1.5-1.5.25a-1-bin.tar.bz2 -o%2
%1\7za x -y %2\libtool1.5-1.5.25a-1-bin.tar -o%3\msys\1.0.11
del %2\libtool1.5-1.5.25a-1-bin.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879
%1\7za x -y %1\libtool1.5-1.5.25a-1-dll.tar.bz2 -o%2
%1\7za x -y %2\libtool1.5-1.5.25a-1-dll.tar -o%3\msys\1.0.11
del %2\libtool1.5-1.5.25a-1-dll.tar

:http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879
%1\7za x -y %1\perl-5.6.1-MSYS-1.0.11-1.tar.bz2 -o%2
%1\7za x -y %2\perl-5.6.1-MSYS-1.0.11-1.tar -o%3\msys\1.0.11
del %2\perl-5.6.1-MSYS-1.0.11-1.tar

mkdir %3\msys\1.0.11\mingw

move /Y %3\msys\1.0.11\usr\local %3\msys\1.0.11\

echo %4 /mingw > %3\msys\1.0.11\etc\fstab

-------------- next part --------------
A non-text attachment was scrubbed...
Name: patches.zip
Type: application/zip
Size: 11733 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-cygwin/attachments/20090316/00de3c08/attachment.zip>
-------------- next part --------------
# $1 -> /home/username (where to install)
# $2 -> /home/username (where to compile)
# $3 -> /c/Install/MPlayer (where are packages)

mkdir $1/bin
mkdir $1/lib
mkdir $1/include
mkdir $1/man
mkdir $1/man/man1

export PATH="$PATH:$1/bin"
export CPPFLAGS="$CPPFLAGS -I$1/include"
export LDFLAGS="$LDFLAGS -L$1/lib"

# DirectX headers
# http://www.mplayerhq.hu/MPlayer/contrib/win32/
cd $1/include
tar -xvzf $3/dx7headers.tgz

# http://www.info-zip.org/UnZip.html#Downloads
# ftp://tug.ctan.org/tex-archive/tools/zip/info-zip/WIN32/unz552xN.exe
cp $3/unzip.exe $1/bin

# MinGW with enabled 64 bit file access
# http://oss.netfarm.it/mplayer-win32.php
# http://oss.netfarm.it/mplayer/misc/file64_mingw.diff
cd /mingw
patch -p1 < $3/file64_mingw.diff

cd $2

# http://www.gnu.org/software/libiconv/
tar -xvzf $3/libiconv-1.12.tar.gz
cd "libiconv-1.12"
patch -p1 < $3/libiconv-1.12.diff
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2 

# http://pkg-config.freedesktop.org/wiki/
tar -xvzf $3/pkg-config-0.23.tar.gz
cd pkg-config-0.23
patch -p1 < $3/pkg-config-0.22.diff
# glib
cd glib-1.2.10
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include  --disable-threads
make
make install
cp glib.h glibconfig.h $1/include
cp .libs/*.* $1/lib
#pkg-config
cd ..
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$1/lib/pkgconfig/"

cd $2

# http://sourceware.org/pthreads-win32/announcement.html
# ftp://sources.redhat.com/pub/pthreads-win32
tar -xvzf $3/pthreads-w32-2-8-0-release.tar.gz
cd "pthreads-w32-2-8-0-release"
make clean GC-static
cp libpthreadGC2.a $1/lib
cp pthread.h sched.h $1/include/

cd $2

# http://www.videolan.org/developers/libdca.html
# http://www.freshports.org/multimedia/libdts/
tar -xvjf $3/libdca-0.0.5.tar.bz2
cd "libdca-0.0.5"
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2

# http://www.underbit.com/products/mad/
# ftp://ftp.mars.org/pub/mpeg/
tar -xvzf $3/libmad-0.15.1b.tar.gz
cd "libmad-0.15.1b"
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2

# http://www.oberhumer.com/opensource/lzo/download/
# http://www.oberhumer.com/opensource/lzo/download/LZO-v1/
tar -xvzf $3/lzo-2.03.tar.gz
cd "lzo-2.03"
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2

# http://sourceforge.net/projects/faac
# http://sourceforge.net/project/showfiles.php?group_id=704
tar -xvjf $3/faac-1.28.tar.bz2
cd "faac-1.28"
./bootstrap
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include --without-mp4v2
make
make install

cd $2

# http://www.musepack.net/index.php?pg=src
tar -xvjf $3/libmpcdec-1.2.6.tar.bz2
cd "libmpcdec-1.2.6"
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install
# Some header files are not copied
cp include/mpcdec/*.h $1/include/mpcdec

cd $2 

# http://downloads.xiph.org/releases/ogg/
tar -xvzf $3/libogg-1.1.3.tar.gz
cd "libogg-1.1.3"
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2 

# http://downloads.xiph.org/releases/vorbis/
tar -xvjf $3/libvorbis-1.2.0.tar.bz2
cd "libvorbis-1.2.0"
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2

# http://downloads.xiph.org/releases/theora/
tar -xvjf $3/libtheora-1.0beta3.tar.bz2
cd "libtheora-1.0beta3"
patch -p1 < $3/libtheora-1.0beta3.diff
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2

# http://www.speex.org/downloads/
tar -xvzf $3/speex-1.2rc1.tar.gz
cd "speex-1.2rc1"
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2 

# http://sourceforge.net/projects/freetype/
# http://sourceforge.net/project/showfiles.php?group_id=3157
tar -xvjf $3/freetype-2.3.8.tar.bz2
cd "freetype-2.3.8"
./configure --prefix=$1 --disable-shared
make
make install
# error appear but do not take care

cd $2 

# http://www.zlib.net/
tar -xvjf $3/zlib-1.2.3.tar.bz2
cd "zlib-1.2.3"
./configure --prefix=$1
make
make install

cd $2

# http://www.bzip.org/index.html
# http://www.bzip.org/downloads.html
tar -xvzf $3/bzip2-1.0.5.tar.gz
cd "bzip2-1.0.5"
patch -p1 < $3/bzip2-1.0.5.diff
make
make install PREFIX=$1

cd $2

# http://sourceforge.net/projects/libpng/
# http://sourceforge.net/project/showfiles.php?group_id=5624
tar -xvjf $3/libpng-1.2.35.tar.bz2
cd "libpng-1.2.35"
./configure --prefix=$1 --disable-shared
make
make install

cd $2 

# http://www.littlecms.com/
# http://www.littlecms.com/downloads.htm
tar -xvzf $3/lcms-1.17.tar.gz
cd "lcms-1.17"
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2 

# http://www.ijg.org/
# ftp://ftp.uu.net/graphics/jpeg/
tar -xvzf $3/jpegsrc.v6b.tar.gz
cd "jpeg-6b"
./configure --prefix=$1 --enable-static --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install
cp .libs/libjpeg.a $1/lib/
cp jpeglib.h jconfig.h jmorecfg.h $1/include/

cd $2 

#http://www.libpng.org/pub/mng/
# http://www.libpng.com/
# http://www.libmng.com/download.html?cat=25
tar -xvjf $3/libmng-1.0.10.tar.bz2
cd "libmng-1.0.10"
cp makefiles/makefile.mingw Makefile
patch -p1 < $3/libmng-1.0.10.diff
make
make install INSTALL_PREFIX=$1/

cd $2 

# http://sourceforge.net/projects/giflib/
tar -xvjf $3/libungif-4.1.4.tar.bz2
cd "libungif-4.1.4"
patch -p1 < $3/libungif-4.1.4.diff
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2 

# http://sourceforge.net/projects/nasm/
# http://sourceforge.net/project/showfiles.php?group_id=6208
tar -xvjf $3/nasm-2.05.01.tar.bz2
cd "nasm-2.05.01"
./configure --prefix=$1
make
make install

cd $2 

# http://www.tortall.net/projects/yasm/
# http://www.tortall.net/projects/yasm/wiki/Download
tar -xvzf $3/yasm-0.7.2.tar.gz
cd "yasm-0.7.2"
./configure --prefix=$1
make
make install

cd $2 

# http://lame.sourceforge.net/download/download.html
# http://sourceforge.net/project/showfiles.php?group_id=290
tar -xvzf  $3/lame-398-2.tar.gz
cd "lame-398-2"
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2 

# http://www.twolame.org/
# http://sourceforge.net/project/showfiles.php?group_id=136040
tar -xvzf $3/twolame-0.3.12.tar.gz
cd "twolame-0.3.12"
patch -p1 < $3/twolame-static-0.3.9.diff
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2 

# http://www.xvid.org/downloads.html
tar -xvzf $3/xvidcore-1.2.1.tar.gz
cd "xvidcore/build/generic"
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install
mv $1/lib/xvidcore.a $1/lib/libxvidcore.a

cd $2 

# http://www.videolan.org/developers/x264.html
# ftp://ftp.videolan.org/pub/videolan/x264/snapshots/
tar -xvjf $3/x264-snapshot-20090220-2245.tar.bz2
cd "x264-snapshot-20090220-2245"
./configure --prefix=$1 --enable-avis-input --enable-pthread
make
make install

cd $2 

# http://www.live555.com/liveMedia/
# http://www.live555.com/liveMedia/public/
tar -xvzf $3/live.2009.02.13.tar.gz
cd "live"
genMakefiles mingw
make CC=gcc
cd ..
cp -R live $1/lib

cd $2

# http://libcaca.zoy.org/download.html
tar -xvzf $3/libcaca-0.99.beta16.tar.gz
cd libcaca-0.99.beta16
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2

# http://fribidi.freedesktop.org/wiki/
tar -xvzf $3/fribidi-0.10.9.tar.gz
cd fribidi-0.10.9
patch -p1 < $3/fribidi-0.10.9.diff
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2

# http://www.gnu.org/software/libcdio/
tar -xvzf $3/libcdio-0.81.tar.gz
cd libcdio-0.81
patch -p1 < $3/libcdio-0.81.diff
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2

# http://libdv.sourceforge.net/
# http://sourceforge.net/project/showfiles.php?group_id=4393
tar -xvzf $3/libdv-1.0.0.tar.gz
cd "libdv-1.0.0"
patch -p1 < $3/libdv-1.0.0.diff
./configure  --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include --disable-gtk --disable-asm CFLAGS=-DPTW32_STATIC_LIB
make
make install

cd $2

# http://www.penguin.cz/~utx/amr
tar -xvjf $3/amrnb-7.0.0.2.tar.bz2
cd "amrnb-7.0.0.2"
# http://www.3gpp.org/ftp/Specs/html-info/26104.htm
cp $3/amr/26104-800.zip .
patch -p1 < $3/amrnb-7.0.0.2.diff
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2 

# http://www.penguin.cz/~utx/amr
tar -xvjf $3/amrwb-7.0.0.3.tar.bz2
cd "amrwb-7.0.0.3"
# http://www.3gpp.org/ftp/Specs/html-info/26204.htm
cp $3/amr/26204-800.zip .
patch -p1 < $3/amrwb-7.0.0.3.diff
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2 

# http://www.nut-container.org/
# http://wiki.multimedia.cx/index.php?title=NUT
# svn checkout svn://svn.mplayerhq.hu/nut/trunk nut
# archive is self made
tar -xvjf $3/nut-SVN-r661.tar.bz2
cd "nut"
patch -p1 < $3/nut-SVN-r517.diff
make
cp libnut/libnut.h $1/include
cp libnut/libnut.a $1/lib

cd $2 

# http://diracvideo.org/
# http://diracvideo.org/download/dirac-research/
tar -xvzf $3/dirac-1.0.2.tar.gz
cd "dirac-1.0.2"
./configure --prefix=$1 --disable-shared
make
make install

cd $2 

# http://liboil.freedesktop.org/wiki/
# http://liboil.freedesktop.org/download/
tar -xvzf $3/liboil-0.3.15.tar.gz
cd "liboil-0.3.15"
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2 

# http://diracvideo.org/
# http://diracvideo.org/download/schroedinger/
tar -xvzf $3/schroedinger-1.0.5.tar.gz
cd "schroedinger-1.0.5"
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2 

# http://expat.sourceforge.net/
# http://sourceforge.net/project/showfiles.php?group_id=10127&package_id=10780
tar -xvzf $3/expat-2.0.1.tar.gz
cd "expat-2.0.1"
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2 

# http://fontconfig.org/wiki/
# http://fontconfig.org/release/
tar -xvzf $3/fontconfig-2.6.0.tar.gz
cd "fontconfig-2.6.0"
patch -p1 < $3/fontconfig-2.6.0.diff
./configure --prefix=$1 --disable-shared --with-extralibdir=$1/lib --with-extraincdir=$1/include
make
make install

cd $2 

# http://www.mplayerhq.hu/MPlayer/releases/mplayer-export-snapshot.tar.bz2
# svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
# archive is self made
tar -xvjf $3/mplayer.tar.bz2
cd "mplayer"
# http://oss.netfarm.it/mplayer/patches/xx_pthreadsw32_static.diff
patch -p1 < $3/xx_pthreadsw32_static.diff
# http://oss.netfarm.it/mplayer/patches/xx_fontconfig_check.diff
patch -p1 < $3/xx_fontconfig_check.diff
./configure --prefix=$1 --enable-static --with-extralibdir=$1/lib --with-extraincdir=$1/include --enable-mng --disable-tremor-internal --enable-caca
make
make install

cd $2 


More information about the MPlayer-cygwin mailing list