h8300-elf Makefile
H8のelf版コンパイラの作成に成功しましたが、いちいちコマンドを入力するのがあまりに面倒くさいと思うので、Makefile(一連の処理をまとめたもの)を作成しました。公開します。
やっていることは前回書いたことと同じです。ただし、Windows上のCygwinでこのMakefileを動作させ開発環境を構築するには、wgetとmake、gcc(ネイティブコンパイラ)が必要です。以下の手順をとってください。
『コンパイラ導入方法(Cygwin)』を参考にCygwinを導入します。基本は同じなのですが、
Select Packages[インストールするソフトを選択してください。ここが重要です。All+Develの中にあるgcc: GCC C compilerとgcc-g77: GCC Fortran compilerのNewのところにバージョンが表示されているかどうか確認してください。なければSkipとかなっているところクリックすればバージョンが表示されるはずです。]
のところで、All+Develにあるmake: The GNU version of the 'make' utilityとAll+Webにあるwget: Utility to retrieve files from the WWW via HTTP and FTPもチェックしてバージョンが表示されるようにしてください。
Cygwinがインストールされたら以下の手順を実行してください。
$ cd /usr/local/src
$ wget https://fenrir.naruoka.org/download/embedded/h8devel.makefile
$ make -f h8devel.makefile
これで開発環境が構築されます。
ちなみにですが、開発は秋月の3069FのLANなしモデル(開発環境付)でやっています。このキットに付属の開発環境はh8300-hms(coff)でベースgccが2.95なので、とってもいけていません。開発環境なしモデルを買って、上記の方法で再構築することをお勧めします。
いちおうソースを書いておきます。
Makefile
BUILD_DIR = BUILD_$(TARGET)
BINUTILS = binutils-2.14
GCC = gcc-3.3.2
NEWLIB = newlib-1.11.0
all : binutils gcc newlib
$(BINUTILS).tar.bz2 :
wget http://ftp.gnu.org/gnu/binutils/$(BINUTILS).tar.bz2
$(BINUTILS) : $(BINUTILS).tar.bz2
tar jvxf $(BINUTILS).tar.bz2
$(GCC).tar.gz :
wget ftp://ftp.ring.gr.jp/pub/GNU/gcc/$(GCC).tar.gz
$(GCC) : $(GCC).tar.gz
tar zvxf $(GCC).tar.gz
$(NEWLIB).tar.gz :
wget ftp://sources.redhat.com/pub/newlib/$(NEWLIB).tar.gz
$(NEWLIB) : $(NEWLIB).tar.gz
tar zvxf $(NEWLIB).tar.gz
binutils : $(BINUTILS)
cd $(BINUTILS); \
if ! [ -d $(BUILD_DIR) ]; then mkdir $(BUILD_DIR); fi; \
cd $(BUILD_DIR); \
if ! [ -f Makefile ]; then ../configure --target=$(TARGET); fi; \
make; \
make install
gcc : $(GCC) $(NEWLIB)
cd $(GCC); \
if ! [ -d $(BUILD_DIR) ]; then mkdir $(BUILD_DIR); fi; \
cd $(BUILD_DIR); \
if ! [ -f Makefile ]; then ../configure --target=$(TARGET) --enable-languages="c++" --with-newlib --with-headers=../../$(NEWLIB)/newlib/libc/include; fi; \
make LANGUAGES="c c++"; \
make install
newlib : $(NEWLIB)
cd $(NEWLIB); \
if ! [ -d $(BUILD_DIR) ]; then mkdir $(BUILD_DIR); fi; \
cd $(BUILD_DIR); \
if ! [ -f Makefile ]; then ../configure --target=$(TARGET); fi; \
make; \
make install
あと備考ですが、h8300-elf(elf形式)ではなくh8300-hms(coff形式)を作るにはTARGET=h8300-hmsとすればOKだと思います。binutils、gcc、newlibの組み合わせを変えるには、それぞれBINUTILS、GCC、NEWLIBの値を変えてください。今のところ、この組み合わせでうまくいっています。
コメント
コメントする
- 匿名でのコメントは受け付けておりません。
- お名前(ハンドル名可)とメールアドレスは必ず入力してください。
- メールアドレスを表示されたくないときはURLも必ず記入してください。
- コメント欄でHTMLタグは使用できません。
- コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
- コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。
- 投稿ボタンを押してエラーがでなければ、投稿は成功しています。反映されるまでには少し時間がかかります。