В разделе 3.8 руководства gnu говорится:
«Во время вторичного расширения явных правил $$@
и $$%
оцениваются, соответственно, как имя файла цели, а если целью является элемент архива, имя целевого элемента. Переменная $$<
оценивается как первое предварительное условие в первом правиле. для этой цели. $$^
и $$+
оцениваются как список всех предварительных условий правил, которые уже появились для той же цели ($$+
с повторениями и $$^
без). Следующий пример поможет проиллюстрировать это поведение:
.SECONDEXPANSION:
foo: foo.1 bar.1 $$< $$^ $$+ # line #1
foo: foo.2 bar.2 $$< $$^ $$+ # line #2
foo: foo.3 bar.3 $$< $$^ $$+ # line #3
В первом списке обязательных условий все три переменные ($$‹, $$^ и $$+) заменяются на пустую строку».
Мой вопрос: почему $$<
расширяется до пустой строки? В приведенном выше абзаце говорится, что он должен оцениваться по первому требованию первого правила для этой цели. Разве это не foo.1 ?