Binutilsは、オブジェクトファイルを扱うためのコマンド群です。 アーカイブの管理を行うための ar コマンド、リンクを行うための ld コマンド、アセンブリ言語を翻訳するための as コマンドなどが含まれます。
最初に、ビルド・インストール前リストを生成します。
/sources/genprevlist.sh > /dev/null 2>&1
ソースファイルを展開します。
cd /sources tar xvf binutils-2.25.tar.bz2 cd binutils-2.25
ビルド用ディレクトリを準備します。
mkdir -vp ../binutils-build cd ../binutils-build
configureを実行します。
../binutils-2.25/configure \ --prefix=/usr \ --enable-shared \ --disable-werror > ../../logs/configurelog.binutils 2>&1
configureが終了したら、ログファイルに出力された内容を参照し、正常に終了したことを確認します。
cat ../../logs/configurelog.binutils
テストを行います。
make check 2>&1 | tee ../../logs/checklog.binutils
テストが終了したら、ログファイルに出力された内容を参照し、正常に終了したことを確認します。
grep '^# of' ../../logs/checklog.binutils \ | sed \ -e '/# of expected passes/s/^/OK /' \ -e '/# of unexpected passes/s/^/OK /' \ -e '/# of expected failures/s/^/OK /' \ -e '/# of unexpected successes/s/^/OK /' \ -e '/# of unsupported tests/s/^/OK /' \ -e '/# of untested testcases/s/^/OK /' \ -e '/$^/d' \ | sed \ -e '/^# of/s/^/NG /' \ | sort
以下のように、全ての行の行頭が "OK" となっていれば問題ありません。
OK # of expected failures 4 OK # of expected passes 490 OK # of expected passes 95 OK # of expected passes 999 OK # of unsupported tests 12 OK # of unsupported tests 3 OK # of untested testcases 1
開発機の処理能力が低い場合には、テストの一部がタイムアウトすることがあります。
...(省略)... Running /sources/binutils-2.25/gas/testsuite/gas/i386/i386.exp ... WARNING: program timed out. FAIL: gas/i386/rept ...(省略)...
上記のように "program timed out." となった場合はタイムアウトしています。
インストールを行います。
make tooldir=/usr install
インストールが終了したら、画面に出力された内容を参照し、正常に終了したことを確認します。
ソースファイルに付属している文書のインストールを行います。
cd ../binutils-2.25 mkdir -vp /usr/share/doc/binutils-2.25 cp -va COPYING /usr/share/doc/binutils-2.25 cp -va COPYING.LIB /usr/share/doc/binutils-2.25 cp -va COPYING3 /usr/share/doc/binutils-2.25 cp -va COPYING3.LIB /usr/share/doc/binutils-2.25 cp -va ChangeLog /usr/share/doc/binutils-2.25 cp -va MAINTAINERS /usr/share/doc/binutils-2.25 cp -va README /usr/share/doc/binutils-2.25 cp -va README-maintainer-mode /usr/share/doc/binutils-2.25
ディスクを圧迫しないよう、ビルド用のディレクトリを削除します。
cd .. rm -fr binutils-2.25 rm -fr binutils-build
最後に、インストールリストを生成します。
/sources/genpostlist.sh > /dev/null 2>&1 /sources/gendifflist.sh binutils