Я читаю make-файл для проекта, созданного Qt, который имеет следующее:
{backend}.cpp{release\}.obj::
$(CXX) -c $(CXXFLAGS) $(INCPATH) -Forelease\ @<<
$<
<<
(код выше использует \ t для рецепта и написан в make-файле)
И правило, и рецепт смущают меня.
Я начну с {backend}
в правиле. Очевидно, такая же путаница и для {release}
. Я предполагаю, что это ссылка на определенный подкаталог с именем backend
. Я полагаю, что ..\backend\release\bar.obj
будет признана законной целью? Но какая часть make говорит, что это допустимый синтаксис и что именно здесь происходит?
FWIW: Это раздел с комментариями: ##### implicit rules
.
Версия: GNU Make 4.2.1 Built for x86_64-unknown-cygwin
Бонусные баллы:
Объясните использование @<<
и <<
в рецепте ... ( Да, мне не хватает изящества оболочки bash ... ). Это ссылка на первую предпосылку с $<
и молчаливое перенаправление? Почему не $$<
?
Спасибо.