У меня есть Makefile структурированного что-то вроде этого:Makefile выполнить другую цель
all :
compile executable
clean :
rm -f *.o $(EXEC)
я понял, что я постоянно работаю «сделать чистый», а затем «ясно» в моем терминале перед запуском «сделать все». Мне нравится иметь чистый терминал, прежде чем я попытаюсь просеять неприятные ошибки компиляции C++. Поэтому я попытался добавить третью цель:
fresh :
rm -f *.o $(EXEC)
clear
make all
Это работает, однако это работает во втором экземпляре make (я считаю). Есть ли правильный способ получить такую же функциональность, не выполняя второй экземпляр make?
@ sas4740.: в основном все следует за '.PHONY:' рассматривается как некоторое ключевое слово, которое всегда выполняется, а не фальшивые цели предназначены для файлов. – Dacav
являются условными условиями «только для заказа»? для цели t2 Я хочу сначала сделать t0, а не только если t0 успешно выполнит t1, и только если оба succeds запускают некоторую задачу в t3 – fantastory
@fantastory, нет, я ** думаю ** они независимы. 't2' будет зависеть от' t0', 't1' и' t3'. Если вам это нужно, вы должны поместить 't3' в соответствии с требованиями' t2', 't1' в соответствии с требованиями' t3' и 't0' в соответствии с требованиями' t1'. Это означает 3 разных правила. Однако вы должны проверить это. Я не уверен на 100%. – Dacav