
Re: Distributed cross-compilation
Make е класика, но има много алтернативи. За мен най-доброто е този "tup build" -
http://gittup.org/tup/ - не е много за учене, но да се мигрира към него голям наличен проект е силно нереалистично. Аз съм го ползвал за дребни проектчета, и то по-скоро на ниво експерименти. Всъщност освен големината на проектите, размера на екипа може да е голям проблем - трудно се прокарват такива промени. Всички обичат да вдигнат краката на масата и да кажат "чакам да се компилира".
Якото на туп-а е че водещата им цел е безкомпромисно точен билд - в смисъл детекция на промените и следене на зависимостите. Феноменално бързите инкрементални билдове са "страничен ефект" ...
Колкото до скоростта - модерна машина (5950x - 16 ядра/32 треда) мачка пълен билд на кърнела на линукс за минута. Това е за 1.5К евро. За няколко пъти отгоре може да се свали наполовина - ако има кой да инвестира. И не е необходимо да се бориш с дистрибуция на билда.
Приличен фирмуер за ембедед устройство дето излиза 500К бинари го мачка за 2 секунди - пълен ребилд. Други проекти не успяват да се забързат толкова - хвърчи първите 100-тина файла и запецва за 5-6 секунди - идва един голям дейта C файл, дето е нужен за останалите файлове...
Ако се поработи и върху сториджа (на горната машина е екпрес 4.0 самсунг 980 про) може би ще стане още по-добре - не съм изследвал много, но поне визуално според htop-а 32-те треда си стоят пълни през цялото време. В тая машина ссд-тата са 2 броя, ама засега не ми се занимава със второто (предвид резулататите с едно).
Другото, което може да помогне, е ccache - никога не съм го ползвал в мои проекти, но често е идвал с външни такива - примерно yocto и buildroot bsp-та.