水内 郁夫
目次
tar のオプションの意味は、z:gunzip, x:extract, f:file, j:bunzip2, v:verbose。 詳しくは、tar --help や、zcat --help などを参照。~$ cd /cygdrive/d/ /cygdrive/d$ mkdir -p tmp /cygdrive/d$ cd tmp /cygdrive/d/tmp$ bzcat /cygdrive/o/soft-ensyu/compiler/binutils-2.13.tar.bz2 | tar xvf - ... /cygdrive/d/tmp$ zcat /cygdrive/o/soft-ensyu/compiler/gcc-2.95.3.tar.gz | tar xvf - ... /cygdrive/d/tmp$ zcat /cygdrive/o/soft-ensyu/compiler/newlib-1.10.0.tar.gz | tar xvf - ... /cygdrive/d/tmp$ ls -F gcc-2.95.3/ binutils-2.13/ newlib-1.10.0/
/cygdrive/d/tmp$ cd binutils-2.13/ /cygdrive/d/tmp/binutils-2.13$ mkdir m68k-coff /cygdrive/d/tmp/binutils-2.13$ cd m68k-coff /cygdrive/d/tmp/binutils-2.13/m68k-coff$
/cygdrive/d/tmp/binutils-2.13/m68k-coff$ ../configure --help ... (オプションが表示される) /cygdrive/d/tmp/binutils-2.13/m68k-coff$ ../configure --target=m68k-coff 2>&1 | tee configure.out ...
/cygdrive/d/tmp/binutils-2.13/m68k-coff$ make 2>&1 | tee make.out ...
エラーで止まった場合は、問題箇所を修正して再びmakeする。
make CFLAGS+="-I/usr/include"
とするとうまく行く場合もあるし、
エラーを起こしたディレクトリに行って、
./configure
--target=m68k-coff
make
とすればうまくいく場合もあるし、
もっと色々と修正が必要な場合もある。
ターゲット名とgcc等をキーワードに検索すれば、パッチ(※)が見つかったりもする。
binutils,gcc,newlib(glibc)の各バージョンの組み合わせと
TARGETによって、
うまくいく組み合わせといかない組み合わせがあったりする。
/cygdrive/d/tmp/binutils-2.13/m68k-coff$ make install 2>&1 | tee make-install.out ...
/usr/local/binにPATHを通しておき、m68k-coff-ld --version
等として、インストールが成功しているかどうかを確認する。
MANPATHに/usr/local/manが含まれていれば、man
m68k-coff-ldと すれば、オンラインマニュアルを読むことができる。
/cygdrive/d/tmp/binutils-2.13$ mkdir m68k-coff /cygdrive/d/tmp/binutils-2.13$ cd m68k-coff /cygdrive/d/tmp/binutils-2.13/m68k-coff$ ../configure --target=m68k-coff 2>&1 | tee configure.out ... /cygdrive/d/tmp/binutils-2.13/m68k-coff$ make 2>&1 | tee make.out ... /cygdrive/d/tmp/binutils-2.13/m68k-coff$ make install 2>&1 | tee make-install.out ...
/cygdrive/d/tmp/gcc-2.95.3$ cp -r ../newlib-1.10.0/newlib/libc/include /usr/local/m68k-coff /cygdrive/d/tmp/gcc-2.95.3$ mkdir m68k-coff /cygdrive/d/tmp/gcc-2.95.3$ cd m68k-coff /cygdrive/d/tmp/gcc-2.95.3/m68k-coff$ ../configure --target=m68k-coff --with-newlib --nfp -v 2>&1 | tee configure.out ... /cygdrive/d/tmp/gcc-2.95.3/m68k-coff$ make LANGUAGES="c c++" 2>&1 | tee make.out ... /cygdrive/d/tmp/gcc-2.95.3/m68k-coff$ make LANGUAGES="c c++" install 2>&1 | tee make-install.out ...
newlibのincludeを/usr/local/m68k-coffに コピーしておかなければヘッダが足りずに、 gccのmakeに失敗する場合がある。
--nfp は、浮動小数点演算器を持たないTARGET。
--with-newlib は、あとで、glibcでなくnewlibを使う。
エラーで止まった場合は、問題箇所を修正して再びmakeする。
make CFLAGS+="-I/usr/include"
とするとうまく行く場合もあるし、
エラーを起こしたディレクトリに行って、
./configure
--target=m68k-coff
make
とすればうまくいく場合もあるし、
もっと色々と修正が必要な場合もある。
make -k LANGUAGES="c c++" all-gcc
make -k LANGUAGES="c c++"
install-gcc
などを試すと通ることもある。
ターゲット名とgcc等をキーワードに検索すれば、パッチ(※)が見つかったりもする。
binutils,gcc,newlib(glibc)の各バージョンの組み合わせと
TARGETによって、
うまくいく組み合わせといかない組み合わせがあったりする。
/cygdrive/d/tmp/newlib-1.10.0$ mkdir m68k-coff /cygdrive/d/tmp/newlib-1.10.0$ cd m68k-coff /cygdrive/d/tmp/newlib-1.10.0/m68k-coff$ ../configure --target=m68k-coff --with-gnu-ld --with-gnu-as --nfp -v 2>&1 | tee configure.out ... /cygdrive/d/tmp/newlib-1.10.0/m68k-coff$ make all-target-newlib 2>&1 | tee make-all-target-newlib.out ... /cygdrive/d/tmp/newlib-1.10.0/m68k-coff$ make install-target-newlib 2>&1 | tee make-install-target-newlib.out ...
とすればよい。 (/usr/local/は、P:\cygwin\usr\localだから、Cygwinから見ると、 /usr/local/src/gcc-2.95.3/m68k-coff/ に今回ビルドした状態があることになる。)/cygdrive/d$ mv tmp /usr/local/src