SettingUpMinGWMSysEnvironment

Back to contents

Decide where your MSys directory will be. From now on I am assuming that MSys directory is `c:\msys'. MSys will eventually take roughly 1GB of disk space. MinGW will also take roughly 700MB. You should also pick a directory for it, please make it ANYTHING OTHER THAN "c:\mingw". ("c:\mingw32" should suffice). The reason is that "<currentdrive>\mingw" path is hard-coded into gcc somehow, and every gcc you will ever run will ALWAYS look there (instead of its own directories), no matter where you put it. And you want a place (source directory) to store source code of various software packages (around 60), reserve a couple of GB for it.

Software

Unpacking .tar.lzma and .tar.xz archives by hand (without using MSys/MinGW tools) requires an adequate archiver. You might want to get one at http://www.7-zip.org/download.html

Install MinGW/MSys

Get the latest mingw-get http://sourceforge.net/projects/mingw/files/Installer/mingw-get/mingw-get-0.5-beta-20120426-1/

Unpack to MINGWDIR

Copy MINGWDIR/var/lib/mingw-get/data/defaults.xml to MINGWDIR/var/lib/mingw-get/data/profile.xml

Edit it (set sysroots to your liking):

Replace

    <sysroot subsystem="mingw32" path="%R" />
    <sysroot subsystem="MSYS" path="%R/msys/1.0" />

with

    <sysroot subsystem="mingw32" path="c:/mingw32" />
    <sysroot subsystem="MSYS" path="c:/msys" />

or you can keep using "%R" - the path will be inferred from mingw-get.exe location at run-time. My configuration is

    <sysroot subsystem="mingw32" path="%R" />
    <sysroot subsystem="MSYS" path="%R/../msys" />

Run cmd (that is, Start->Run-> type "cmd" and press enter)

In cmd run the following commands:

cd MINGWDIR\bin
mingw-get update

Then wait for it to complete

Now you can install packages by running

mingw-get install <name of the package>

where <name of the package> is something like "mingw32-make" or "msys-perl"

The precise list of packages you'd need is a work in progress, but here is a list that might work:

msys-core msys-bash msys-coreutils msys-diffutils msys-grep msys-less msys-libiconv msys-tar msys-gzip msys-bzip2 msys-perl msys-sed msys-file msys-findutils msys-base msys-patch mingw32-automake mingw32-autoconf mingw32-libtool mingw32-xz mingw32-gettext mingw32-zlib mingw32-gcc-g++ mingw32-libiconv mingw32-expat mingw32-libarchive mingw32-make mingw32-utils mingw32-cygutils msys-guile mingw32-gdb msys-wget msys-automake msys-libtool msys-zlib msys-vim msys-rebase msys-gcc msys-libexpat msys-openssl msys-libopenssl msys-gettext msys-libbz2 msys-lndir msys-mktemp msys-unzip msys-libxml2 msys-bison msys-make mingw32-liblzma msys-cvs msys-flex mingw32-libltdl mingw32-gmp

msys-flex is needed for gstreamer

msys-cvs is needed for autopoint to work (autopoint can use git instead, but mingw32-gettext disables that)

msys-wget is needed to fetch source tarballs from the network

msys-libtool provides a recent version of config.guess for MSys

msys-automake is used to build MSys packages

msys-zlib is required for some MSys packages

msys-vim will be used as the primary text editor for mingw-git

msys-rebase is needed to rebase some of the MSys packages you'll be building

msys-gcc is needed to compile MSys packages

msys-libexpat is required for msys-apr-util

msys-openssl and msys-libopenssl are required for msys-neon

msys-gettext is required for msys-neon (and might be used for other MSys packages)

msys-libbz2 is required for msys-pcre

msys-lndir is required to build some of the packages (the ones that don't build OOTSD well)

msys-mktmp is required for xmlto

msys-unzip is required to unzip .zip archives (big surprise...)

msys-libxml2 is provides MSys version of xmlcatalog

msys-make is the default `make' used to build almost everything

msys-bison is required by some (which?) packages

mingw32-liblzma is required for lzma

mingw32-libltdl is required for guile

mingw32-gmp is required for nettle

Configure MSys

Copy c:\msys\etc\fstab.sample to c:\msys\etc\fstab

Edit c:\msys\etc\fstab:

Run MSYS developer shell

run cmd

run command:

MSYSDIR/msys.bat MSYS

to enter MSYS developer shell.

MSYS developer shell

MSYS developer shell IS FOR COMPILING MSYS PACKAGES ONLY! (that is, programs, libraries and scripts that work only inside MSys environment and nowhere else, and are intended to be used only as part of the build process of some applications).

Most MSys packages can be installed via mingw-get, but there are some that are not available that way. You need to build them yourself. That should be done on MSYS developer shell. EVERYTHING ELSE is done in MinGW shell (see below). DO NOT use MSYS deeveloper shell for compiling normal W32 programs.

You can identify your shell by running

uname -a

If it says "MSYS_NT...", you're running MSYS shell. If it says "MINGW32_NT...", you're running MinGW shell.

Configure console (optional)

msys.bat will launch a console. Right-click on its title bar and choose 'Properties' menu entry to access the Console Window Properties dialog.

On the 'Options' tab enable 'QuickEdit Mode' and 'Insert Mode'. This way it is possible to insert text into the console from the clipboard by right-clicking and to copy text from the console by selecting it and pressing any key (when 'QuickEdit' is disabled, right-click broughts context menu instead, and left-click just moves the cursor).

On the 'Font' tab switch to a better font (usually Lucida Console is the only option available).

On the Layout tab set Window Position to Top:1 and Left:1, increase Window Size: Width to the maximum (depends on your desktop resolution and font pitch, watch the preview window - increase the window width until a horizontal scrollbar appears, then decrease Screen Buffer Size Width by a few steps; the goal is to make the console as wide as possible without bringing the horizontal scrollbar up; don't set it wider than 224 though - otherwise vim won't be able to restore screen buffer contents on exit for some reason). Make sure that Window Size Width and Screen Buffer Size width are the equal to each other. It is recommended to greatly increase Screen Buffer Size Height - at least to 1000 (maximum is around 9000).

Press 'OK'. Select 'Save properties for future windows with same title' and press 'OK'.

Create source subdirectories (optional)

To avoid confusing msys- and mingw32- source packages, run the following in MSys developer shell:

mkdir /src/mingw
mkdir /src/msys

Install Python

Go to http://python.org/download/

Download Python. Python 2.7.x should be sufficient (if you're failing to find certain modules for Python 2.7, try 2.6 instead), so get it.

python-2.7.2.msi

Install it, usually it installs into something like c:\Python27.

In MSys developer console run:

cmd //C mklink c:\\msys\\bin\\python.exe c:\\Python27\\python.exe

to symlink python.exe from its directory to /usr/bin (assuming that c:\msys is your MSYS directory). That requires modern NTFS filesystem (which mostly means Windows Vista or newer).

Note that both paths must use "\\" dir-separator.

Install msys-sqlite

Run:

mkdir -p /src/msys/sqlite3-3.7.5-2 && \
cd /src/msys/sqlite3-3.7.5-2 && \
wget -O sqlite3-3.7.5-2-msys-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/msys/sqlite3/3.7.5-2/sqlite3-3.7.5-2-msys-src.tar.lzma && \
tar --lzma -C /src/msys/sqlite3-3.7.5-2/ -xf sqlite3-3.7.5-2-msys-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C / -xf sqlite3-3.7.5-2-msys-bin.tar.lzma && \
tar --lzma -C / -xf sqlite3-3.7.5-2-msys-dev.tar.lzma && \
tar --lzma -C / -xf sqlite3-3.7.5-2-msys-doc.tar.lzma && \
tar --lzma -C / -xf sqlite3-3.7.5-2-msys-lic.tar.lzma && \
tar --lzma -C / -xf libsqlite3-3.7.5-2-msys-dll-0.tar.lzma

Install msys-apr

Run:

mkdir -p /src/msys/apr-1.4.5-1 && \
cd /src/msys/apr-1.4.5-1 && \
wget -O apr-1.4.5-1-msys-1.0.17-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/msys/apr/1.4.5-1/apr-1.4.5-1-msys-1.0.17-src.tar.lzma && \
tar --lzma -C /src/msys/apr-1.4.5-1/ -xf apr-1.4.5-1-msys-1.0.17-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C / -xf apr-1.4.5-1-msys-1.0.17-dev.tar.lzma && \
tar --lzma -C / -xf apr-1.4.5-1-msys-1.0.17-doc.tar.lzma && \
tar --lzma -C / -xf apr-1.4.5-1-msys-1.0.17-lic.tar.lzma && \
tar --lzma -C / -xf libapr-1.4.5-1-msys-dll-1-0.tar.lzma

Install msys-apr-util

Run:

mkdir -p /src/msys/apr-util-1.3.12-3 && \
cd /src/msys/apr-util-1.3.12-3 && \
wget -O apr-util-1.3.12-3-msys-1.0.17-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/msys/apr-util/1.3.12-3/apr-util-1.3.12-3-msys-1.0.17-src.tar.lzma && \
tar --lzma -C /src/msys/apr-util-1.3.12-3/ -xf apr-util-1.3.12-3-msys-1.0.17-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C / -xf apr-util-1.3.12-3-msys-1.0.17-dev.tar.lzma && \
tar --lzma -C / -xf apr-util-1.3.12-3-msys-1.0.17-doc.tar.lzma && \
tar --lzma -C / -xf apr-util-1.3.12-3-msys-1.0.17-lic.tar.lzma && \
tar --lzma -C / -xf libapr-util-1.3.12-3-msys-dll-1-0.tar.lzma

Install msys-neon

Run:

mkdir -p /src/msys/neon-0.29.5-1 && \
cd /src/msys/neon-0.29.5-1 && \
wget -O neon-0.29.5-1-msys-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/msys/neon/0.29.5-1/neon-0.29.5-1-msys-src.tar.lzma && \
tar --lzma -C /src/msys/neon-0.29.5-1/ -xf neon-0.29.5-1-msys-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C / -xf neon-0.29.5-1-msys-dev.tar.lzma && \
tar --lzma -C / -xf neon-0.29.5-1-msys-doc.tar.lzma && \
tar --lzma -C / -xf neon-0.29.5-1-msys-lic.tar.lzma && \
tar --lzma -C / -xf neon-0.29.5-1-msys-lang.tar.lzma && \
tar --lzma -C / -xf libneon-0.29.5-1-msys-dll-27.tar.lzma

Install msys-pcre

Run:

mkdir -p /src/msys/pcre-8.30-1 && \
cd /src/msys/pcre-8.30-1 && \
wget -O pcre-8.30-1-msys-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/msys/pcre/8.30-1/pcre-8.30-1-msys-src.tar.lzma && \
tar --lzma -C /src/msys/pcre-8.30-1/ -xf pcre-8.30-1-msys-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C / -xf pcre-8.30-1-msys-bin.tar.lzma && \
tar --lzma -C / -xf pcre-8.30-1-msys-dev.tar.lzma && \
tar --lzma -C / -xf pcre-8.30-1-msys-doc.tar.lzma && \
tar --lzma -C / -xf pcre-8.30-1-msys-lic.tar.lzma && \
tar --lzma -C / -xf libpcre-8.30-1-msys-dll-0.tar.lzma

Install msys-swig

Run:

mkdir -p /src/msys/swig-2.0.4-1 && \
cd /src/msys/swig-2.0.4-1 && \
wget -O swig-2.0.4-1-msys-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/msys/swig/2.0.4-1/swig-2.0.4-1-msys-src.tar.lzma && \
tar --lzma -C /src/msys/swig-2.0.4-1/ -xf swig-2.0.4-1-msys-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C / -xf swig-2.0.4-1-msys-bin.tar.lzma && \
tar --lzma -C / -xf swig-2.0.4-1-msys-doc.tar.lzma && \
tar --lzma -C / -xf swig-2.0.4-1-msys-lic.tar.lzma

Install msys-subversion

Run:

mkdir -p /src/msys/subversion-1.6.17-2 && \
cd /src/msys/subversion-1.6.17-2 && \
wget -O subversion-1.6.17-2-msys-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/msys/subversion/1.6.17-2/subversion-1.6.17-2-msys-src.tar.lzma && \
tar --lzma -C /src/msys/subversion-1.6.17-2/ -xf subversion-1.6.17-2-msys-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C / -xf subversion-1.6.17-2-msys-bin.tar.lzma && \
tar --lzma -C / -xf libsubversion-1.6.17-2-msys-dll-1-0.tar.lzma && \
tar --lzma -C / -xf subversion-1.6.17-2-msys-dev.tar.lzma && \
tar --lzma -C / -xf subversion-1.6.17-2-msys-perl.tar.lzma && \
tar --lzma -C / -xf subversion-1.6.17-2-msys-lang.tar.lzma && \
tar --lzma -C / -xf subversion-1.6.17-2-msys-doc.tar.lzma && \
tar --lzma -C / -xf subversion-1.6.17-2-msys-lic.tar.lzma

Install msys-gperf

Run:

mkdir -p /src/msys/gperf-3.0.4-1 && \
cd /src/msys/gperf-3.0.4-1 && \
wget -O gperf-3.0.4-1-msys-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/msys/gpref/3.0.4-1/gperf-3.0.4-1-msys-src.tar.lzma && \
tar --lzma -C /src/msys/gperf-3.0.4-1/ -xf gperf-3.0.4-1-msys-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C / -xf gperf-3.0.4-1-msys-bin.tar.lzma && \
tar --lzma -C / -xf gperf-3.0.4-1-msys-doc.tar.lzma && \
tar --lzma -C / -xf gperf-3.0.4-1-msys-lic.tar.lzma

Close MSys developer shell

Close the shell window, or type in the

exit

command.

You won't need MSys developer shell anymore.

Run MinGW shell

Run

MSYSDIR/msys.bat

(note the absence of the "MSYS" argument for msys.bat)

Install tcl

Run

mkdir -p /src/mingw/tcl-8.5.9-0RC1 && \
cd /src/mingw/tcl-8.5.9-0RC1 && \
wget -O tcl-8.5.9-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/tcl/8.5.9-0RC1/tcl-8.5.9-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/tcl-8.5.9-0RC1/ -xf tcl-8.5.9-1-mingw32-src.tar.lzma && \
cd /src/mingw/tcl-8.5.9-0RC1/tcl8.5.9/mingwPORT && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf tcl-8.5.9-1-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf tcl-8.5.9-1-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf tcl-8.5.9-1-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf tcl-8.5.9-1-mingw32-lic.tar.lzma

Install tk

Run

mkdir -p /src/mingw/tk-8.5.9-0RC2 && \
cd /src/mingw/tk-8.5.9-0RC2 && \
wget -O tk-8.5.9-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/tk/8.5.9-0RC2/tk-8.5.9-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/tk-8.5.9-0RC2/ -xf tk-8.5.9-1-mingw32-src.tar.lzma && \
cd /src/mingw/tk-8.5.9-0RC2/tk8.5.9/mingwPORT && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf tk-8.5.9-1-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf tk-8.5.9-1-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf tk-8.5.9-1-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf tk-8.5.9-1-mingw32-lic.tar.lzma

Install openssl

Run

mkdir -p /src/mingw/openssl-1.0.1-1 && \
cd /src/mingw/openssl-1.0.1-1 && \
wget -O openssl-1.0.1-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/openssl/1.0.1-1/openssl-1.0.1-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/openssl-1.0.1-1/ -xf openssl-1.0.1-1-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf openssl-1.0.1-1-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf libopenssl-1.0.1-1-mingw32-dll-100.tar.lzma && \
tar --lzma -C /mingw/ -xf openssl-1.0.1-1-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf openssl-1.0.1-1-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf openssl-1.0.1-1-mingw32-lic.tar.lzma

Install curl

Run

mkdir -p /src/mingw/curl-7.21.4-1 && \
cd /src/mingw/curl-7.21.4-1 && \
wget -O curl-7.21.4-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/curl/7.21.4-1/curl-7.21.4-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/curl-7.21.4-1/ -xf curl-7.21.4-1-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf curl-7.21.4-1-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf libcurl-7.21.4-1-mingw32-dll-4.tar.lzma && \
tar --lzma -C /mingw/ -xf curl-7.21.4-1-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf curl-7.21.4-1-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf curl-7.21.4-1-mingw32-lic.tar.lzma

Install libxml2

Run

mkdir -p /src/mingw/libxml2-2.7.8-2 && \
cd /src/mingw/libxml2-2.7.8-2 && \
wget -O libxml2-2.7.8-2-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/libxml2/2.7.8-2/libxml2-2.7.8-2-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/libxml2-2.7.8-2/ -xf libxml2-2.7.8-2-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf libxml2-2.7.8-2-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf libxml2-2.7.8-2-mingw32-dll-2.tar.lzma && \
tar --lzma -C /mingw/ -xf libxml2-2.7.8-2-mingw32-dev.tar.lzma && \
tar --lzma -C / -xf libxml2-2.7.8-2-msys-1.0.17-shell.tar.lzma && \
tar --lzma -C /mingw/ -xf libxml2-2.7.8-2-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf libxml2-2.7.8-2-mingw32-lic.tar.lzma && \
. /etc/profile.d/xml_catalog.sh

Install libgpg-error

Run

mkdir -p /src/mingw/libgpg-error-1.10-0RC2 && \
cd /src/mingw/libgpg-error-1.10-0RC2 && \
wget -O libgpg-error-1.10-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/libgpg-error/1.10-0RC2/libgpg-error-1.10-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/libgpg-error-1.10-0RC2/ -xf libgpg-error-1.10-1-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf libgpg-error-1.10-1-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf libgpg-error-1.10-1-mingw32-dll-0.tar.lzma && \
tar --lzma -C /mingw/ -xf libgpg-error-1.10-1-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf libgpg-error-1.10-1-mingw32-lang.tar.lzma && \
tar --lzma -C /mingw/ -xf libgpg-error-1.10-1-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf libgpg-error-1.10-1-mingw32-lic.tar.lzma

Install libgcrypt

Run

mkdir -p /src/mingw/libgcrypt-1.5.0-1 && \
cd /src/mingw/libgcrypt-1.5.0-1 && \
wget -O libgcrypt-1.5.0-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/libgcrypt/1.5.0-1/libgcrypt-1.5.0-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/libgcrypt-1.5.0-1/ -xf libgcrypt-1.5.0-1-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf libgcrypt-1.5.0-1-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf libgcrypt-1.5.0-1-mingw32-dll-11.tar.lzma && \
tar --lzma -C /mingw/ -xf libgcrypt-1.5.0-1-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf libgcrypt-1.5.0-1-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf libgcrypt-1.5.0-1-mingw32-lic.tar.lzma

Install libxslt

Run

mkdir -p /src/mingw/libxslt-1.1.26-1 && \
cd /src/mingw/libxslt-1.1.26-1 && \
wget -O libxslt-1.1.26-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/libxslt/1.1.26-1/libxslt-1.1.26-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/libxslt-1.1.26-1/ -xf libxslt-1.1.26-1-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf libxslt-1.1.26-1-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf libxslt-1.1.26-1-mingw32-dll-0.tar.lzma && \
tar --lzma -C /mingw/ -xf libxslt-1.1.26-1-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf libxslt-1.1.26-1-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf libxslt-1.1.26-1-mingw32-lic.tar.lzma

Install getopt

Run

mkdir -p /src/mingw/getopt-1.1.4-1 && \
cd /src/mingw/getopt-1.1.4-1 && \
wget -O getopt-1.1.4-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/getopt/1.1.4-1/getopt-1.1.4-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/getopt-1.1.4-1/ -xf getopt-1.1.4-1-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf getopt-1.1.4-1-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf getopt-1.1.4-1-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf getopt-1.1.4-1-mingw32-lic.tar.lzma

Install xmlto

Run

mkdir -p /src/mingw/xmlto-0.0.25-1 && \
cd /src/mingw/xmlto-0.0.25-1 && \
wget -O xmlto-0.0.25-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/xmlto/0.0.25-1/xmlto-0.0.25-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/xmlto-0.0.25-1/ -xf xmlto-0.0.25-1-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf xmlto-0.0.25-1-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf xmlto-0.0.25-1-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf xmlto-0.0.25-1-mingw32-lic.tar.lzma

Install asciidoc

Run

mkdir -p /src/mingw/asciidoc-8.6.7-1 && \
cd /src/mingw/asciidoc-8.6.7-1 && \
wget -O asciidoc-8.6.7-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/asciidoc/8.6.7-1/asciidoc-8.6.7-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/asciidoc-8.6.7-1/ -xf asciidoc-8.6.7-1-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf asciidoc-8.6.7-1-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf asciidoc-8.6.7-1-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf asciidoc-8.6.7-1-mingw32-lic.tar.lzma

Install docbook-xml-4.1.2

Run

mkdir -p /src/mingw/docbook-xml-4.1.2-1 && \
cd /src/mingw/docbook-xml-4.1.2-1 && \
wget -O docbook-xml-4.1.2-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/docbook-xml/4.1.2-1/docbook-xml-4.1.2-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/docbook-xml-4.1.2-1/ -xf docbook-xml-4.1.2-1-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf docbook-xml-4.1.2-1-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf docbook-xml-4.1.2-1-mingw32-doc.tar.lzma && \
/mingw/var/lib/mingw-get/scripts/docbook-xml-4.1.2-1-post-install.sh

Install docbook-xml-4.3

Run

mkdir -p /src/mingw/docbook-xml-4.3-2 && \
cd /src/mingw/docbook-xml-4.3-2 && \
wget -O docbook-xml-4.3-2-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/docbook-xml/4.3-2/docbook-xml-4.3-2-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/docbook-xml-4.3-2/ -xf docbook-xml-4.3-2-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf docbook-xml-4.3-2-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf docbook-xml-4.3-2-mingw32-doc.tar.lzma && \
/mingw/var/lib/mingw-get/scripts/docbook-xml-4.3-2-post-install.sh

Install docbook-xml-4.5

Run

mkdir -p /src/mingw/docbook-xml-4.5-1 && \
cd /src/mingw/docbook-xml-4.5-1 && \
wget -O docbook-xml-4.5-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/docbook-xml/4.5-1/docbook-xml-4.5-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/docbook-xml-4.5-1/ -xf docbook-xml-4.5-1-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf docbook-xml-4.5-1-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf docbook-xml-4.5-1-mingw32-doc.tar.lzma && \
/mingw/var/lib/mingw-get/scripts/docbook-xml-4.5-1-post-install.sh

Install docbook-xsl

Run

mkdir -p /src/mingw/docbook-xsl-1.76.1-2 && \
cd /src/mingw/docbook-xsl-1.76.1-2 && \
wget -O docbook-xsl-1.76.1-2-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/docbook-xsl/1.76.1-2/docbook-xsl-1.76.1-2-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/docbook-xsl-1.76.1-2/ -xf docbook-xsl-1.76.1-2-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf docbook-xsl-1.76.1-2-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf docbook-xsl-1.76.1-2-mingw32-doc.tar.lzma && \
/mingw/var/lib/mingw-get/scripts/docbook-xsl-1.76.1-2-post-install.sh

Install git

Run

mkdir -p /src/mingw/git-1.7.4-2 && \
cd /src/mingw/git-1.7.4-2 && \
wget -O git-1.7.4-2-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/git/1.7.4-2/git-1.7.4-2-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/git-1.7.4-2/ -xf git-1.7.4-2-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf git-1.7.4-2-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf git-1.7.4-2-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf git-1.7.4-2-mingw32-lic.tar.lzma && \
tar --lzma -C / -xf git-1.7.4-2-msys-1.0.17-shell.tar.lzma

Fixed git line-endings

mingw-git comes with a default config file that sets autocrls=false.

GStreamer does include files that are CRLFed natively. If you set autocrlf=true, git will always detect these files as modified, thwarting your development process.

Thus, you should always use text editors that:

Notepad and Wordpad won't cut it - Notepad can't read LFs, Wordpad overwrites a file with CRLFs. OpenOffice.org Writer (in case you're wondering) will try to insert UTF-8 BOM in a file that doesn't have it (so it doesn't cut either). So, you should look for specialized editors for programming. I'm using Far Manager's built-in editor - it satisfies all requirements.

Install gtk-doc

Run

mkdir -p /src/mingw/gtk-doc-1.18-1 && \
cd /src/mingw/gtk-doc-1.18-1 && \
wget -O gtk-doc-1.18-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/gtk-doc/1.18-1/gtk-doc-1.18-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/gtk-doc-1.18-1/ -xf gtk-doc-1.18-1-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf gtk-doc-1.18-1-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf gtk-doc-1.18-1-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf gtk-doc-1.18-1-mingw32-lic.tar.lzma

Install automake-1.11

Run

mkdir -p /src/mingw/automake-1.11-1.11.3-1 && \
cd /src/mingw/automake-1.11-1.11.3-1 && \
wget -O automake-1.11-1.11.3-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/automake-1.11/1.11.3-1/automake-1.11-1.11.3-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/automake-1.11-1.11.3-1/ -xf automake-1.11-1.11.3-1-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf automake-1.11-1.11.3-1-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf automake-1.11-1.11.3-1-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf automake-1.11-1.11.3-1-mingw32-lic.tar.lzma

Install libffi

Run

mkdir -p /src/mingw/libffi-3.0.10-1 && \
cd /src/mingw/libffi-3.0.10-1 && \
wget -O libffi-3.0.10-1-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/libffi/3.0.10-1/libffi-3.0.10-1-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/libffi-3.0.10-1/ -xf libffi-3.0.10-1-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf libffi-3.0.10-1-mingw32-dll-5.tar.lzma && \
tar --lzma -C /mingw/ -xf libffi-3.0.10-1-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf libffi-3.0.10-1-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf libffi-3.0.10-1-mingw32-lic.tar.lzma

Install glib-2.0

Run

mkdir -p /src/mingw/glib-2.0-2.32.0-2 && \
cd /src/mingw/glib-2.0-2.32.0-2 && \
wget -O glib-2.0-2.32.0-2-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/glib-2.0/2.32.0-2/glib-2.0-2.32.0-2-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/glib-2.0-2.32.0-2/ -xf glib-2.0-2.32.0-2-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf glib-2.0-2.32.0-2-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf libglib-2.0-2.32.0-2-mingw32-dll-0.tar.lzma && \
tar --lzma -C /mingw/ -xf glib-2.0-2.32.0-2-mingw32-dev.tar.lzma && \
tar --lzma -C / -xf glib-2.0-2.32.0-2-msys-1.0.17-completion.tar.lzma && \
tar --lzma -C /mingw/ -xf glib-2.0-2.32.0-2-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf glib-2.0-2.32.0-2-mingw32-lang.tar.lzma && \
tar --lzma -C /mingw/ -xf glib-2.0-2.32.0-2-mingw32-lic.tar.lzma

Install popt

Run

mkdir -p /src/mingw/popt-1.16-2 && \
cd /src/mingw/popt-1.16-2 && \
wget -O popt-1.16-2-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/popt/1.16-2/popt-1.16-2-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/popt-1.16-2/ -xf popt-1.16-2-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf libpopt-1.16-2-mingw32-dll-0.tar.lzma && \
tar --lzma -C /mingw/ -xf popt-1.16-2-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf popt-1.16-2-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf popt-1.16-2-mingw32-lang.tar.lzma && \
tar --lzma -C /mingw/ -xf popt-1.16-2-mingw32-lic.tar.lzma

Install pkg-config

Run

mkdir -p /src/mingw/pkg-config-0.26-2 && \
cd /src/mingw/pkg-config-0.26-2 && \
wget -O pkg-config-0.26-2-mingw32-src.tar.lzma \
http://lrn.no-ip.info/other/mingw/mingw32/pkg-config/0.26-2/pkg-config-0.26-2-mingw32-src.tar.lzma && \
tar --lzma -C /src/mingw/pkg-config-0.26-2/ -xf pkg-config-0.26-2-mingw32-src.tar.lzma && \
./pkgbuild.sh && \
tar --lzma -C /mingw/ -xf pkg-config-0.26-2-mingw32-bin.tar.lzma && \
tar --lzma -C /mingw/ -xf pkg-config-0.26-2-mingw32-dev.tar.lzma && \
tar --lzma -C /mingw/ -xf pkg-config-0.26-2-mingw32-doc.tar.lzma && \
tar --lzma -C /mingw/ -xf pkg-config-0.26-2-mingw32-lic.tar.lzma

Create libtool library files

If you are planning to build directsoundsink and/or directdrawsink (of course you do, dsoundsink is the only audio sink that works on Windows!), make sure you have MINGWDIR\lib\libdxerr9.la and MINGWDIR\lib\libdxguid.la . If you don't, download libdxerr9.la and libdxguid.la and place into MINGWDIR\lib

Remove .la files

Search through /mingw/lib/ directory and find all .la files that do not have corresponding .dll.a files.

These should be, at least, libopcodes.la, libbfd.la, libdxerr9.la and libdxguid.la.

Delete all other .la files (i.e. the ones that do have matching .dll.a files).

Never install .la files alongside .dll.a files.