Main Content

生成される makefile を makecfg を使用して S-Function 用にカスタマイズする

コードのビルドでツールチェーン アプローチまたはテンプレート makefile アプローチを使用して、生成される makefile を S-Function 用にカスタマイズできます。カスタマイズを通じて S-Function のビルド プロセスに次の追加項目を指定できます。

  • ソース ファイルおよびソース フォルダー

  • インクルード ファイルおよびインクルード フォルダー

  • ライブラリ名

  • プリプロセッサ マクロ定義

  • コンパイラ フラグ

  • リンク オブジェクト

生成される makefile をカスタマイズするには次を行います。

  1. S-Function コンポーネントを含む S-Function MEX ファイル フォルダーで、makecfg.m ファイルまたは specificSFunction_makecfg.m ファイルを作成します。makecfg.m ファイルを作成すると、そのファイルは、モデルが使用する S-Function MEX ファイル フォルダー内の任意の S-Function に対してアクティブになります。specificSFunction_makecfg.m ファイルは、モデルが対応する S-Function を使用する場合にのみアクティブになります。

  2. 作成したファイル内で関数 RTW.BuildInfo を使用して、S-Function のビルド プロセス用の追加項目を指定します。たとえば、次のようなことができます。

    • addCompileFlags を使用してコンパイラ オプションを指定する。

    • addDefines を使用してプリプロセッサ マクロ定義を指定する。

  3. 作成されたファイルを保存します。

コード生成後に、コード ジェネレーターは S-Function MEX ファイル フォルダーで makecfg.m ファイルと specificSFunction_makecfg.m ファイルを探します。ファイルが存在する場合、コード ジェネレーターはこれらのファイルを使用して生成された makefile model.mk をカスタマイズします。

たとえばビルド プロセスの TLC フェーズの後で、signalConvert.mexa64 (S-Function のバイナリ ファイル) および signalConvert.tlc (インライン化された S-Function の実装) が含まれるフォルダーについて検討します。S-Function は、anotherFolder にある追加のソース コード ファイル filterV1.c を必要としています。ファイル signalConvert_makecfg.m を作成し、関数 RTW.BuildInfo を使用してビルド プロセス用に filterV1.c を指定できます。

function signalConvert_makecfg(objBuildInfo)

absolutePath = fullfile('$(START_DIR)', 'anotherFolder');
addSourceFiles(objBuildInfo, 'filterV1.c', absolutePath);

関連するトピック