makeというビルドツールで、Makefileを書いてソースコードをビルドするのが好きだった。
ソースコードの更新された部分からその依存関係を自動で調べて更新すべき部分のみをビルドすることができるという賢い仕組みで、非常に便利だ。
最初にPC-98用のTurbo-Cに付属のmakeに触ったのが使い始めだった。
逆にTurbo-Cの統合環境にはどうも馴染めなかった。
EZ Editorや、VZ Editorに慣れてしまって、それ以外のエディタに馴染めなかったからだと思う。
Makefileの書き方は、MS‐DOSを256倍使うための本で覚えた。
MS‐DOSを256倍使うための本〈Vol.3〉(Amazon)
その後、UNIX上でも使うようになり、ネット上のソースコードをビルドしたりするのもmakeを使った。
大抵はmake一発でビルドできたりしたが、UNIX用でも細かい差異によってビルドできなかったりしたときにはMakefileのビルドオプション部分をまず変えてみたりした。
(Makefileが付いていないときには、mkmfとかいうツールでMakefileの自動生成を試したりもした。)
UNIX用のソースコードをWindows上に持ってきてVisual C++でビルドするときなどは、かなり書き換えが必要だったりして苦労したのだった。
最近だと、configureというスクリプトで環境依存部分などを前処理をしてからmakeをするというパターンを多く見かける。
この場合Windows上に持ってきてビルドしようとするとUNIXのシェルのスクリプトは動かないので困ることになる。
複雑なMakefileの場合、読み解くのに非常に苦労する。
巨大なソースコードだと格納されるディレクトリが複数に分けられていたりしてMakefileが複数あったり非常に複雑になっていたりするからだ。
結局、Visual Studioをメインで使うようになってからも、makeでビルドするようにMakefileを書いてコマンドラインで使っていた。
統合環境のIDEはデバッグ機能とかはとても使いやすくて優秀なのだけど、複数のバージョンのVisual Studioを使いわけてビルドするときにプロジェクトファイルとかソリューションファイルをビルドするたびに作り直さなくてはならなくて、それが面倒すぎる。
Makefileならば、$(CC)みたいな変数で使うC言語/C++のパスを切り替えるだけで済む。
最近はmakeの他にもビルド用ツールがいろいろとあるようで、上記のような問題にも対応できるようなものがある。
わりと最近、OpenCVとか.NET Core/CoreCLRとかのソースコードを自分でビルドしようとしたが、これにはCMakeというビルド用ツールが使われていた。
それで、CMakeの使い方なんかを調べている。