Makefile にエントリを追加するには、以下の作業を行ってください。
データベース名を all ルールに追加します。
time ルールを作成します。
データベースのルールを追加します。
たとえば、Makefile をオートマウンタ入力ファイルで動作させるには、auto_direct.time および auto_home.time マップを NIS データベースに追加してください。
NIS データベースにこれらのマップを追加するには、以下の手順に従ってください。
all という語で始まる行に、追加したいデータベース名 (1 つまたは複数) を追加します。
all: passwd group hosts ethers networks rpc services protocols ¥ netgroup bootparams aliases netid netmasks ¥ auto_direct auto_home auto_direct.time auto_home.time |
エントリの順序は任意ですが、継続行の始まりの空白はスペースではなくタブにしてください。
Makefile の終わりに以下の行を追加します。
auto_direct: auto_direct.time auto_home: auto_home.time |
ファイル中央に auto_direct.time エントリを追加します。
auto_direct.time: $(DIR)/auto_direct @(while read L; do echo $$L; done < $(DIR)/auto_direct $(CHKPIPE)) | ¥ (sed -e "/^#/d" -e "s/#.*$$//" -e "/^ *$$/d" $(CHKPIPE)) | ¥ $(MAKEDBM) - $(YPDBDIR)/$(DOM)/auto_direct; @touch auto_direct.time; @echo "updated auto_direct"; @if [ ! $(NOPUSH) ]; then $(YPPUSH) auto_direct; fi @if [ ! $(NOPUSH) ]; then echo "pushed auto_direct"; fi |
CHKPIPE は、次のコマンドに結果を渡す (パイピングする) 前に、パイプ (|) の左側の動作が正しく行われたことを確認します。パイプの左側の動作が正しく行われなかった場合は、NIS make terminated というメッセージが表示されてプロセスは終了します。
NOPUSH は、Makefile が yppush を呼び出して新しいマップをスレーブサーバーに転送することを防止します。NOPUSH が設定されていない場合は、転送は自動的に行われます。
継続行の始まりにある while ループは、バックスラッシュで拡張された行を入力ファイルから削除するためのものです。sed スクリプトはコメント行および空行を削除し、makedbm に出力を渡します。
他のすべてのオートマウンタマップ (auto_home や他のデフォルトでないマップなど) でも、同じ手順が必要となります。
# make name |
name は、作成するマップ名です。たとえば、auto_direct などです。