简短的问题。在我的工作中,我在Makefile中看到了奇怪的代码
$(DIR)/dir1 $(DIR)/dir2 $(DIR)/dir3: | $(DIR)
mkdir -p $$(@)
|
字符是什么意思?
它将正常的先决条件与仅有序的先决条件分开。在制定目标之前必须只存在订单先决条件,但这就是全部。如果目标的时间戳早于仅有订单的先决条件,则不会重新映射目标。
这里如果$(DIR)
不存在,它将在$(DIR)/dir1
,$(DIR)/dir2
和$(DIR)/dir3
之前生成,但如果它存在并且其时间戳晚于其中一个子目录,则不会重新生成子目录。