2016-08-22 6 views
0

В настоящее время мы модернизируем нашу архаичную систему сборки из кучи пакетных скриптов в систему makefile с использованием NMake. Это сложно, поскольку мы используем собственный промежуточный язык, который заканчивается тем, что вы переводите на C++, где некоторые из наших переводчиков могут генерировать 10 файлов, которые имеют общие части в именах файлов. Другая сложная вещь - мы используем кучу CSV-файлов для настройки наших интерфейсов, и эти файлы передаются нашим инструментам конфигурации, которые генерируют больше файлов исходного кода. Сейчас я сосредоточен на создании простых правил для наших конфигурационных файлов, но, похоже, не может найти способ связать зависимость с правилом, если существует зависимость. Я попытался использовать $ (wildcard xxx.csv), но выяснил, что эта команда не существует для NMake, как для GNU Make.NMake Дополнительные зависимости

Как я могу создать свое правило так, чтобы оно выполняло и выполняло мои команды, если у меня есть два файла csv зависимости, которые всегда существуют, и третий файл csv, который будет существовать только тогда, когда мой проект требует его?

ответ

0

[..] будет существовать только тогда, когда мой проект требует его?

Это немного неясно. Предполагая, что есть команда, которая - в зависимости от каких-либо внешних обстоятельств - может генерировать этот третий файл CSV, вы можете использовать «штемпель файл» (я думаю, что они называют это «псевдо-мишенью» в NMAKE):

stamp: 
    command_that_might_generate_csv3 
    touch stamp # updates timestamp of "stamp" (or creates it) 

target: csv1 csv2 stamp 
    command_using_all_of csv1 csv2 csv3 
+0

К сожалению , что является неопределенным. Позвольте мне пояснить это. Я пытаюсь сделать этот make-файл небольшим, поэтому мы можем использовать его для нескольких проектов, которые используют этот набор инструментов. Если что-то специфично для проекта, оно будет перемещено в отдельный файл. Поэтому наша система имеет определенное количество определенных CSV-файлов, используемых для настройки системы, в зависимости от того, какие карты мы подключили к нашей стойке. Несколько файлов CSV должны существовать, другие должны существовать только в том случае, если будет использовано соответствующее оборудование. Надеюсь, это имеет смысл – Talguy

Смежные вопросы