4. Compiling 32-bit Mingw So, begin ... a) Preparation Check mounting of all necessary directories [code="MINGW32"] junction -d /mingw junction /mingw /d/mingw/mingw_first junction -d /mingw_new junction /mingw_new /d/mingw/mingw_new [/code] b) mingw-runtime è w32api [code="MINGW32"] # mingw-runtime mkdir -p ~/wrk/mingw-rt/r32 rm -rf ~/wrk/mingw-rt/r32/* cd ~/wrk/mingw-rt/r32 ../src/winsup/mingw/configure \ --prefix=/mingw_new \ --libdir=/mingw_new/i686-pc-mingw32/lib \ --includedir=/mingw_new/i686-pc-mingw32/include make make install # w32api mkdir -p ~/wrk/mingw-rt/w32 rm -rf ~/wrk/mingw-rt/w32/* cd ~/wrk/mingw-rt/w32 ../src/winsup/w32api/configure \ --prefix=/mingw_new \ --libdir=/mingw_new/i686-pc-mingw32/lib \ --includedir=/mingw_new/i686-pc-mingw32/include make make install # Stripping debug information strip -p --strip-debug --strip-unneeded /mingw_new/bin/mingwm10.dll for i in `ls /mingw_new/i686-pc-mingw32/lib/*.o`; do strip -p --strip-debug "$i"; done for i in `ls /mingw_new/i686-pc-mingw32/lib/*.a`; do strip -p --strip-debug "$i"; done # cleanup cd ~/wrk rm -rf ~/wrk/mingw-rt/r32 rm -rf ~/wrk/mingw-rt/w32 [/code] c) gmp-4.2.4 [code="MINGW32"] mkdir -p ~/wrk/gmp-4.3.1/32 rm -rf ~/wrk/gmp-4.3.1/32/* cd ~/wrk/gmp-4.3.1/32 ABI="32" \ ../src/configure --disable-shared --enable-static --with-gnu-ld --disable-debug --disable-rpath \ --enable-cxx --enable-fft \ --prefix=/mingw_new \ --libdir=/mingw_new/i686-pc-mingw32/lib \ --includedir=/mingw_new/i686-pc-mingw32/include make all install mv -f /mingw_new/include/* /mingw_new/i686-pc-mingw32/include rm -rf /mingw_new/include echo "Stripping /mingw_new/i686-pc-mingw32/lib/libgmp.a" strip -p --strip-debug /mingw_new/i686-pc-mingw32/lib/libgmp.a echo "Stripping /mingw_new/i686-pc-mingw32/lib/libgmpxx.a" strip -p --strip-debug /mingw_new/i686-pc-mingw32/lib/libgmpxx.a # cleanup cd ~/wrk rm -rf ~/wrk/gmp-4.3.1/32 [/code] d) mpfr-2.4.1 [code="MINGW32"] rm -rf ~/wrk/mpfr-2.4.1/32 mkdir -p ~/wrk/mpfr-2.4.1/32 cd ~/wrk/mpfr-2.4.1/32 ../src/configure \ --prefix=/mingw_new \ --libdir=/mingw_new/i686-pc-mingw32/lib \ --includedir=/mingw_new/i686-pc-mingw32/include \ --build=${c_arch32} \ --with-gmp=/mingw_new/i686-pc-mingw32 \ --disable-shared \ --enable-static \ --with-gnu-ld make all install echo "Stripping /mingw_new/i686-pc-mingw32/lib/libmpfr.a" strip -p --strip-debug /mingw_new/i686-pc-mingw32/lib/libmpfr.a # cleanup cd ~/wrk rm -rf ~/wrk/mpfr-2.4.1/32 [/code] e) ppl-0.10.2 [code="MINGW32"] mkdir -p ~/wrk/ppl-0.10.2/32 rm -rf ~/wrk/ppl-0.10.2/32/* cd ~/wrk/ppl-0.10.2/32 ../src/configure \ --prefix=/mingw_new \ --libdir=/mingw_new/i686-pc-mingw32/lib \ --includedir=/mingw_new/i686-pc-mingw32/include \ --build=i686-pc-mingw32 \ --host=i686-pc-mingw32 \ --enable-optimization=speed \ --enable-arch=pentium2 \ --disable-rpath \ --disable-shared \ --enable-static \ --with-gnu-ld make all install echo "Stripping /mingw_new/i686-pc-mingw32/lib/libppl.a" strip -p --strip-debug /mingw_new/i686-pc-mingw32/lib/libppl.a echo "Stripping /mingw_new/i686-pc-mingw32/lib/libppl_c.a" strip -p --strip-debug /mingw_new/i686-pc-mingw32/lib/libppl_c.a # cleanup cd ~/wrk rm -rf ~/wrk/ppl-0.10.2/32 [/code] f) cloog-ppl-0.15.4 [code="MINGW32"] rm -rf ~/wrk/cloog-ppl-0.15.4/32 mkdir -p ~/wrk/cloog-ppl-0.15.4/32 cd ~/wrk/cloog-ppl-0.15.4/32 mv -f ../src/configure.in ../src/configure.in.original mv -f ../src/configure ../src/configure.original sed -e "s/-lppl -lgmpxx/-lppl -lgmpxx -lstdc++/" ../src/configure.in.original > ../src/configure.in sed -e "s/-lppl -lgmpxx/-lppl -lgmpxx -lstdc++/" ../src/configure.original > ../src/configure ../src/configure \ --prefix=/mingw_new \ --libdir=/mingw_new/i686-pc-mingw32/lib \ --includedir=/mingw_new/i686-pc-mingw32/include \ --with-gmp=/mingw_new/i686-pc-mingw32 \ --with-ppl=/mingw_new/i686-pc-mingw32 \ --build=i686-pc-mingw32 \ --host=i686-pc-mingw32 \ --disable-shared \ --enable-static \ --with-bits=gmp make all install mv -f ../src/configure.in.original ../src/configure.in mv -f ../src/configure.original ../src/configure echo "Stripping /mingw_new/i686-pc-mingw32/lib/libcloog.a" strip -p --strip-debug /mingw_new/i686-pc-mingw32/lib/libcloog.a echo "Stripping /mingw_new/bin/cloog.exe" strip -p --strip-debug --strip-unneeded /mingw_new/bin/cloog.exe # cleanup cd ~/wrk rm -rf ~/wrk/cloog-ppl-0.15.4/32 [/code] g) zlib-1.2.3 [code="MINGW32"] cd ~/wrk/zlib-1.2.3/src make distclean rm -f ./*.exe ./configure \ --prefix=/mingw_new \ --libdir=/mingw_new/i686-pc-mingw32/lib \ --includedir=/mingw_new/i686-pc-mingw32/include make all install echo "Stripping /mingw_new/i686-pc-mingw32/lib/libz.a" strip -p --strip-debug /mingw_new/i686-pc-mingw32/lib/libz.a # cleanup make distclean rm -f ./*.exe cd ~/wrk [/code] h) binutils [code="MINGW32"] rm -rf ~/wrk/binutils/32 mkdir -p ~/wrk/binutils/32 cd ~/wrk/binutils/32 ../src/configure \ --prefix=/mingw_new \ --build=i686-pc-mingw32 \ --target=i686-pc-mingw32 \ --libdir=/mingw_new/i686-pc-mingw32/lib \ --includedir=/mingw_new/i686-pc-mingw32/include \ --with-sysroot=/mingw_new \ --with-build-sysroot=/mingw_new \ --enable-targets=i686-pc-mingw32,x86_64-pc-mingw32 \ --with-gmp=/mingw_new/i686-pc-mingw32 \ --with-ppl=/mingw_new/i686-pc-mingw32 \ --with-cloog=/mingw_new/i686-pc-mingw32 \ --with-host-libstdcxx='-lstdc++' \ --enable-static \ --disable-shared \ --disable-nls \ --with-gnu-ld \ --disable-rpath \ --disable-werror \ --enable-64-bit-bfd make all install echo "Stripping /mingw_new/bin/*.exe" strip -p --strip-debug --strip-unneeded /mingw_new/bin/*.exe echo "Stripping /mingw_new/i686-pc-mingw32/bin/*.exe" strip -p --strip-debug --strip-unneeded /mingw_new/i686-pc-mingw32/bin/*.exe echo "Stripping /mingw_new/i686-pc-mingw32/lib/libbfd.a" strip -p --strip-debug /mingw_new/i686-pc-mingw32/lib/libbfd.a echo "Stripping /mingw_new/i686-pc-mingw32/lib/libiberty.a" strip -p --strip-debug /mingw_new/i686-pc-mingw32/lib/libiberty.a echo "Stripping /mingw_new/i686-pc-mingw32/lib/libopcodes.a" strip -p --strip-debug /mingw_new/i686-pc-mingw32/lib/libopcodes.a # cleanup cd ~/wrk rm -rf ~/wrk/binutils/32 [/code] i) gcc 4.4.1 [code="MINGW32"] rm -rf ~/wrk/gcc-4.4.1/32 mkdir -p ~/wrk/gcc-4.4.1/32 cd ~/wrk/gcc-4.4.1/32 mv -f ../src/gcc/version.c ../src/gcc/version.c.original sed -e "s/DEVPHASE REVISION/DEVPHASE \" (x86.generic.Komisar)\" REVISION/" ../src/gcc/version.c.original >../src/gcc/version.c ../src/configure \ --prefix=/mingw_new \ --build=i686-pc-mingw32 \ --target=i686-pc-mingw32 \ --with-sysroot=/mingw_new \ --with-build-sysroot=/mingw_new \ --with-mpfr=/mingw_new/i686-pc-mingw32 \ --with-gmp=/mingw_new/i686-pc-mingw32 \ --with-ppl=/mingw_new/i686-pc-mingw32 \ --with-cloog=/mingw_new/i686-pc-mingw32 \ --with-host-libstdcxx='-lstdc++' \ --disable-shared \ --enable-static \ --enable-threads=win32 \ --enable-languages=c,c++ \ --disable-rpath \ --disable-win32-registry \ --enable-version-specific-runtime-libs \ --with-gnu-ld \ --with-gnu-as \ --with-system-zlib \ --disable-werror \ --disable-nls \ --disable-sjlj-exceptions \ --enable-decimal-float \ --disable-debug \ --enable-wchar_t \ --disable-bootstrap \ --disable-debug \ --disable-libstdcxx-debug junction -d /mingw_new/mingw junction /mingw_new/mingw /mingw_new/i686-pc-mingw32 # Build make all install junction -d /mingw_new/mingw mv -f ../src/gcc/version.c.original ../src/gcc/version.c rm -f /mingw_new/lib/libiberty.a # Stripping strip -p --strip-debug --strip-unneeded /mingw_new/bin/*.exe strip -p --strip-debug --strip-unneeded `find /mingw_new/libexec/gcc/i686-pc-mingw32 -name "*.exe"` strip -p --strip-debug `find /mingw_new/lib/gcc/i686-pc-mingw32 -name "*.o"` strip -p --strip-debug `find /mingw_new/lib/gcc/i686-pc-mingw32 -name "*.a"` # cleanup cd ~/wrk rm -rf ~/wrk/gcc-4.4.1/32 [/code] At this stage we have a working environment for build 32-bit applications.