Я вижу два основных способа распространения вашего исходного кода на разные суперкомпьютеры:
тарболы, сгенерированные make dist
версия с управлениемисходное дерево
Если вы используете make dist
сгенерированные тарболы (случай 1) для распространения вашего исходного кода на разные суперкомпьютеры, вы можете использовать одно единственное исходное дерево, извлеченное из тарбола для всехразные суперкомпьютеры, если дерево исходных текстов строится в разных каталогах для каждого суперкомпьютера.
Если вы используете дерево исходников с управлением версиями (случай 2) как для разработки исходного кода, так и для его распространения вразные суперкомпьютеры, у вас есть два варианта:
сохранить сгенерированные файлы make dist
внутри контроля версий
оставить все сгенерированные файлы вне контроля версий
Если вы сохранитеmake dist
сгенерированные файлы внутри системы контроля версий (случай 21), каждый autoreconf
запускается на машине, отличной от той, на которой были сгенерированы эти файлы, будет генерироваться измененный набор сгенерированных файлов, и, следовательно, изменения в файлах без фактических необработанных изменений,Таким образом, в этом случае вам нужно определить единую систему, в которой вы все работаете над разработкой, которая касается системы сборки. Все остальные системы могут заниматься разработкой только внутри исходного кода. Затем вы можете использовать одно дерево версий, управляемое одной версией, на всех разных суперкомпьютерах.
Если вы сохраните все сгенерированные файлы вне контроля версий (случай 22), вам потребуются разные копии дерева версий, управляемых версией, для каждого из них. машина, чтобы избежать несоответствия версий инструмента.
В эпоху распределенных систем контроля версий, таких как git, этот вариант (случай 22) был бы моим предпочтительным вариантом.