As explained on GCC page, you need an ARM EABI GCC toolchain to build NXT Improved Firmware. You will also need some tools for the build system.

You can make your own toolchain or you can download ready to use packages, this page will try to help you for this task.

If you have a Linux installed on your computer or running in a virtual machine, this is the easy path. I personally only use Linux, but please complete this page if you can experiment with other platforms.

Linux

Toolchain from CodeSourcery

You can find a prebuilt toolchain at CodeSourcery. Choose the EABI target, then the Linux installer or Linux tarball. Make sure to add the compiler in your PATH.

Read the "Getting Started Guide" if you need instructions for installation.

Tested with NXT Improved Firmware!

Other tools

You will find other needed tools in your Linux distribution. Install the make package if not done already.

You will need a decent text editor or an IDE like Eclipse, KDevelop, Anjuta...

MAC OS X

You can always follow the easy path by installing a Linux in a virtual machine.

Toolchain from NXT Improved Firmware

I provide a prebuilt toolchain for Intel MAC. Follow Step by step instructions.

Tested with NXT Improved Firmware!

Toolchain from YAGARTO

YAGARTO provides a prebuilt toolchain for Intel MAC. It also provides an Eclipse IDE and other build tools.

Follow the instructions on this website, but you do not need JTAG or OpenOCD unless you plan to open your NXT brick to solder a JTAG connector.

Windows

You can always follow the easy path by installing a Linux in a virtual machine.

Toolchain from CodeSourcery

You can find a prebuilt toolchain at CodeSourcery. Choose the EABI target, then the Windows installer.

Read the "Getting Started Guide" if you need instructions for installation.

This toolchain includes GNU Make, so it should be sufficient to build NXT Improved Firmware.

Toolchain from YAGARTO

YAGARTO provides a prebuilt toolchain for windows. It also provides an Eclipse IDE and other build tools.

Follow the instructions on this website, but you do not need JTAG or OpenOCD unless you plan to open your NXT brick to solder a JTAG connector.

Other tools

You will need a decent text editor or an IDE like Eclipse.

Build your own toolchain

If you want to build from sources, you can directly download each needed packages or use the source package at CodeSourcery. In this case, make sure to build an EABI toolchain. There are many websites describing the steps to build the toolchain.

You can use for example James Snyder's Toolchain Builder.

You probably do not want to do this using Windows, this is a long and painful way...

Other toolchains

Feel free to add other toolchains which worked for you.

There is also commercially supported toolchains if you do not want to spend time figuring out how everything works.

However theses toolchains will not work to build NXT Improved Firmware: WinARM, GNUGCC, older YAGARTO, any "arm-elf" toolchain...