自動化のための nmake 入門講座
自動化のための nmake 入門講座
はじめに
ここでは,make ユーティリティを使ってプログラマやSEが行う作業を自動化するための方法を解説したいと思います.
make は,単にプログラム開発作業だけでなくいろいろな作業を自動化してくれます.自動化する作業のプラットフォームとして make を活用することができます.ところが,最近のプログラマは統合開発環境を使っているせいか, make を理解できる人が非常に少なくなってきました.今やっている開発でも,Makefile をメンテできるのは僕一人という非常にまずいことになっています.また, make について書かれたサイトや書籍が非常に少ないことも敷居を高くしている原因です.make について少しは知っているけど,あまり使いこんだことがない人はこの記事を参考にしてみてください.
ところで,make といってもいろいろな種類があり,それぞれ仕様が異なります.ここでは,僕が普段使っている Microsoft の nmake に限定して解説します.nmake は Microsoft の Visual C++ や Visual Studio に付属しています.開発環境は,僕が愛用している Emacs 系のエディタ,Meadow です.とりあえずこの環境で解説を行いますが,他の make や エディタを使っている人も参考になる部分がきっとあると思います.
さて,この記事を読んでいる人は,優れた技術者(プログラマまたは SE)になるためにはどうすればいいと思いますか? オブジェクト指向を習得することでしょうか? いつも最新の技術情報にアンテナをはっておくことでしょうか? …これらのことももちろん重要ですが,少なくとも僕は他にあると思うのです.優れた技術者になるには,次の2つの項目を守ればいいと思います:
そうです.優れた技術者になる条件は,難しいことを処理する技術や知識をもつ,というより,普段この2つをどれだけ追求しているか,という態度によるのです.キーボード入力がやたら速い人,記憶力がいい人,機械的な作業を間違わずに出来る人,こういう能力を持っている人は,そのことが逆に優れた技術者になることへの妨げになっています.同じことを毎日何度も行っているのに,自分では全くそのことに気づいてないのです.自分がいつもしている作業を自動化すること,これがソフトウェアを開発しようという動機となるし,原点となるのです.同じ事や単調な作業は,コンピュータにさせましょう.
また,上の2つの項目は,プログラミングの観点に限っていえばリファクタリング,デザインパターンなどが生まれたルーツになっているといえるでしょう.こういったことは,もともと頭が悪い人や難しいことを処理できない人が見つけやすいのです.記憶力がいい人は,グローバル変数をがんがん使ってもプログラムが組めてしまいますし,機械的な作業が得意な人は,同じコードを何度も何度も繰り返し書いても正確にプログラムが組めてしまいます.そういう人は,とくに要注意です.普段そういう能力に頼っていると,それ以上の仕事が来たときに必ず壁にぶちあたります.上の2つを常に頭にいれるように心がけましょう.
少し脱線しましたが,ここでは,毎日仕事をしている中で,同じことを自分が何度しているな,なんとかできないかな,という悩みを make ユーティリティを使って解決する,そういうことを書きたいと思います.
目次
参考資料
- Kent Beck, Smalltalk Best Practice Patterns, Prentice-Hall, 1996 ISBN 013476904X, p6.
- 結城 浩,新版 C言語プログラミングのエッセンス,ソフトバンクパブリッシング,1996, ISBN4-89052-868-7, p251.