]> Sergey Matveev's repositories - stargrave-blog.git/commit
goredo интеграция с jobserver GNU Make и NetBSD bmake
authorSergey Matveev <stargrave@stargrave.org>
Fri, 25 Jun 2021 10:29:39 +0000 (13:29 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Fri, 25 Jun 2021 10:36:32 +0000 (13:36 +0300)
commite1871a32d8b81b858d121ee43c1dbf57d60ed6ef
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent82fcf5ca303133e29c2ef9f7fa3439c2f5695387
goredo интеграция с jobserver GNU Make и NetBSD bmake

http://lists.cypherpunks.ru/archive/goredo-devel/2106/0031.html
Недавно зарелизил goredo с совместимостью с jobserver реализацией либо
GNU, либо NetBSD make (который используется по умолчанию и в FreeBSD).
Суть всех jobserver-ов (включая тот, что из коробки в goredo) одинакова:
pipe, который передаётся дочерним процессам, по которому гоняется
однобайтный токен (f6e7ce58418d4b6dbcbf28b31698f1b6830ca028). Вот только
способ передачи знаний о файловых дескриптора отличается: GNU и NetBSD
версии используют MAKEFLAGS переменную окружения, в которой отличающийся
формат опций.

Через REDO_MAKE переменную окружения можно указать какой вид передачи
"знаний" об этих файловых дескриптора goredo должен использовать. По
сути, то это просто выбор регулярки, которая найдёт два числовых
идентификатора файловых дескрипторов, и названий переменных.

Теперь, если используется и Make и redo, то количество worker-ов будет
совместно ограничиваться между ними. Причём, как запуская make под redo,
так и наоборот. Зачем? А почему бы и нет. apenwarr/redo поддерживает GNU
Make протокол. А goredo ещё и bmake-овый!