Вот мой Makefile:GNU сделать - сделать одну задачу сделать еще одну задачу, а
z : a
echo "REDOING Z" ; touch z
a : b b2
touch a
touch a2
touch z # should disable z but doesn't
b : c c2
touch b
touch b2
Когда я make a
, z
прикосновении в два раза, я хочу, чтобы только прикоснуться раз, как мне это сделать ?
Какова фактическая цель? Вы хотите иметь цель, которая иногда генерирует файл, который другая цель также генерирует и пропускает другую цель, когда это происходит? Вам нужна цель, которая генерирует два файла, которые правильно понимают? Что-то другое? –
У меня есть цель, которая иногда генерирует файл, который генерирует другая цель и пропускает другую цель, когда это происходит, и я хочу эффективно работать, вместо того, чтобы генерировать второй файл дважды (думаю, что 'touch z' на самом деле является чем-то, что требует времени) – tohava
Я не думаю, что вам удастся заставить себя обрабатывать «иногда» выходы абсолютно здоровыми. Для этого он не предназначен. Не говоря уже о том, что здесь есть проблемы с упорядочением (что, если make запускает цель 'z' перед мишенью' a' в экземпляре, где 'a' создаст' z'?). –