X68000のGCCの導入について
X68000のエミュレータでC言語の開発環境を構築する
自分はC言語は「若いころ、ちょっといじったことがある」程度なのでほぼど素人であります
↑SHARP製Cコンパイラ(XC)やGCCなど必要なソフトはこちらで入手できます。
今回は
コンパイラはXCではなく広くX68ユーザーに使われているGCC(真理子版)を
ライブラリは手元にマニュアルが残っていて、関数の使い方が確認しやすいXCのライブラリ…という環境を構築しようと思います
C言語環境セットアップ
http://www.ausystem.org/~aushacho/sfxvi/kouza/h06_10/1.htm
X68000 Programming / X680x0公会堂
GCCのドキュメントにもXCのライブラリを使う方法は記載されていますし、ネットで検索をかけると上のようなページがヒットします、こちらは手順がわすりやすく書かれていますので、手順通りにすすめれば構築できるはずですが…大変でした
解説サイトもドキュメントも十分親切でわかりやすいのですが
gnulib.l
というファイルがみあたりません
LIBC 1.1.32A - ライブラリ - プログラミング - ソフトウェアライブラリ - X68000 LIBRARY
こちらのアーカイブに
libgnu.a
というのはありますが微妙に名前が違います
どちらも同じものが含まれるライブラリなのですが書式が違います
そして、使用の際は書式を統一しないといけません
サイト等の解説には「.lの方を使ってください」的な記述ですが見当たりません
おそらくですが
過去に配布されたライブラリには.aと.lの両方が入っていたものの、現在配布されているものは.aだけ…という状況なのだと思われます。
ということで、現代では
libgnu.aからgnulib.lをこさえる作業が必要となります。
具体的な手順は
① AR.Xというソフトでibgnu.aの中身を取り出して
② LIB.Xというソフトでgnulib.lをこさえます
AR.XとLIB.Xは、XCコンパイラに同梱されています
AR.X、LIB.Xの使い方はXCの「アセンブラマニュアル」の第7章「アーカイバ」第8章「ライブラリアン」にあります
勉強不足でわからないのですが、取り出しやライブラリ作成でワイルドカードが使えなかったので「一個一個とりだして」「一個一個登録」的な作業が必要になります。
恐ろしく非効率的作業なので
ar -l libgnu.a > list.txt
パイプでリストをテキスト出力
これを元にエディターで頭の悪いバッチファイルをこさえて変換しました
https://drive.google.com/file/d/1UjMgIoLPc72xp4T28Vrz4nNb3zUTs-Mm/view?usp=sharing
出来上がりのファイル名が違っていますが、gnulib.lという名前に変更したら使えると思います