Difference between revisions of "Building MINGW-w64"

From ReactOS Wiki
Jump to: navigation, search
(Building binutils)
(Add Mingw-w64 header set)
Line 48: Line 48:
 
Copy the mingw-w64-headers/include directory to /RosBE64/x86_64-w64-mingw32
 
Copy the mingw-w64-headers/include directory to /RosBE64/x86_64-w64-mingw32
  
Create a symlink for gcc.
+
Create a symlinks for gcc.
 
  ln -s /RosBE64/x86_64-w64-mingw32 /RosBE64/mingw'
 
  ln -s /RosBE64/x86_64-w64-mingw32 /RosBE64/mingw'
 
If the /RosBE64/x86_64-w64-mingw32/lib directory doesn't exist yet, create it:
 
mkdir  /RosBE64/x86_64-w64-mingw32/lib
 
 
Create symlink for lib directory, too:
 
 
  ln -s /RosBE64/x86_64-w64-mingw32/lib /RosBE64/x86_64-w64-mingw32/lib64
 
  ln -s /RosBE64/x86_64-w64-mingw32/lib /RosBE64/x86_64-w64-mingw32/lib64
  

Revision as of 10:53, 7 April 2010

... for idiots. This guide is provided for those who have no clue how to compile gcc, but still want to do it. It's a reference, just follow the steps and you get what you want. There's no support for special wishes ;-)

Setting up the build environment

Download and install MSYS. You will need the following packages:

  • binutils-2.20.1-2-mingw32-bin.tar.gz
  • bison-2.4.1-1-msys-1.0.11-bin.tar.lzma
  • coreutils-5.97-2-msys-1.0.11-bin.tar.lzma
  • flex-2.5.35-1-msys-1.0.11-bin.tar.lzma
  • gettext-0.17-1-mingw32-dev.tar.lzma
  • grep-2.5.4-1-msys-1.0.11-bin.tar.lzma
  • sed-4.2.1-1-msys-1.0.11-bin.tar.lzma

...

Download all packages and extract them into c:\MSYS (or similar). You can unpack the .tar.lzma files using the latest version of 7zip.

Getting the sources

Download all the sources into subfolders of /home/YourName/src

  • binutils -> home/YourName/src/binutils
  • gcc-core + gcc-g++ -> home/YourName/src/gcc
  • mingw-w64

Building

Building binutils

Create a build subdirectory for binutils:

cd build
mkdir binutils
cd binutils

From the build directory run the binutils configure script:

../../src/binutils/configure --target=x86_64-w64-mingw32 --with-sysroot=/RosBE64 --prefix=/RosBE64
 --disable-multilib

Now build the whole stuff.

make

Finally install it into the designated directory.

make install

Add Mingw-w64 header set

Copy the mingw-w64-headers/include directory to /RosBE64/x86_64-w64-mingw32

Create a symlinks for gcc.

ln -s /RosBE64/x86_64-w64-mingw32 /RosBE64/mingw'
ln -s /RosBE64/x86_64-w64-mingw32/lib /RosBE64/x86_64-w64-mingw32/lib64

Building gcc-core

Emter into the build directory:

cd ..
mkdir gcc
cd gcc

Now run the configure script:

../../src/gcc/configure --target=x86_64-w64-mingw32 --prefix=/RosBE64 --with-sysroot=/RosBE64 
 --enable-languages=c,c++ --disable-multilib

Compile the gcc-core

make all-gcc

And install it

make install-gcc

Finally add it to the PATH variable.

PATH=$PATH:/RosBE64/bin ; export PATH

Building the crt

Create a build directory.

cd ..
mkdir mingw-w64-crt
cd mingw-w64-crt

Run the configure script

../../src/mingw-w64/mingw-w64-crt/configure --host=x86_64-w64-mingw32 --prefix=/RosBE64 --with-sysroot=/RosBE64

Compile

make

And install

make install

Finally update the "symlink" (which is no more then copying the content) needed for the next step.

ln -s /RosBE64/x86_64-w64-mingw32/lib /RosBE64/x86_64-w64-mingw32/lib64

Building the rest of gcc

Enter into the gcc build directory.

cd ..
cd gcc

And compile the rest.

make
make install