Используйте makecfg для настройки сгенерированных make-файлов для S-функций

С помощью подхода make-файла набора инструментальных средств или шаблона для строительного кода можно настроить сгенерированные make-файлы для S-функций. Посредством индивидуальной настройки можно задать дополнительные элементы для процесса сборки S-функции:

  • Исходные файлы и папки

  • Включать файлы и папки

  • Имена библиотек

  • Определения макросов препроцессора

  • Флаги компилятора

  • Ссылка на объекты

Чтобы настроить сгенерированный make-файл:

  1. В папке файла MEX S-функции, которая содержит ваши компоненты S-функции, создайте makecfg.m или specificSFunction_makecfg.m файл. Если вы создаете makecfg.m файл, он активен для любой S-функции в папке файла MEX S-функции, которую использует модель. A specificSFunction_makecfg.m файл активен, только если модель использует соответствующую S-функцию.

  2. В файле, который вы создаете, используйте RTW.BuildInfo функции для задания дополнительных элементов для процесса сборки S-функции. Для примера можно использовать:

    • addCompileFlags для задания опций компилятора.

    • addDefines для задания определений макросов препроцессора.

  3. Сохраните созданный файл.

После генерации кода, в папке файла MEX S-функции, генератор кода ищет makecfg.m и specificSFunction_makecfg.m файлы. Если файлы присутствуют, генератор кода использует эти файлы, чтобы настроить сгенерированный make-файл, model.mk.

Например, рассмотрите папку, которая содержит signalConvert.mexa64(двоичный файл S-функции) и signalConvert.tlc (реализация встроенной S-функции) после фазы TLC процесса сборки. Для S-функции требуется дополнительный файл исходного кода, filterV1.c, который расположен в anotherFolder. Можно создать файл, signalConvert_makecfg.m, который использует RTW.BuildInfo функции для задания filterV1.c для процесса сборки.

function signalConvert_makecfg(objBuildInfo)

absolute = fullfile('$(START_DIR)', 'anotherFolder');

addIncludePaths(objBuildInfo, absolute);
addSourcePaths(objBuildInfo, absolute);
addSourceFiles(objBuildInfo,'filterV1.c');

Похожие темы