All pastes #748061 Raw Edit

Something

public text v1 · immutable
#748061 ·published 2007-10-24 15:36 UTC
rendered paste body
export PREFIX=/usr/local/cross 
tar xvfz binutils-2.13.1.tar.gz
mkdir build-binutils
cd build-binutils
../binutils-2.13.1/configure --host=i686-pc-linux-gnu
   --build=i686-pc-linux-gnu --target=i686-pc-mingw32 
   --prefix=$PREFIX

make
make install

cd ..
export PATH=$PREFIX/bin:$PATH
tar xvfz mingw-whatever.tar.gz

cp -r ming-whatever/include $PREFIX/i686-pc-mingw32/include
(you want standard C headers for mingw in $PREFIX/target/include)

tar xzf w32pi-whatever
cp -dpR w32api-whatever/include/* $PREFIX/$TARGET/include


tar xvfz gcc-3.2.1.tar.gz
mkdir build-gcc
cd build-gcc
../gcc-3.2.1/configure --prefix=$PREFIX --host=i686-pc-linux-gnu 
--build=i686-pc-linux-gnu --target=i686-pc-mingw32 --without-headers 
--with-newlib --disable-threads --enable-languages=c

make 
make install

cd..
tar xvfz w32api-2.1.tar.gz
mkdir build-w32api
cd build-w32api
../w32api-2.1/configure --prefix=$PREFIX/i686-pc-mingw32 
--build=i686-pc-linux-gnu --host=i686-pc-mingw32

make 
make install
(you should now have windows header files in prefix/target/include and import 
libs in prefix/target/lib)

cd ..
mkdir build-mingw
cd build-mingw
../mingw-whatever/configure --build=i686-pc-linux-gnu --host=i686-pc-mingw32 
--prefix=$PREFIX/i686-pc-mingw32

I had to tweak the mingw Makefiles here (3 in total) because the CFLAGS did 
not include a dirtectory containing the required windows header files; adding 
-I$(PREFIX)/i686-pc-mingw32/include to INCLUDES did the trick

make
make install

cd ../build-gcc
rm -rf *
../gcc-3.2.1/configure --prefix=$PREFIX --host=i686-pc-linux-gnu 
--build=i686-pc-linux-gnu --target=i686-pc-mingw32 --enable-threads 
--enable-languages=c,c++ --disable-long-long

make
make install

I had to specify --disable-long-long because I get undefined symbols 
(regarding string-to-long-long conversion) in the resulting libstdc++.