Возможный дубликат:
GNU Makefile правило, генерирующее несколько целей из одного исходного файла
Если у меня есть правило Makefile, например:
a b c:
echo "Creating a b c"
touch a b c
output: a b c
cat a b c > output
и я запустил make -j9 output
make видит 3 зависимости (a, b, c), ищет, как их создавать: (правило "a b c" выше), но что будет дальше? Если он не понимает, что правило "a b c" нужно запускать только один раз, чтобы создать все 3 цели?
Это то, что делает на самом деле:
[[email protected] test]$ make -j9 output -n
echo "Creating a b c"
touch a b c
echo "Creating a b c"
touch a b c
echo "Creating a b c"
touch a b c
cat a b c > output
[[email protected] test]$
Тот же рецепт запускается 3 раза, один раз для каждой зависимости, чтобы правило "выводить"!
Кто-нибудь знает, почему он ведет себя таким образом?