coder.target - Determine if code generation target is specified target - MATLAB (original) (raw)

Determine if code generation target is specified target

Syntax

Description

`tf` = coder.target([target](#bt1z02r-1-target)) returns true (1) if the code generation target is target. Otherwise, it returns false (0).

If you generate code for MATLAB® classes, MATLAB computes class initial values at class loading time before code generation. If you use coder.target in MATLAB class property initialization, coder.target('MATLAB') returns true.

example

Examples

collapse all

Use coder.target to Parameterize a MATLAB Function

Parameterize a MATLAB function so that it works in MATLAB or in generated code. When the function runs in MATLAB, it calls the MATLAB function myabsval. The generated code, however, calls a C library function myabsval.

Write a MATLAB functionmyabsval.

function y = myabsval(u)
%#codegen y = abs(u);

Generate a C static library for myabsval, using the-args option to specify the size, type, and complexity of the input parameter.

codegen -config:lib myabsval -args {0.0}

Thecodegen function creates the library filemyabsval.lib and header file myabsval.h in the folder \codegen\lib\myabsval. (The library file extension can change depending on your platform.) It generates the functionsmyabsval_initialize and myabsval_terminate in the same folder.

Write a MATLAB function to call the generated C library function usingcoder.ceval.

function y = callmyabsval(y)
%#codegen % Check the target. Do not use coder.ceval if callmyabsval is % executing in MATLAB if coder.target('MATLAB') % Executing in MATLAB, call function myabsval y = myabsval(y); else % add the required include statements to generated function code coder.updateBuildInfo('addIncludePaths','$(START_DIR)\codegen\lib\myabsval'); coder.cinclude('myabsval_initialize.h'); coder.cinclude('myabsval.h'); coder.cinclude('myabsval_terminate.h');

% Executing in the generated code. % Call the initialize function before calling the % C function for the first time coder.ceval('myabsval_initialize');

% Call the generated C library function myabsval y = coder.ceval('myabsval',y);

% Call the terminate function after % calling the C function for the last time coder.ceval('myabsval_terminate'); end

Generate the MEX function callmyabsval_mex. Provide the generated library file at the command line.

codegen -config:mex callmyabsval codegen\lib\myabsval\myabsval.lib -args {-2.75}

Rather than providing the library at the command line, you can use coder.updateBuildInfo to specify the library within the function. Use this option to preconfigure the build. Add this line to the else block:

coder.updateBuildInfo('addLinkObjects','myabsval.lib','$(START_DIR)\codegen\lib\myabsval',100,true,true);

Run the MEX function callmyabsval_mex which calls the library functionmyabsval.

Call the MATLAB functioncallmyabsval.

Thecallmyabsval function exhibits the desired behavior for execution in MATLAB and in code generation.

Input Arguments

collapse all

target — code generation target

'MATLAB' | 'C' | 'C++' | 'CUDA' | 'HLS' | 'SystemVerilog' | 'Verilog' | 'VHDL' | 'MEX' | 'Sfun' | 'Rtw' | 'HDL ' | 'Custom'

Code generation target, specified as a character vector or a string scalar. Specify one of these targets.

'MATLAB' Running in MATLAB (not generating code)
'C', 'C++','CUDA', 'HLS','SystemVerilog', 'Verilog','VHDL' Supported target languages for code generation
'MEX' Generating a MEX function
'Sfun' Simulating a Simulink® model. Also used for running in Accelerator mode.
'Rtw' Generating a LIB, DLL, or EXE target. Also used for running inSimulink Coder™ and Rapid Accelerator mode.
'HDL' Generating an HDL target
'Custom' Generating a custom target

Example: tf = coder.target('MATLAB')

Example: tf = coder.target("MATLAB")

Note

In case of CUDA or High-Level Synthesis (HLS) code generation, coder.target('C++') is alwaystrue.

Extended Capabilities

C/C++ Code Generation

Generate C and C++ code using MATLAB® Coder™.

GPU Code Generation

Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Version History

Introduced in R2011a