自動化のためのGNU Make入門講座
自動化のためのGNU Make入門講座
はじめに
ここでは,makeを使ってプログラマやSEが普段行なっている作業を自動化する方法を解説します.
makeはプログラム開発だけでなく,いろいろな作業を自動化してくれます.自動化する作業のプラットフォームとしてmakeを活用することができます.ところが,最近はmakeを理解できる開発者が非常に少なくなってきました.普段統合開発環境を使っている人が多いことや,makeについて書かれた書籍やサイトが非常に少ないことが原因でしょう.makeについて少しは知っているけど,あまり使いこんだことがない人はこの記事を参考にしてみてください.
一口にmakeといってもいろいろな種類があり,それぞれ仕様が異なります.ここでは,僕が普段使っているGNU makeについて解説します.GNU makeは機能が豊富で他のmakeツールやAntに比べ優れています.開発環境は,僕が愛用しているEmacs系のエディタ,Meadowです.とりあえずこの環境で解説を行いますが,他のmakeやエディタを使っている人も参考になる部分がきっとあると思います.
さて,この記事を読んでいる人は,優れた技術者(プログラマまたはSE)になるためにはどうすればいいと思いますか? オブジェクト指向を習得することでしょうか? いつも最新の技術情報にアンテナをはっておくことでしょうか? ―― これらのことももちろん重要ですが,少なくとも僕は他にあると思うのです.優れた技術者になるには,次の2つの項目を守ればいいと思います:
そうです.優れた技術者になる条件は,難しいことを処理する技術や知識をもつ,というより,普段この2つをどれだけ追求しているかという態度によるのです.キーボード入力がやたら速い人,記憶力がいい人,機械的な作業を間違わずに出来る人,こういう能力を持っている人は,そのことが逆に優れた技術者になることへの妨げになってるかもしれません.同じことを毎日何度も行っているのに,自分では全くそのことに気づいてないのです.自分がいつもしている作業を自動化すること,これがソフトウェアを開発しようという動機となるし,原点となるのです.同じ事や単調な作業は,コンピュータにさせましょう.
ここでは,毎日仕事をしている中で,同じことを自分が何度しているな,なんとかできないかな,という悩みをmakeを使って解決する,そういうことを書きたいと思います.
目次
- GNU Makeのインストール
- makeを使ってみよう
- Makefileの基本:ルール
- ルールを楽に書く方法:マクロとサフィックスルール
- 制御構造
- ライブラリの作り方
- ディレクトリ階層を扱う方法
- makeのパターンランゲージ
リンク集
他にもGNU Makeマニュアルの訳本がありますが,翻訳がかなり悪いため,あまりお勧めできません.
更新履歴
- 公開 ― 2003/01/05
[1] Kent Beck, Smalltalk Best Practice Patterns, Prentice-Hall, 1996 ISBN 013476904X, p6.
[2] 結城 浩,新版 C言語プログラミングのエッセンス,ソフトバンクパブリッシング,1996, ISBN4-89052-868-7, p251.