擬似.Target(PhonyTarget) .PHONY


POINT
TASK Target と考えるとわかりやすい ある一連の処理に名前( Label )をつける
その名前( == ファイル )は存在しないため 常にコマンドは実行される 別の言い方をすると File を生成しないルールを擬似ターゲット ( 通常は target, dep は存在するファイルを表す ) claen, all POINT target が存在すれば、Depend がないため、[ `clean is up to date ] となる そこで 擬似 target であることを、Make に通知するのが PHONY の役割。
# make clean としたら .o を消す clean: rm -f *.o # "clean" というファイルをつくる shell> touch clean # make: `clean' is up to date. shell> make clean # そこで clean は実在するファイルではなく, "ある処理のタグ" と make に教える .PHONY: clean # RET: # rm -f *o shell> make clean
SYNTAX # .PHONY の dep にすることで、擬似 target となる .PHONY: clean clean: rm -f *.o TIP Make に 通常のルールを適用する必要がないことを通知するので処理の高速化になる
# PhonyTarget に 必須項目を与えるのは有効 # 更新すべき すべての program を更新 # all: pro1 pro2 # postbuild, prebuild に使用できそう # PhonyTarget を Depend にすると 前処理になる all: df pro .PHONY: df df: df -k . | awk 'NR == 2 {printf(%d available, $$4 ) }' # Depend にすることで前処理として利用できる dep 項目は列挙した順にコールされるらしい pro. prebuild # pro は prebuild に依存するため、 buildcmd ..  # build 前に prebuild が実行される
# 擬似 target 一覧 all : Application を構築するすべての作業 install : binary を install clean : src から作成された binary を削除 distclean : 元の配布物に含まれなかった binary 削除 TAGS : editor の使用する tags を削除 info : TexInfo src より GNU info 作成 check : app に関連する test を実行