也可以用來檢查檔案在不在。
像...
SYSFILES += $(wildcard $(OUT_DIR)/usr/lib/systemd/system/multi-user.target.wants/countssh.service)這樣,如果 out folder 的 countssh.service 存在的話 (上次 build 的結果還流著,SYSFILES 就會有這個 file link)
如果 out folder 裡沒有這個檔案,wildcard 的結果就是空的。
這樣的 rule,配合之後的刪除動作:
for n in $(SYSFILES); \ do \ rm $(OUT_DIR)/usr/lib/systemd/system/multi-user.target.wants/$$n; \ done就會把他刪掉。
不直接寫,而用 wildcard 來檢查的原因是...
如果這個檔案不在的話,後面的 rm 動作就會 fail,讓 make 中斷。
另一個,"不在就 create" 的方式..
ifeq (,$(wildcard $(OUT_DIR)/usr/lib/systemd/system/multi-user.target.wants/mender-client.service)) ln -s ../mender-client.service $(OUT_DIR)/usr/lib/systemd/system/multi-user.target.wants/mender-client.service endif用 ifeq,如果 wildcard 的結果是空的,代表那個檔案不存在。
沒有留言:
張貼留言