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を使いまわすという方法になりそうな予感。