3. Подготовка к сборке с нуля Теперь нам нужно настроить окружение для работы с MINGW и GCC a) Забираем mingw-runtime, w32api, binutils и gcc [code="MINGW32"] wget -c http://sourceforge.net/projects/mingw/files/MinGW%20Runtime/Current%20Release_%20mingwrt-3.15.2/mingwrt-3.15.2-mingw32-dev.tar.gz/download wget -c http://sourceforge.net/projects/mingw/files/MinGW%20API%20for%20MS-Windows/Current%20Release_%20w32api-3.13/w32api-3.13-mingw32-dev.tar.gz/download wget -c http://sourceforge.net/projects/mingw/files/GNU%20Binutils/Current%20Release_%20GNU%20binutils-2.19.1/binutils-2.19.1-mingw32-bin.tar.gz/download wget -c http://sourceforge.net/projects/mingw/files/GCC%20Version%203/Current%20Release_%20gcc-3.4.5-20060117-3/gcc-core-3.4.5-20060117-3.tar.gz/download wget -c http://sourceforge.net/projects/mingw/files/GCC%20Version%203/Current%20Release_%20gcc-3.4.5-20060117-3/gcc-g%2B%2B-3.4.5-20060117-3.tar.gz/download [/code] b) Готовим систему для работы со скачаным MINGW [code="MINGW32"] junction /mingw /d/mingw/mingw_first cd /mingw cp ~/mingwrt-3.15.2-mingw32-dev.tar.gz . tar xvfz mingwrt-3.15.2-mingw32-dev.tar.gz rm -f mingwrt-3.15.2-mingw32-dev.tar.gz cp ~/w32api-3.13-mingw32-dev.tar.gz . tar xvfz w32api-3.13-mingw32-dev.tar.gz rm -f w32api-3.13-mingw32-dev.tar.gz cp ~/binutils-2.19.1-mingw32-bin.tar.gz . tar xvfz binutils-2.19.1-mingw32-bin.tar.gz rm -f binutils-2.19.1-mingw32-bin.tar.gz cp ~/gcc-core-3.4.5-20060117-3.tar.gz . tar xvfz gcc-core-3.4.5-20060117-3.tar.gz rm -f gcc-core-3.4.5-20060117-3.tar.gz cp ~/"gcc-g++-3.4.5-20060117-3.tar.gz" . tar xvfz "gcc-g++-3.4.5-20060117-3.tar.gz" rm -f "gcc-g++-3.4.5-20060117-3.tar.gz" [/code] Проверяем, что у нас получилось [code="MINGW32"] $ gcc -v Reading specs from D:/mingw/msys/mingw/bin/../lib/gcc/mingw32/3.4.5/specs Configured with: ../gcc-3.4.5-20060117-3/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target= mingw32 --prefix=/mingw --enable-threads --disable-nls --enable-languages=c,c++,f77,ada,objc,java --disable-win32- registry --disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-java-gc =boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug Thread model: win32 gcc version 3.4.5 (mingw-vista special r3) [/code] Сейчас займёмся подготовкой исходников для сборки своей системы MINGW. Для этого нам понадобятся исходники: mingw-runtime w32api gmp-4.3.1 mpfr-2.4.1 binutils zlib-1.2.3 ppl-0.10.2 cloog-ppl-0.15.4 gcc 4.4.1 Готовим структуру каталогов [code="MINGW32"] cd ~ mkdir wrk; cd wrk [/code] a) mingw-runtime и w32api [code="MINGW32"] mkdir -p ~/wrk/mingw-rt cd ~/wrk/mingw-rt # Для первого раза нужно выполнить логин с пустым паролем cvs -d:pserver:anoncvs@cygwin.com:/cvs/src login cvs -z3 -d:pserver:anoncvs@cygwin.com:/cvs/src co -P winsup # Для обновления дерева исходников # cvs -z3 -d:pserver:anoncvs@cygwin.com:/cvs/src update [/code] b) gmp-4.3.1 [code="MINGW32"] cd ~/wrk wget -c ftp://ftp.gmplib.org/pub/gmp-4.3.1/gmp-4.3.1.tar.bz2 tar xvfj gmp-4.3.1.tar.bz2 mv gmp-4.3.1 src mkdir gmp-4.3.1 mv src gmp-4.3.1/ [/code] c) mpfr-2.4.1 [code="MINGW32"] cd ~/wrk wget -c ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.1.tar.bz2 tar xvfj mpfr-2.4.1.tar.bz2 mv mpfr-2.4.1 src mkdir mpfr-2.4.1 mv src mpfr-2.4.1/ [/code] d) zlib-1.2.3 [code="MINGW32"] cd ~/wrk wget -c http://www.zlib.net/zlib-1.2.3.tar.bz2 #wget -c http://www.gzip.org/zlib/zlib-1.2.3.tar.bz2 tar xvfj zlib-1.2.3.tar.bz2 mv zlib-1.2.3 src mkdir zlib-1.2.3 mv src zlib-1.2.3/ [/code] e) ppl-0.10.2 [code="MINGW32"] cd ~/wrk wget -c ftp://gcc.gnu.org/pub/gcc/infrastructure/ppl-0.10.2.tar.gz tar xvfz ppl-0.10.2.tar.gz mv ppl-0.10.2 src mkdir ppl-0.10.2 mv src ppl-0.10.2/ [/code] f) cloog-ppl-0.15.4 [code="MINGW32"] cd ~/wrk wget -c ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-ppl-0.15.4.tar.gz tar xvfz cloog-ppl-0.15.4.tar.gz mv cloog-ppl-0.15.4 src mkdir cloog-ppl-0.15.4 mv src cloog-ppl-0.15.4/ [/code] g) binutils [code="MINGW32"] mkdir -p ~/wrk/binutils cd ~/wrk/binutils # Для первого раза нужно выполнить логин с пустым паролем cvs -d:pserver:anoncvs@sourceware.org:/cvs/src login cvs -z3 -d:pserver:anoncvs@sourceware.org:/cvs/src co -P binutils # Для обновления дерева исходников # cvs -z3 -d:pserver:anoncvs@sourceware.org:/cvs/src update [/code] h) gcc 4.4.1 [code="MINGW32"] cd ~/wrk wget -c ftp://ftp.gwdg.de/pub/misc/gcc/releases/gcc-4.4.1/gcc-core-4.4.1.tar.bz2 wget -c ftp://ftp.gwdg.de/pub/misc/gcc/releases/gcc-4.4.1/gcc-g++-4.4.1.tar.bz2 tar xvfj gcc-core-4.4.1.tar.bz2 tar xvfj gcc-g++-4.4.1.tar.bz2 mv gcc-4.4.1 src mkdir gcc-4.4.1 mv src gcc-4.4.1/ [/code] i) mingw-w64 [code="MINGW32"] mkdir -p ~/wrk/mingw-w64/src cd ~/wrk/mingw-w64 svn checkout "https://mingw-w64.svn.sourceforge.net/svnroot/mingw-w64/trunk" ./src [/code] Теперь всё готово к сборке своей затюненой системы MINGW для компиляции 32 и 64-битных приложений.