Я использую цепочку инструментов, которая больше похожа на сеть. Есть лоты альтернативных начальных точек, все они приводят к одному окончательному результату.Как указать, где начать в графике зависимости, который не имеет фиксированной начальной точки
Обычно я использую make или scons - на самом деле, я предпочитаю scons, но моя команда очень предпочитает делать. Я открыт для других инструментов сборки.
Э.Г. final_result зависит от предпоследней
final_result: penultimate
предпоследнем могут быть сделаны в любом из нескольких различных способов:
Если начиная с file1, затем
penultimate: file1 ; rule1
Если начиная с file2, то
penultimate: file2 ; rule2
В: Как указать, чтобы начать с file2, а не file1?
Я полагаю, что я мог бы использовать переключатель командной строки и ifdeffing. Но я предпочел бы, чтобы make или scons выяснили: «Эй, там есть файл2, поэтому я должен использовать rule2, а не fil1/rule1». Отчасти из-за того, что сеть намного сложнее, чем это ...
Хуже, иногда промежуточное звено на одном пути может начинаться с другого. Давайте посмотрим:
.с производит .diag
foo.diag: foo.s
Но иногда нет .с, и у меня просто .diag, что кто-то дал мне уже построили.
.diag производит .heximg, и .hwresult
foo.hwresult: hwsim foo.heximg
foo.heximg: foo.diag
Но иногда мне дают .img непосредственно
И т.д.
Я просто хочу, чтобы написать общую зависимость граф и скажите «ОК, теперь вот что мне дано - теперь как вы доберетесь до конечного результата?»
С тем, что у меня есть сейчас, когда мне дано, скажем, foo.img, мне говорят (сделав в этом случае) «foo.s not dfound». Поскольку make хочет вернуться на график зависимости, чтобы узнать, устарел ли foo.img, тогда как я хочу сказать: «Предположите, что foo.img обновлен, и работайте над файлами, которые зависят от foo.img , вместо того, чтобы возвращаться к тому, что зависит от foo.img ».
Фактически, есть несколько конечных выходов. Я просто хотел упростить. –