暖かくなってきた最近は野菜の写真の成長記録を主に。庭で露地栽培と鉢植えで野菜を栽培中。庭の雑草取りもほぼ日課。野菜栽培は素人ですが、日々の観察と作業を楽しんで。
コンピューター系の話題は FreeBSD や Python を主に。昔はこちらが主体でした。UNIX 系で root で行わなければいけない作業には $ を、一般ユーザで行う作業には % のプロンプトを使っています。ソフトウエア開発は職業でやっています。C++ が主でしたが、最近は Python が増えました。
滅多にはありませんが、記事の内容によっては、細心の注意を払ってやらなければ、全てのデータを消去してしまうようなものも含まれます。ここを参考に作業を行うのは自己責任でやって下さい。
内容の間違いに関しては注意を払っていますが、勘違いや書き間違いがあることがあります。もし、見つけたらコメント等で指摘して下さい。
Links to Links
Port Authority Alerts
mmasudaのはてな日記
*BSD Diary Links
FreeBSD
某日記
BSD Diary Version 0.8091
かけまわる子犬
Nork's Daily "How To ..."
The FreeBSD Forums
Java NetBeans
プラネット NetBeans
Others
UC Claims
Embassy of Japan
DTrace ユーザーガイド
make make make make ― 2006年07月09日 12時11分53秒
まあ、make ファイルを書いていて、呟いたりするのがこれだ。make make make make と。ふと悲惨な翻訳を読んだ後に気が付いた。「make make make make」は文章だったと!そして、これが今開発中のシステムを構築するのに使われている、make ファイルを書いたときの指針なのである。念の為に書いておくが、これはコマンドラインに打ち込む文字列ではない。
make 自体の限界は最近感じ始めてはいるが、まだまだいい代替品が見つかってはいない。もし、あったとしても移植する手間を考えるとあまり乗り気にはならなかったりもする。
一部で GNU make を使っている。GNU make ではかなりの拡張を行なっているので、これまた変わった動作を示すときがある。それでも今の OS 上で使えるのが GNU make のみなので、折角だからと GNU make の特徴を最大限に引き出すように基幹の make ファイルを書いた。
結果は大成功だった。いくつか気になる点は残っているが、今のままでもシステムの構築には多大な恩恵をもたらしている。個人的には 98% の出来だ。あとの 2% はある変数を変えたときの自動再構築。まあ、こちらはなくても困りはしないが。
なお、今の GNU make で作成した構築システムは make が make ファイルを作るところから始まる。依存関係を make 自らが構築するのだ。「make make make make」をやっている。
「make make make make」としか書かないと、やはりおかしくなっただけではと思われてしまうので、解説する。まずは単語を置換する。「let make build make」となった。これで少々わかっただろうか。「make に make ファイルを作らせてしまおう」とのことだ。let や make の後に名詞と動詞を置き、「名詞に動詞をさせる」という意味になる。このとき、動詞は原型になる。「let the dog go.」で「犬を放しなさい。」または「犬を行かせなさい。」の意味になる。それゆえ、このような文でも文法的にも正しいだ。
元が make などなかった環境なので、make ファイルを書くときに、本来のシステムに変更があったときでも make ファイルを変更する必要がないようにしたかった。make を書いていたのは、コンパイルを待つ時間だったのだ。それ故、make のファイル自体にはあまり時間をかけたくなかった。その結果、 make が既存の設定ファイルを読み、make で使えるように変換した後に、目標のプログラムを構築するようになった。
実際に出来てみるととてもいい塩梅に出来上がった。基本的に make ファイルに書いてあるのは、.c から .o といった基本的かつ一般的な依存関係と処理の仕方だけである。処理自体が少々特殊な部分も出来たが、対象のシステムをどれだけいじっても、一切 make 自体には変更がいらない。ソースファイルが増えても、プログラムが増えても make が自動的に検出し、make ファイルを書いてくれるのである。
もし隣の席でブツブツ「make make make make」と呟く人がいたら、make がうまく書けないで困っている人ではない。恐らく make に make ファイルを作らせるのが、とても有効な手だと気が付いた人なのであるから。恐らく、画新的な make ファイルを書いている最中なのであろうと。
by uyota [...] [コメント(0)|トラックバック(0)]