この説明では、CygWinよりも構成の小さいMinGWを使用して環境構築を行います。
MinGWはWindowsで動く実行ファイルを作成するコンパイラで、実機用のコンパイラは別に用意する必要があります。では、なぜMinGWを紹介したかとうと、MinGWと一緒に提供されている、シェルやmakeなどのUNIXのコマンドを提供するMSYSを使用するためです。
MSYSは、以下のサイトからダウンロードします。
http://sourceforge.net/projects/mingw/files/
ダウンロードするのは以下のファイルです。
MSYS-1.0.11.exe
perl-5.6.1_2-1-msys-1.0.11-bin.tar.lzma
libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma
perlはTOPPERSのコンパイルに必要なので併せてダウンロードします。
libcryptはperlで使用しているようなのでこれも必要です。
MSYSはインストーラになっているので、画面に従ってインストールしてください。
この説明では、C:\msysにインストールしました。パスにスペースが入らないようにしましょう。
続いてperlをインストールします。こちらは圧縮ファイルとなっているので、解凍ソフトで解凍します。筆者は7-zipというソフトを使用しました。
解凍先はMSYSをインストールしたフォルダで、この説明ではC:\msysになります。MSYSのbinにperl.exeが入ります。
同様にlibcryptもC:\msys\binにインストールします。
実機であるCQ-STARMはCortex-MというARMのCPUを使用していますので、そのCPU用のコンパイラが必要です。この説明では、TOPPERS/ASPのCQ-STARM版のtarget_user.txtに説明のある通りCodesourcery g++ Liteを使用します。
WinARMのEABI版はコンパイルは出来るのですが、出力ファイルが異常に小さく使用できませんでした。
Codesourcery g++ Liteは以下のサイトからダウンロードします。
http://www.codesourcery.com/gnu_toolchains/arm/download.html
EABI版のファイルをダウンロードします。
こちらもgccまでのパスに空白が入らないようC:\Codesourceryとなるようにインストールします。
コンパイラにパスが通るよう、環境変数を設定します。
では、コンパイラが正しくインストール出来たか確認してみます。
まず、MSYSのコマンドプロンプトを起動します。makeやperl、arm-none-eabi-gccと入力して、以下の表示出れば正しくインストールされました。
$ make --v GNU Make 3.81 Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program built for i686-pc-msys
$ perl -v This is perl, v5.6.1 built for msys Copyright 1987-2001, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using `man perl' or `perldoc perl'. If you have access to the Internet, point your browser at http://www.perl.com/, the Perl Home Page.
$ arm-none-eabi-gcc --v Using built-in specs. Target: arm-none-eabi Configured with: /scratch/julian/2009q3-respin-eabi-lite/src/gcc-4.4/configure - -build=i686-pc-linux-gnu --host=i686-mingw32 --target=arm-none-eabi --enable-thr eads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extr a-sgxxlite-multilibs --with-gnu-as --with-gnu-ld --with-specs='%{O2:%{!fno-remov e-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-l ocal-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --disable-shar ed --disable-lto --with-newlib --with-pkgversion='Sourcery G++ Lite 2009q3-68' - -with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --pref ix=/opt/codesourcery --with-headers=yes --with-sysroot=/opt/codesourcery/arm-non e-eabi --with-build-sysroot=/scratch/julian/2009q3-respin-eabi-lite/install/host -i686-mingw32/arm-none-eabi --with-libiconv-prefix=/scratch/julian/2009q3-respin -eabi-lite/obj/host-libs-2009q3-68-arm-none-eabi-i686-mingw32/usr --with-gmp=/sc ratch/julian/2009q3-respin-eabi-lite/obj/host-libs-2009q3-68-arm-none-eabi-i686- mingw32/usr --with-mpfr=/scratch/julian/2009q3-respin-eabi-lite/obj/host-libs-20 09q3-68-arm-none-eabi-i686-mingw32/usr --with-ppl=/scratch/julian/2009q3-respin- eabi-lite/obj/host-libs-2009q3-68-arm-none-eabi-i686-mingw32/usr --with-host-lib stdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratc h/julian/2009q3-respin-eabi-lite/obj/host-libs-2009q3-68-arm-none-eabi-i686-ming w32/usr --disable-libgomp --enable-poison-system-directories --with-build-time-t ools=/scratch/julian/2009q3-respin-eabi-lite/obj/tools-i686-pc-linux-gnu-2009q3- 68-arm-none-eabi-i686-mingw32/arm-none-eabi/bin --with-build-time-tools=/scratch /julian/2009q3-respin-eabi-lite/obj/tools-i686-pc-linux-gnu-2009q3-68-arm-none-e abi-i686-mingw32/arm-none-eabi/bin Thread model: single gcc version 4.4.1 (Sourcery G++ Lite 2009q3-68)