Я пытаюсь сделать следующее. Существует программа, назовите ее foo-bin
, которая принимает один входной файл и генерирует два выходных файла. Правило Makefile для него было бы следующим:
file-a.out file-b.out: input.in
foo-bin input.in file-a.out file-b.out
Однако это не означает make
каким-либо образом, что обе цели будут генерироваться одновременно. Это нормально при запуске make
в серийном режиме, но, вероятно, вызовет проблему, если вы попытаетесь make -j16
или что-то подобное безумное.
Вопрос заключается в том, существует ли способ написать правильное правило Makefile для такого случая? Очевидно, что он будет генерировать DAG, но каким-то образом руководство GNU не укажет, как этот случай мог обрабатываться.
Выполнение одного и того же кода два раза и генерация только одного результата не может быть и речи, потому что для вычисления требуется время (подумайте: часы). Вывод только одного файла также будет довольно сложным, потому что часто он используется как вход для GNUPLOT, который не знает, как обрабатывать только часть файла данных.