Что означает одиночный символ ИЛИ в Makefile - PullRequest
0 голосов
/ 04 марта 2019

Короткий вопрос.На своей работе я видел странный код в Makefile

$(DIR)/dir1 $(DIR)/dir2 $(DIR)/dir3: | $(DIR)
    mkdir -p $$(@)

Что означает символ |?

1 Ответ

0 голосов
/ 04 марта 2019

Он отделяет нормальные предпосылки от предварительных условий заказа.Предварительные условия только для заказа должны существовать до того, как цели будут достигнуты, но это все.Цели не переделываются, если их временная метка раньше, чем одна из предпосылок только для заказа.

Здесь, если $(DIR) не существует, это будет сделано до $(DIR)/dir1, $(DIR)/dir2 и $(DIR)/dir3, ноесли он существует и его временная метка позже, чем у подкаталога, подкаталог не будет переделан.

...