カスタム ツールチェーンの登録および実行可能ファイルのビルド
この例では、ツールチェーンを登録および使用して実行可能ファイルをビルドする方法を説明します。この例では Intel® のコンパイラを使用しています。ただし、概念とプログラミング インターフェイスはその他のツールチェーンに適用されます。ツールチェーンを登録すると、コード ジェネレーターがそのツールチェーンを使用してモデルの実行可能ファイルをビルドするようにモデルを設定できます。
ツールチェーン
ツールチェーンは、指定されたプラットフォーム用にコードをコンパイルおよびリンクするために必要なツールの集合です。ツールチェーンは、コンパイラ、リンカー、アーカイバーなどの複数のツールで構成されます。ツールチェーンのツールには複数のオプションが設定でき、ツールの仕様は設定の種類ごとにグループ化できます。
新規フォルダーの作成と関連ファイルのコピー
以下のコードは、現在の作業フォルダー (pwd) 内にフォルダーを作成します。新規のフォルダーにはこの例のファイルが含まれます。現在のフォルダーに影響を与えたくない場合や、このフォルダーでファイルを生成できない場合は、作業フォルダーを変更してからコマンドを呼び出してください。
copyfile(fullfile(matlabroot,'toolbox','rtw','rtwdemos','toolchain_demo'),'toolchain_demo','f') cd toolchain_demo
モデルを開く
rtwdemo_counter
モデルを開きます。既定では、このモデルは実行可能ファイルのビルドに汎用リアルタイム ターゲット (GRT) のコンフィギュレーションとツールチェーン アプローチを使用するように構成されています。この例で示される機能は、ツールチェーン アプローチを使用するよう構成されたモデルで使用できます。
model = 'rtwdemo_counter';
open_system(model)
ツールチェーンの選択
[コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。[コード生成] を選択します。[ツールチェーン設定] セクションには、ツールチェーンの構成のためのパラメーターが含まれています。[ツールチェーン] ドロップダウン リストから、開発システムにインストールされた、モデル生成コードから実行可能ファイルをビルドするためのツールチェーンを選択します。
既定では、[Faster Runs] ビルド構成が選択されます。[設定を表示] をクリックすると、生成コードのビルド用に指定されたツールチェーン フラグが表示されます。現在のアプリケーション開発の目的に基づいてビルド構成を選択します。
[コンフィギュレーション パラメーター] ダイアログ ボックスを閉じます。
ToolchainInfo オブジェクトの作成
この例では、カスタム ツールチェーンを登録し、選択可能な [ツールチェーン] オプションとして追加する方法を示します。
カスタム ツールチェーンを登録する最初の手順は、ツールチェーンに関する情報を含む ToolchainInfo
オブジェクトを作成することです。ツールチェーンの仕様を設定するにはメソッドを使用できます。ToolchainInfo
オブジェクトはインストール間で共有できます。
Intel Compiler 用のツールチェーン定義ファイルを開きます。このファイルは、64 ビット Windows® プラットフォーム上で Intel ツールチェーンに関する情報を含む ToolchainInfo
オブジェクトを作成します。
edit intel_tc type intel_tc
function tc = intel_tc %INTEL_TC Creates an Intel v18 ToolchainInfo object. % This file can be used as a template to define other toolchains on Windows. % Copyright 2012-2019 The MathWorks, Inc. tc = coder.make.ToolchainInfo('BuildArtifact', 'nmake makefile'); tc.Name = 'Intel v18 | nmake makefile (64-bit Windows)'; tc.Platform = 'win64'; tc.SupportedVersion = '18'; tc.addAttribute('TransformPathsWithSpaces'); tc.addAttribute('RequiresCommandFile'); tc.addAttribute('RequiresBatchFile'); % ------------------------------ % Setup % ------------------------------ % Below we are using %ICPP_COMPILER18% as root folder where Intel Compiler is installed. % You can either set an environment variable or give full path to the % compilervars.bat file tc.ShellSetup{1} = 'call %ICPP_COMPILER18%\bin\compilervars.bat intel64'; % ------------------------------ % Macros % ------------------------------ tc.addMacro('MW_EXTERNLIB_DIR', ['$(MATLAB_ROOT)\extern\lib\' tc.Platform '\microsoft']); tc.addMacro('MW_LIB_DIR', ['$(MATLAB_ROOT)\lib\' tc.Platform]); tc.addMacro('CFLAGS_ADDITIONAL', '-D_CRT_SECURE_NO_WARNINGS'); tc.addMacro('CPPFLAGS_ADDITIONAL', '-EHs -D_CRT_SECURE_NO_WARNINGS'); tc.addMacro('LIBS_TOOLCHAIN', '$(conlibs)'); tc.addMacro('CVARSFLAG', ''); tc.addIntrinsicMacros({'ldebug', 'conflags', 'cflags'}); % ------------------------------ % C Compiler % ------------------------------ tool = tc.getBuildTool('C Compiler'); tool.setName( 'Intel C Compiler'); tool.setCommand( 'icl'); tool.setPath( ''); tool.setDirective( 'IncludeSearchPath', '-I'); tool.setDirective( 'PreprocessorDefine', '-D'); tool.setDirective( 'OutputFlag', '-Fo'); tool.setDirective( 'Debug', '-Zi'); tool.setFileExtension( 'Source', '.c'); tool.setFileExtension( 'Header', '.h'); tool.setFileExtension( 'Object', '.obj'); tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); % ------------------------------ % C++ Compiler % ------------------------------ tool = tc.getBuildTool('C++ Compiler'); tool.setName( 'Intel C++ Compiler'); tool.setCommand( 'icl'); tool.setPath( ''); tool.setDirective( 'IncludeSearchPath', '-I'); tool.setDirective( 'PreprocessorDefine', '-D'); tool.setDirective( 'OutputFlag', '-Fo'); tool.setDirective( 'Debug', '-Zi'); tool.setFileExtension( 'Source', '.cpp'); tool.setFileExtension( 'Header', '.hpp'); tool.setFileExtension( 'Object', '.obj'); tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); % ------------------------------ % Linker % ------------------------------ tool = tc.getBuildTool('Linker'); tool.setName( 'Intel C/C++ Linker'); tool.setCommand( 'xilink'); tool.setPath( ''); tool.setDirective( 'Library', '-L'); tool.setDirective( 'LibrarySearchPath', '-I'); tool.setDirective( 'OutputFlag', '-out:'); tool.setDirective( 'Debug', ''); tool.setFileExtension( 'Executable', '.exe'); tool.setFileExtension( 'Shared Library', '.dll'); tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); % ------------------------------ % C++ Linker % ------------------------------ tool = tc.getBuildTool('C++ Linker'); tool.setName( 'Intel C/C++ Linker'); tool.setCommand( 'xilink'); tool.setPath( ''); tool.setDirective( 'Library', '-L'); tool.setDirective( 'LibrarySearchPath', '-I'); tool.setDirective( 'OutputFlag', '-out:'); tool.setDirective( 'Debug', ''); tool.setFileExtension( 'Executable', '.exe'); tool.setFileExtension( 'Shared Library', '.dll'); tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); % ------------------------------ % Archiver % ------------------------------ tool = tc.getBuildTool('Archiver'); tool.setName( 'Intel C/C++ Archiver'); tool.setCommand( 'xilib'); tool.setPath( ''); tool.setDirective( 'OutputFlag', '-out:'); tool.setFileExtension( 'Static Library', '.lib'); tool.setCommandPattern('|>TOOL<| |>TOOL_OPTIONS<| |>OUTPUT_FLAG<||>OUTPUT<|'); % ------------------------------ % Builder % ------------------------------ tc.setBuilderApplication(tc.Platform); % -------------------------------------------- % BUILD CONFIGURATIONS % -------------------------------------------- optimsOffOpts = {'/c /Od'}; optimsOnOpts = {'/c /O2'}; cCompilerOpts = '$(cflags) $(CVARSFLAG) $(CFLAGS_ADDITIONAL)'; cppCompilerOpts = '$(cflags) $(CVARSFLAG) $(CPPFLAGS_ADDITIONAL)'; linkerOpts = {'$(ldebug) $(conflags) $(LIBS_TOOLCHAIN)'}; sharedLinkerOpts = horzcat(linkerOpts, '-dll -def:$(DEF_FILE)'); archiverOpts = {'/nologo'}; % Get the debug flag per build tool debugFlag.CCompiler = '$(CDEBUG)'; debugFlag.CppCompiler = '$(CPPDEBUG)'; debugFlag.Linker = '$(LDDEBUG)'; debugFlag.CppLinker = '$(CPPLDDEBUG)'; debugFlag.Archiver = '$(ARDEBUG)'; % Set the toolchain flags for 'Faster Builds' build configuration cfg = tc.getBuildConfiguration('Faster Builds'); cfg.setOption( 'C Compiler', horzcat(cCompilerOpts, optimsOffOpts)); cfg.setOption( 'C++ Compiler', horzcat(cppCompilerOpts, optimsOffOpts)); cfg.setOption( 'Linker', linkerOpts); cfg.setOption( 'C++ Linker', linkerOpts); cfg.setOption( 'Shared Library Linker', sharedLinkerOpts); cfg.setOption( 'Archiver', archiverOpts); % Set the toolchain flags for 'Faster Runs' build configuration cfg = tc.getBuildConfiguration('Faster Runs'); cfg.setOption( 'C Compiler', horzcat(cCompilerOpts, optimsOnOpts)); cfg.setOption( 'C++ Compiler', horzcat(cppCompilerOpts, optimsOnOpts)); cfg.setOption( 'Linker', linkerOpts); cfg.setOption( 'C++ Linker', linkerOpts); cfg.setOption( 'Shared Library Linker', sharedLinkerOpts); cfg.setOption( 'Archiver', archiverOpts); % Set the toolchain flags for 'Debug' build configuration cfg = tc.getBuildConfiguration('Debug'); cfg.setOption( 'C Compiler', horzcat(cCompilerOpts, optimsOffOpts, debugFlag.CCompiler)); cfg.setOption( 'C++ Compiler', horzcat(cppCompilerOpts, optimsOffOpts, debugFlag.CppCompiler)); cfg.setOption( 'Linker', horzcat(linkerOpts, debugFlag.Linker)); cfg.setOption( 'C++ Linker', horzcat(linkerOpts, debugFlag.CppLinker)); cfg.setOption( 'Shared Library Linker', horzcat(sharedLinkerOpts, debugFlag.Linker)); cfg.setOption( 'Archiver', horzcat(archiverOpts, debugFlag.Archiver)); tc.setBuildConfigurationOption('all', 'Make Tool', '-f $(MAKEFILE)');
エラーと警告はカスタム コンパイラで生成されたビルドから診断メッセージ ペインに表示できます。詳細については、診断メッセージ ペインを参照してください。
ツールチェーン定義ファイルを実行して、ToolchainInfo
オブジェクトを生成します。
tc = intel_tc;
ToolchainInfo
オブジェクト tc
を MAT ファイルに保存します。
save intel_tc tc
カスタム ツールチェーンの登録
新しいツールチェーンの ToolchainInfo
オブジェクトを作成したら、登録します。ツールチェーンを RTW.TargetRegistry
に登録します。ツールチェーンを登録するには、rtwTargetInfo.m
ファイルに書き込みます。次に、そのファイルを MATLAB パスに追加し、システムに自動的に読み込まれるようにします。
type rtwTargetInfo
function rtwTargetInfo(tr) %RTWTARGETINFO Registration file for custom toolchains. % Copyright 2012-2019 The MathWorks, Inc. tr.registerTargetInfo(@loc_createToolchain); end % ------------------------------------------------------------------------- % Create the ToolchainInfoRegistry entries % ------------------------------------------------------------------------- function config = loc_createToolchain config(1) = coder.make.ToolchainInfoRegistry; config(1).Name = 'Intel v18 | nmake makefile (64-bit Windows)'; config(1).FileName = fullfile(fileparts(mfilename('fullpath')), 'intel_tc.mat'); config(1).TargetHWDeviceType = {'*'}; config(1).Platform = {computer('arch')}; end
TargetRegistry
をリセットし、新しい rtwTargetInfo.m
ファイルを使用するようにします。
RTW.TargetRegistry.getInstance('reset');
カスタム ツールチェーンの選択
[コンフィギュレーション パラメーター] ダイアログ ボックスを再度開きます。[ツールチェーン] をクリックします。リストに新しいツールチェーンが表示されます。Intel v18
ツールチェーンを選択します。
次のコマンドを使用すると、プログラムによって同じタスクを実行できます。
cs = getActiveConfigSet(model);
set_param(cs, 'Toolchain', tc.Name)
選択内容を確認します。
toolchain = get_param(cs, 'Toolchain')
toolchain = 'Intel v18 | nmake makefile (64-bit Windows)'
カスタム ツールチェーンを使用したモデルのビルド
これで、新しいカスタム ツールチェーンを用いてモデルをビルドできます。
メモ: Intel ツールチェーンがインストールされていない場合は、以下のコマンドを使用してコードと makefile のみを生成できます。
set_param(cs, 'GenCodeOnly', 'on')
モデルをビルドして、新しいツールチェーンを使用するコードおよび makefile を生成します。
slbuild(model)
### Starting build procedure for: rtwdemo_counter ### Successful completion of code generation for: rtwdemo_counter Build Summary Top model targets built: Model Action Rebuild Reason =================================================================================== rtwdemo_counter Code generated Code generation information file does not exist. 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 26.094s
ビルド ディレクトリの情報を取得します。
dirInfo = RTW.getBuildDir(model);
生成された makefile を調査します。
type(fullfile(dirInfo.BuildDirectory, [model '.mk']))
########################################################################### ## Makefile generated for component 'rtwdemo_counter'. ## ## Makefile : rtwdemo_counter.mk ## Generated on : Mon Jan 11 20:31:42 2021 ## Final product: $(RELATIVE_PATH_TO_ANCHOR)\rtwdemo_counter.exe ## Product type : executable ## ########################################################################### ########################################################################### ## MACROS ########################################################################### # Macro Descriptions: # PRODUCT_NAME Name of the system to build # MAKEFILE Name of this makefile # COMPILER_COMMAND_FILE Compiler command listing model reference header paths # CMD_FILE Command file PRODUCT_NAME = rtwdemo_counter MAKEFILE = rtwdemo_counter.mk MATLAB_ROOT = D:\JOBARC~1\Bdoc21a\2W09AA~J\matlab MATLAB_BIN = D:\JOBARC~1\Bdoc21a\2W09AA~J\matlab\bin MATLAB_ARCH_BIN = $(MATLAB_BIN)\win64 START_DIR = C:\Users\johnr\ONEDRI~1\DOCUME~1\MATLAB\Examples\SIMULI~1\TOOLCH~1 SOLVER = SOLVER_OBJ = CLASSIC_INTERFACE = 0 TGT_FCN_LIB = None MODEL_HAS_DYNAMICALLY_LOADED_SFCNS = 0 RELATIVE_PATH_TO_ANCHOR = .. COMPILER_COMMAND_FILE = rtwdemo_counter_comp.rsp CMD_FILE = rtwdemo_counter.rsp C_STANDARD_OPTS = CPP_STANDARD_OPTS = ########################################################################### ## TOOLCHAIN SPECIFICATIONS ########################################################################### # Toolchain Name: Intel v18 | nmake makefile (64-bit Windows) # Supported Version(s): 18 # ToolchainInfo Version: 2021a # Specification Revision: 1.0 # #------------------------------------------- # Macros assumed to be defined elsewhere #------------------------------------------- # ldebug # conflags # cflags #----------- # MACROS #----------- MW_EXTERNLIB_DIR = $(MATLAB_ROOT)\extern\lib\win64\microsoft MW_LIB_DIR = $(MATLAB_ROOT)\lib\win64 CFLAGS_ADDITIONAL = -D_CRT_SECURE_NO_WARNINGS CPPFLAGS_ADDITIONAL = -EHs -D_CRT_SECURE_NO_WARNINGS LIBS_TOOLCHAIN = $(conlibs) TOOLCHAIN_SRCS = TOOLCHAIN_INCS = TOOLCHAIN_LIBS = #------------------------ # BUILD TOOL COMMANDS #------------------------ # C Compiler: Intel C Compiler CC = icl # Linker: Intel C/C++ Linker LD = xilink # C++ Compiler: Intel C++ Compiler CPP = icl # C++ Linker: Intel C/C++ Linker CPP_LD = xilink # Archiver: Intel C/C++ Archiver AR = xilib # MEX Tool: MEX Tool MEX_PATH = $(MATLAB_ARCH_BIN) MEX = "$(MEX_PATH)\mex" # Download: Download DOWNLOAD = # Execute: Execute EXECUTE = $(PRODUCT) # Builder: NMAKE Utility MAKE = nmake #------------------------- # Directives/Utilities #------------------------- CDEBUG = -Zi C_OUTPUT_FLAG = -Fo LDDEBUG = OUTPUT_FLAG = -out: CPPDEBUG = -Zi CPP_OUTPUT_FLAG = -Fo CPPLDDEBUG = OUTPUT_FLAG = -out: ARDEBUG = STATICLIB_OUTPUT_FLAG = -out: MEX_DEBUG = -g RM = @del ECHO = @echo MV = @ren RUN = @cmd /C #---------------------------------------- # "Faster Builds" Build Configuration #---------------------------------------- ARFLAGS = /nologo CFLAGS = $(cflags) $(CVARSFLAG) $(CFLAGS_ADDITIONAL) \ /c /Od CPPFLAGS = $(cflags) $(CVARSFLAG) $(CPPFLAGS_ADDITIONAL) \ /c /Od CPP_LDFLAGS = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN) CPP_SHAREDLIB_LDFLAGS = DOWNLOAD_FLAGS = EXECUTE_FLAGS = LDFLAGS = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN) MEX_CPPFLAGS = MEX_CPPLDFLAGS = MEX_CFLAGS = MEX_LDFLAGS = MAKE_FLAGS = -f $(MAKEFILE) SHAREDLIB_LDFLAGS = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN) \ -dll -def:$(DEF_FILE) ########################################################################### ## OUTPUT INFO ########################################################################### PRODUCT = $(RELATIVE_PATH_TO_ANCHOR)\rtwdemo_counter.exe PRODUCT_TYPE = "executable" BUILD_TYPE = "Top-Level Standalone Executable" ########################################################################### ## INCLUDE PATHS ########################################################################### INCLUDES_BUILDINFO = INCLUDES = $(INCLUDES_BUILDINFO) ########################################################################### ## DEFINES ########################################################################### DEFINES_BUILD_ARGS = -DCLASSIC_INTERFACE=0 -DALLOCATIONFCN=0 -DTERMFCN=0 -DONESTEPFCN=1 -DMAT_FILE=0 -DMULTI_INSTANCE_CODE=0 -DINTEGER_CODE=0 -DMT=0 DEFINES_CUSTOM = DEFINES_OPTS = -DTID01EQ=0 DEFINES_STANDARD = -DMODEL=rtwdemo_counter -DNUMST=1 -DNCSTATES=0 -DHAVESTDIO -DMODEL_HAS_DYNAMICALLY_LOADED_SFCNS=0 DEFINES = $(DEFINES_BUILD_ARGS) $(DEFINES_CUSTOM) $(DEFINES_OPTS) $(DEFINES_STANDARD) ########################################################################### ## SOURCE FILES ########################################################################### SRCS = $(START_DIR)\rtwdemo_counter_ert_rtw\rtwdemo_counter.c MAIN_SRC = $(START_DIR)\rtwdemo_counter_ert_rtw\ert_main.c ALL_SRCS = $(SRCS) $(MAIN_SRC) ########################################################################### ## OBJECTS ########################################################################### OBJS = rtwdemo_counter.obj MAIN_OBJ = ert_main.obj ALL_OBJS = $(OBJS) $(MAIN_OBJ) ########################################################################### ## PREBUILT OBJECT FILES ########################################################################### PREBUILT_OBJS = ########################################################################### ## LIBRARIES ########################################################################### LIBS = ########################################################################### ## SYSTEM LIBRARIES ########################################################################### SYSTEM_LIBS = ########################################################################### ## ADDITIONAL TOOLCHAIN FLAGS ########################################################################### #--------------- # C Compiler #--------------- CFLAGS_BASIC = $(DEFINES) @$(COMPILER_COMMAND_FILE) CFLAGS = $(CFLAGS) $(CFLAGS_BASIC) #----------------- # C++ Compiler #----------------- CPPFLAGS_BASIC = $(DEFINES) @$(COMPILER_COMMAND_FILE) CPPFLAGS = $(CPPFLAGS) $(CPPFLAGS_BASIC) ########################################################################### ## INLINED COMMANDS ########################################################################### ########################################################################### ## PHONY TARGETS ########################################################################### .PHONY : all build buildobj clean info prebuild download execute set_environment_variables all : build @cmd /C "@echo ### Successfully generated all binary outputs." build : set_environment_variables prebuild $(PRODUCT) buildobj : set_environment_variables prebuild $(OBJS) $(PREBUILT_OBJS) @cmd /C "@echo ### Successfully generated all binary outputs." prebuild : download : $(PRODUCT) execute : download @cmd /C "@echo ### Invoking postbuild tool "Execute" ..." $(EXECUTE) $(EXECUTE_FLAGS) @cmd /C "@echo ### Done invoking postbuild tool." set_environment_variables : @set INCLUDE=$(INCLUDES);$(INCLUDE) @set LIB=$(LIB) ########################################################################### ## FINAL TARGET ########################################################################### #------------------------------------------- # Create a standalone executable #------------------------------------------- $(PRODUCT) : $(OBJS) $(PREBUILT_OBJS) $(MAIN_OBJ) @cmd /C "@echo ### Creating standalone executable "$(PRODUCT)" ..." $(LD) $(LDFLAGS) -out:$(PRODUCT) @$(CMD_FILE) $(SYSTEM_LIBS) $(TOOLCHAIN_LIBS) @cmd /C "@echo ### Created: $(PRODUCT)" ########################################################################### ## INTERMEDIATE TARGETS ########################################################################### #--------------------- # SOURCE-TO-OBJECT #--------------------- .c.obj : $(CC) $(CFLAGS) -Fo"$@" "$<" .cpp.obj : $(CPP) $(CPPFLAGS) -Fo"$@" "$<" {$(RELATIVE_PATH_TO_ANCHOR)}.c.obj : $(CC) $(CFLAGS) -Fo"$@" "$<" {$(RELATIVE_PATH_TO_ANCHOR)}.cpp.obj : $(CPP) $(CPPFLAGS) -Fo"$@" "$<" {$(START_DIR)}.c.obj : $(CC) $(CFLAGS) -Fo"$@" "$<" {$(START_DIR)}.cpp.obj : $(CPP) $(CPPFLAGS) -Fo"$@" "$<" {$(START_DIR)\rtwdemo_counter_ert_rtw}.c.obj : $(CC) $(CFLAGS) -Fo"$@" "$<" {$(START_DIR)\rtwdemo_counter_ert_rtw}.cpp.obj : $(CPP) $(CPPFLAGS) -Fo"$@" "$<" {$(MATLAB_ROOT)\rtw\c\src}.c.obj : $(CC) $(CFLAGS) -Fo"$@" "$<" {$(MATLAB_ROOT)\rtw\c\src}.cpp.obj : $(CPP) $(CPPFLAGS) -Fo"$@" "$<" {$(MATLAB_ROOT)\simulink\src}.c.obj : $(CC) $(CFLAGS) -Fo"$@" "$<" {$(MATLAB_ROOT)\simulink\src}.cpp.obj : $(CPP) $(CPPFLAGS) -Fo"$@" "$<" ert_main.obj : $(START_DIR)\rtwdemo_counter_ert_rtw\ert_main.c $(CC) $(CFLAGS) -Fo"$@" $(START_DIR)\rtwdemo_counter_ert_rtw\ert_main.c rtwdemo_counter.obj : $(START_DIR)\rtwdemo_counter_ert_rtw\rtwdemo_counter.c $(CC) $(CFLAGS) -Fo"$@" $(START_DIR)\rtwdemo_counter_ert_rtw\rtwdemo_counter.c ########################################################################### ## DEPENDENCIES ########################################################################### $(ALL_OBJS) : rtw_proj.tmw $(COMPILER_COMMAND_FILE) $(MAKEFILE) ########################################################################### ## MISCELLANEOUS TARGETS ########################################################################### info : @cmd /C "@echo ### PRODUCT = $(PRODUCT)" @cmd /C "@echo ### PRODUCT_TYPE = $(PRODUCT_TYPE)" @cmd /C "@echo ### BUILD_TYPE = $(BUILD_TYPE)" @cmd /C "@echo ### INCLUDES = $(INCLUDES)" @cmd /C "@echo ### DEFINES = $(DEFINES)" @cmd /C "@echo ### ALL_SRCS = $(ALL_SRCS)" @cmd /C "@echo ### ALL_OBJS = $(ALL_OBJS)" @cmd /C "@echo ### LIBS = $(LIBS)" @cmd /C "@echo ### MODELREF_LIBS = $(MODELREF_LIBS)" @cmd /C "@echo ### SYSTEM_LIBS = $(SYSTEM_LIBS)" @cmd /C "@echo ### TOOLCHAIN_LIBS = $(TOOLCHAIN_LIBS)" @cmd /C "@echo ### CFLAGS = $(CFLAGS)" @cmd /C "@echo ### LDFLAGS = $(LDFLAGS)" @cmd /C "@echo ### SHAREDLIB_LDFLAGS = $(SHAREDLIB_LDFLAGS)" @cmd /C "@echo ### CPPFLAGS = $(CPPFLAGS)" @cmd /C "@echo ### CPP_LDFLAGS = $(CPP_LDFLAGS)" @cmd /C "@echo ### CPP_SHAREDLIB_LDFLAGS = $(CPP_SHAREDLIB_LDFLAGS)" @cmd /C "@echo ### ARFLAGS = $(ARFLAGS)" @cmd /C "@echo ### MEX_CFLAGS = $(MEX_CFLAGS)" @cmd /C "@echo ### MEX_CPPFLAGS = $(MEX_CPPFLAGS)" @cmd /C "@echo ### MEX_LDFLAGS = $(MEX_LDFLAGS)" @cmd /C "@echo ### MEX_CPPLDFLAGS = $(MEX_CPPLDFLAGS)" @cmd /C "@echo ### DOWNLOAD_FLAGS = $(DOWNLOAD_FLAGS)" @cmd /C "@echo ### EXECUTE_FLAGS = $(EXECUTE_FLAGS)" @cmd /C "@echo ### MAKE_FLAGS = $(MAKE_FLAGS)" clean : $(ECHO) "### Deleting all derived files..." @if exist $(PRODUCT) $(RM) $(PRODUCT) $(RM) $(ALL_OBJS) $(ECHO) "### Deleted all derived files."
Intel Compiler がインストールされていれば、ビルド プロセスの完了後に実行可能ファイルを実行できます。
if ispc system([model '.exe']) else system(model) end
[元に戻す]
オプションで、はじめに作成したフォルダーを削除できます。
cd .. rmdir('toolchain_demo', 's')
上で登録したツールチェーンを削除するには、TargetRegistry
をリセットします。
RTW.TargetRegistry.getInstance('reset');
モデルを閉じます。
close_system(model, 0)
ワークスペースに導入した変数を消去します。
clear INC K LIMIT RESET model tc cs toolchain