生成される makefile を makecfg を使用して S-Function 用にカスタマイズする
コードのビルドでツールチェーン アプローチまたはテンプレート makefile アプローチを使用して、生成される makefile を S-Function 用にカスタマイズできます。カスタマイズを通じて S-Function のビルド プロセスに次の追加項目を指定できます。
ソース ファイルおよびソース フォルダー
インクルード ファイルおよびインクルード フォルダー
ライブラリ名
プリプロセッサ マクロ定義
コンパイラ フラグ
リンク オブジェクト
生成される makefile をカスタマイズするには次を行います。
S-Function コンポーネントを含む S-Function MEX ファイル フォルダーで、
makecfg.m
ファイルまたはspecificSFunction
_makecfg.m
ファイルを作成します。makecfg.m
ファイルを作成すると、そのファイルは、モデルが使用する S-Function MEX ファイル フォルダー内の任意の S-Function に対してアクティブになります。specificSFunction
_makecfg.m
ファイルは、モデルが対応する S-Function を使用する場合にのみアクティブになります。作成したファイル内で関数
RTW.BuildInfo
を使用して、S-Function のビルド プロセス用の追加項目を指定します。たとえば、次のようなことができます。addCompileFlags
を使用してコンパイラ オプションを指定する。addDefines
を使用してプリプロセッサ マクロ定義を指定する。
作成されたファイルを保存します。
コード生成後に、コード ジェネレーターは 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);