Makefileを簡略化する記述について確認した。

入手先
開発環境
- Windows XP Pro SP3 32bit
- MinGW 5.3.0
- g++ 5.3.0
ライブラリ
環境変数のPathに各DLLがあるディレクトリパスを追記することでexeを実行できる。
前回まで
- MinGWでコンパイルできる環境が整った。
- さらにGTKmm3ライブラリも揃った。
- HelloWorldまでやった。
Makefileでコンパイルする方法を以下のとおりに調べる。
| 実施 | パターン |
|---|---|
| ● | 単体コード |
| ● | 複数コード |
| 未 | 略記 |
| 未 | サブディレクトリ |
| 未 | Release/Debug切替 |
ソースコード
| ファイル | 説明 |
|---|---|
| Makefile1 | 依存関係をすべて丁寧に記述。 |
| Makefile2 | 依存関係を暗黙のルールにより省略。 |
| Makefile3 | 重複したファイル名を変数にして省略。 |
| Makefile4 | 重複したコンパイル引数を変数にして省略。 |
こうしてMakefileを簡略化できましたとさ。実際に使っているのはMakefile4からコメントを省いたMakefileのみ。
所感
同じことは書かないようにすることでミスをなくす。 それができるのはいいことだと思う。でも、そういう工夫が必要なこと自体が面倒。仕方ないのか?
正直、依存関係もソースコードの#includeから読み取ってくれよと思う。ライブラリも同様。
つまり、Makefile自体、書かずともコンパイルしてほしい。
簡略化を極めるなら完全自動化がゴールか。
現実的にはテンプレMakefileを使いまわすという方法になりそうな予感。