FreeBSDでクロスの開発環境を作っています。ビルドした実行バイナリは下記のような方法で実機にもっていっています。
PC-8001のマシン語の実行ファイルはzmac,ld80でhexを作りihex2monlでCMTファイルにしてUSBメモリに書き込んでPC-8001にロードして実行します。zmac,ld80はBSD MakeでビルドできCP/M上のMACRO-80の仕様に一番近いと思います。
zmacはbisonをインストールして以下のようにしてビルドします。
% make CC=cc CXX=c++ YACC="bison -y"
ld80はMakefileにg++の直書きがあるので、それを修正してビルドします。
FreeDOSやPC-9801はOpenWatcomのLinuxバイナリをFreeBSDのエミュレーションで実行してバイナリを作っています。
クロス開発の環境が簡単に作れる現在ではセルフで開発するのはナンセンスだと思います。いろいろ覚えられないので、環境が一つに集約できる事はとても助かります。