ホームページH8をMacで>その2・Mac OS X上でmake環境を整える

その2・Mac OS X上でmake環境を整える

目次
 目的と経緯

 引き続き、Mac OS X上でMES 2.2ベースのH8開発ができるかを試行します。
 今回は、ビルド(make)のための環境を構築できるかどうかを検証します。

 なお、以下の記述はPPC Macについてのものです。
 また、各バージョンは試行時のもので、その後更新されている場合があります。


 方針

 MacOSX上でMES 2.2ベースのH8開発を行うためには、以下を検証する必要があります。
  1. MESベースのH8バイナリを作れるか?

    Linux向けのgccをMac上でソースからビルドし、それを使ってMESベースのアプリケーションをコンパイルして、H8用のバイナリを吐けるかをテストする。

  2. LAN経由でRAMに転送できるか?

    Mac OSXはtftpを標準で持っているようなので、それが動作するかをテストする。

  3. シリアル経由でROMに転送&コマンド操作できるか?

    (最近の)Macはシリアルポートを持っていないので、USB-シリアル変換ケーブルを使って、処理できるかをテストする。
という方針でいきます。


 Linux用gccをインストールする・rpm編(失敗)

 Linux用gccソースはrpm形式で提供されているため、まず、rpmをMacにインストールする必要があります。以下のサイトからダウンロードできます。
(10.4用はaptに統合されているようです。10.3以前の場合はここから順次辿って下さい。)

 参考サイト(1):JLC Computing on MacOS X

 次いで、MESの作者様のサイトから、以下のLinux用ソースファイルをダウンロードします。

 H8対応(以下、h8セット)
 ・h8-binutils-2.15-1.src.rpm
 ・h8-gcc-3.4.3-2.src.rpm
 ・h8-newlib-1.13.0-1.src.rpm
 MES2.0、H8ユーザプログラム用(以下、h8-elfセット)
 ・h8-binutils-elf-2.15-1.src.rpm
 ・h8-gcc-elf-3.4.3-2.src.rpm
 ・h8-newlib-elf-1.13.0-1.src.rpm

 上記ソースからバイナリパッケージを作成します。方法としては、
  1. rpmを使ってインストール

    # rpm -ivh h8-binutils-2.15-1.src.rpm

    /usr/local/src/apple/SOURCES/にソース(bz2, patch等の形式)が展開されます。
    /usr/local/src/apple/SPECS/にspecファイルが展開されます。

  2. SPECSディレクトリに移動し、まずspecファイル中の「Copyright」を「License」に書き換えます。その後、以下を実行します

    # rpmbuild -ba h8-binutils-2.15.spec

  3. /usr/local/src/apple/RPMS/にバイナリ形式のrpmファイルが作成される(筈)
なのですが、binutilsは最後まで行くものの、作成されません。
 また、gccとnewlibはmake中にエラーが出て、途中で止まってしまいます。


 Linux用gccをインストールする・手動編(成功?)

 rpmbuildが不調なので、手動でやってみます。
 ビルドの方法は、以下のサイトを参考にしました。

 参考サイト(2):H8 & SHマイコン開発環境構築 for MacOS X

 まずはh8セットを使ってビルドします。
注)以下は参考サイト(2)のディレクトリ構成を元に始めたため、ホームディレクトリ下で作業しています。(次項でのリネームの件も含め)必要であれば事前に変更して下さい。
  1. rpmでSOURCESに展開された以下のファイルを、~/Gccフォルダにコピーします。
    ・binutils-2.15.tar.bz2
    ・gcc-core-3.4.3.tar.bz2
    ・newlib-1.13.0.tar.gz

  2. 各ファイルを解凍します。

  3. 以下の手順でビルドします。(参考サイト(2)の例を元にアレンジしたもの。)

    $ mkdir -p ~/cross/h8300-hms/bin
    $ cd ~/Gcc/gcc-3.4.3
    $ ln -s ../newlib-1.13.0/newlib .(注1)
    $ ln -s ../newlib-1.13.0/libgloss .(注1)
    $ export target=h8300-hms
    $ export prefix=~/cross/h8300-hms
    $ export i=$prefix/bin
    $ mkdir -p ~/builds/h8300-hms/binutils-2.15
    $ cd ~/builds/h8300-hms/binutils-2.15
    $ ../../../Gcc/binutils-2.15/configure --target=$target --prefix=$prefix
    $ make all
    $ make install
    $ mkdir -p ~/builds/h8300-hms/gcc-3.4.3
    $ cd ~/builds/h8300-hms/gcc-3.4.3
    $ export PATH=$PATH:/Users/hoge/cross/h8300-hms/bin/(注2)
    $ ../../../Gcc/gcc-3.4.3/configure --target=$target --prefix=$prefix --with-newlib
    $ make all
    $ make install

    結果、ビルド自体は正常終了しました。

  4. 試しにhttp.cをビルドして(Windows機経由で転送後に)実機でテストしたところ、動きました。
 次にh8-elfセットを使ってビルドします。
  1. rpmでSOURCESに展開された以下のファイルを、~/Gcc-elfフォルダにコピーします。
    ・binutils-2.15-pic.patch
    ・binutils-2.15.tar.bz2
    ・gcc-3.4.3-pic.patch
    ・gcc-core-3.4.3.tar.bz2
    ・newlib-1.13.0.tar.gz

  2. patch以外の各ファイルを解凍します。その後、patchを当てます。

    $ patch -p0 <binutils-2.15-pic.patch
    $ patch -p0 <gcc-3.4.3-pic.patch

  3. 以下の手順でビルドします。(参考サイト(2)の例を元にアレンジしたもの。)
    なお、h8セット時に作成したbuildフォルダは削除するかリネームしておきます。

    $ cd ~/Gcc-elf/gcc-3.4.3
    $ ln -s ../newlib-1.13.0/newlib .(注1)
    $ ln -s ../newlib-1.13.0/libgloss .(注1)
    $ export target=h8300-elf
    $ export prefix=~/cross/h8300-hms
    $ export i=$prefix/bin
    $ mkdir -p ~/builds/h8300-hms/binutils-2.15
    $ cd ~/builds/h8300-hms/binutils-2.15
    $ ../../../Gcc-elf/binutils-2.15/configure --target=$target --prefix=$prefix
    $ make all
    $ make install
    $ mkdir -p ~/builds/h8300-hms/gcc-3.4.3
    $ cd ~/builds/h8300-hms/gcc-3.4.3
    $ export PATH=$PATH:/Users/hoge/cross/h8300-hms/bin/(注2)
    $ ../../../Gcc-elf/gcc-3.4.3/configure --target=$target --prefix=$prefix --with-newlib
    $ make all
    $ make install

    結果、ビルド自体は正常終了しました。
 ただし、これだけではMESベースのアプリを生成することはできません。次項に示すステップが必要です。
注1)本当に必要かどうかは不明。
注2)hogeは各自のユーザ名

 make環境を整える

以下、Windows版開発ツールとディレクトリ構成を合わせた方が都合がいいため、ここで、crossをh8、cross下のh8300-hmsをlocalにリネームした。
 MES 2.2用のアプリを生成するために必要なヘッダ等をインストールします。

 ただし、これらは単体では配付されおらず、Windows用に配付されている開発ツール(wgcc22r4.exe)にのみ含まれています。
 そのため、Windowsにインストールした開発ツールから、C:\wingcc直下のappフォルダを持ってきます。(アーカイブはインストーラ形式のため、Mac上で展開して取り出せるのかは不明。)

 もちろんWindows用アプリは動かないので除いてもいいのですが、要る要らないが分かりにくい面もあるので、手っ取り早くappフォルダを丸ごと、h8フォルダにコピーします。
 あと、C:\wingcc/local/includeの中身を~/h8/local/includeにコピーします。

 この状態で、試しに前回作成したメール送信プログラムをビルドして(Windows機経由で転送後に)実機でテストしたところ、動きました。

 とりあえず、方針1の「MESベースのH8バイナリを作れるか?」はクリアできたと見てよさそうです。

 「その3・Mac OS X機からRAMに転送する」へ続く


 お世話になったサイト

 有用なソフトウェアおよび貴重な情報をご提供頂いている皆様に、お礼申し上げます。(以下、順不同)

 参考サイト(1):JLC Computing on MacOS X
 参考サイト(2):H8 & SHマイコン開発環境構築 for MacOS X


 更新履歴

 2007.04.04 ページ独立に伴い、タイトルナンバーを「その4a」から変更。
 2007.03.26 タイトルを「マイコンボード連係編(2)」から変更。
 2006.06.23 タイトルから?を外した。タイトルの添字を変更。(3)へのリンクを追加。
 2006.06.16 新規作成


[Home]  [MacSoft]  [Donation]  [History]