Критерии: Makefile - это GNU Make Makefile - меня не интересуют makepp, qmake, cmake и т. Д. Все они хороши (особенно cmake), но это для работы и для работы мы используем GNU Make. Оптимальное решение - это чистый файл Makefile, а не сценарий оболочки, который анализирует make за вас.
Я также не хочу использовать решение «продолжить при сбое» - если оно сломано, значит, оно не работает и требует исправления.
Ситуация такова, что у меня есть make-файл, который создает несколько каталогов в параллельный - если один из них выходит из строя, конечно, вся сборка терпит неудачу, но не до тех пор, пока все выполнение не завершится (или не завершится). Это означает, что причина, по которой make действительно потерпела неудачу, скрыта где-то произвольно далеко от конца вывода make.
Вот пример того, что у меня есть:
all: $(SUBDIRS)
SUBDIRS = \
apple \
orange \
banana \
pineapple \
lemon \
watermelon \
grapefruit
$(SUBDIRS):
cd $@ && $(MAKE) $(MFLAGS) 2>&1 | sed -e "s/^/$(notdir $(@)): /g"
Если я запустил make -j 5 и orange происходит сбой - хотелось бы видеть в конце такую таблицу процесса make
apple - passed
orange - FAILED
banana - passed
pineapple - passed
lemon - passed
Я подумал о том, чтобы && echo "прошло"> .result || echo "FAILED"> .result,но make по-прежнему нуждается в какой-то команде очистки TRAP или __onexit (), чтобы печатать на них при выходе.
У кого-нибудь из ниндзя Makefile есть решение на основе чистого makefile для этого?
un-edit - мое решение на самом деле не работало так, как я надеялся .. STYMIED!