Diary/2008-5-20
Mach-2 で遊んでみる (2)
入手したソースアーカイブ中の Make6415 には、コンパイラやシェル、その他必要なツールの入手先まで詳しく説明されているので、環境を揃えるのはとても簡単でした(^-^)/
ただ…手を抜いて手元の環境でそのままやったら、環境違いで少々はまってしまったので、忘れないようにメモしときます(^^;
- gcc の差異
patchlevel 5 版を入れていたのですが、真里子版とは環境変数の名前が大分違ってるので、最初はうまくコンパイルできなくて悩みました。他にも、パスデリミタ変換の無効化とか、インダイレクトファイル無使用とかの違いがあるので、両者が入っている環境では混乱しないようにしないといけませんね(^^;;
# gcc -version で確認 [真里子版] gcc version 1.30 Tool #2(X680x0) [patchlevel 5] gcc version 1.30 Tool#2(X680x0) patchlevel 5
環境変数 真里子版 patchlevel5版 ---------------------------- 満里菜 GCC_ED 真里子 GCC_OPTION0 AB GCC_OPTION GCC_OPTION1 MARINA (削除) MARIKO (削除) GCC_NO_XCLIB (削除) lib*.a にしたい時 (なし) GCC_XCLIB *lib.a にしたい時
- パスデリミタの違い
libc類を c:\libc1132a 以下に展開しましたが、makefile 内では区切りに / を使っているため、lib, include の場所指定も \ から / に修正しました(そうじゃないと最後のリンクでしくじる)。
set lib=c:/libc1132a/lib set include=c:/libc1132a/include
- makefile内 SHELL 指定
make master した際に、内部で make all を呼び出していますが、無指定だと先に進めないので、Make6415 に習って makefile に次の一行を入れておきました。もちろん command.x を指定してもいいんですが、/ 区切りと \ 区切りが混在してごちゃごちゃするので、/ 区切り統一のために fish にしています。
SHELL=fish
- makefile で使う環境変数群
Make6415 は頭で変数設定を行っていましたが、makefile には無いので同様に付け足しておきます。AUTOEXEC.BAT で起動時に環境を整えてもいいですけど、違う環境でも通しやすいように。
export libc := c:/libc1132a export include := $(libc)/include export lib := $(libc)/lib export 真里子 := AB SHELL = fish CC = gcc
- makefile中の #rm行
make -fmakefile master すると、#-rm -v date.o のところで止まるので、#-rm -v date.o の行を削除しています。
- ED0100.x のコンパイル
makefile では GCC_LINK=lk -bED0140 -x と指定されていますが、ED0100.x を作るには不要なので、この行をコメントアウトして、makefileの先頭に下記を入れ、make ED0100.x で Okay です。
export GCC_NO_XCLIB := yes export GCC_LINK := hlk
それはそうと、lk.x だとうまくリンクできなかったので hlk にしましたが、何故でしょうねぇ(^^;。とりあえず hlk でいけるからいいことにします(^^;;
[カテゴリ:x68]