# Copyright 1996-2017 The MathWorks, Inc. # # File : slrt_vc.tmf # # # Abstract: # Makefile for building a Simulink Real-Time application from a Simulink # model using generated C code and a supported Microsoft Visual C/C++ # compiler # # The following defines can be used to modify the behavior of the # build: # # OPT_OPTS - Optimization option. Default is -O2. To enable # debugging specify as OPT_OPTS=-Zd. # OPTS - User specific options. # USER_SRCS - Additional user sources, such as files needed by # S-functions. # USER_INCLUDES - Additional include paths # (i.e. USER_INCLUDES="-Iwhere-ever -Iwhere-ever2") #------------------------ Macros read by make_rtw ----------------------------- # # The following macros are read by the code generation build procedure: # # MAKECMD - This is the command used to invoke the make utility # HOST - What platform this template makefile is targeted for # (i.e. PC or UNIX) # BUILD - Invoke make from the code generation build procedure # (yes/no)? # SYS_TARGET_FILE - Name of system target file. HOST = PC BUILD = yes MAKECMD = nmake SYS_TARGET_FILE = slrt.tlc COMPILER_TOOL_CHAIN = vc # Opt in to simplified format by specifying compatible Toolchain TOOLCHAIN_NAME = [\ "Microsoft Visual C++ 2017 v15.0 | nmake (64-bit Windows)", \ "Microsoft Visual C++ 2015 v14.0 | nmake (64-bit Windows)", \ "Microsoft Visual C++ 2013 v12.0 | nmake (64-bit Windows)"] DEBUG_BUILD = 0 #---------------------- Tokens expanded by make_rtw --------------------------- # # The following tokens, when wrapped with "|>" and "|<" are expanded by the # build procedure. # # MODEL_NAME - Name of the Simulink block diagram # MODEL_MODULES - Any additional generated source modules # MAKEFILE_NAME - Name of makefile created from template makefile .mk # MATLAB_ROOT - Path to were MATLAB is installed. # MATLAB_BIN - Path to MATLAB executable. # S_FUNCTIONS - List of S-functions. # S_FUNCTIONS_LIB - List of S-functions libraries to link. # NUMST - Number of sample times # TID01EQ - yes (1) or no (0): Are sampling rates of continuous task # (tid=0) and 1st discrete task equal. # NCSTATES - Number of continuous states # BUILDARGS - Options passed in at the command line. # MULTITASKING - yes (1) or no (0): Is solver mode multitasking # MEX_OPT_FILE - Original file name of the mexopt.bat. MODEL = CANTest MODULES = rt_matrx.c rt_printf.c rt_logging.c CANTest.c CANTest_capi.c CANTest_data.c CANTest_xcp.c CANTest_xcp_TET.c can_datatype_ground.c rtGetInf.c rtGetNaN.c rt_nonfinite.c xpc_datatype_ground.c rt_logging_mmi.c rtw_modelmap_utils.c host_timer_x86.c xpc_code_profiling_utility_functions.c MAKEFILE = CANTest.mk MATLAB_ROOT = C:\Program Files\MATLAB\R2018a ALT_MATLAB_ROOT = C:\PROGRA~1\MATLAB\R2018a MATLAB_BIN = C:\Program Files\MATLAB\R2018a\bin ALT_MATLAB_BIN = C:\PROGRA~1\MATLAB\R2018a\bin MASTER_ANCHOR_DIR = START_DIR = D:\Project\DelieveryMobility\WheelSpdCont\Day_20240711 S_FUNCTIONS = sg_IO613_setup_s.cpp sg_IO61X_read_s.cpp sg_IO61X_write_s.cpp S_FUNCTIONS_LIB = C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\common\libsg\libsg_MSVC120_vc.lib C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\can\include\IO61X_Library_MSVC120_vc.lib NUMST = 1 TID01EQ = 0 NCSTATES = 0 BUILDARGS = COMBINE_OUTPUT_UPDATE_FCNS=0 INCLUDE_MDL_TERMINATE_FCN=1 MULTI_INSTANCE_CODE=0 ISPROTECTINGMODEL=NOTPROTECTING MULTITASKING = 0 MEX_OPT_FILE = -f "C:\Users\okxan\AppData\Roaming\MathWorks\MATLAB\R2018a\mex_C_win64.xml" MODELREFS = SHARED_SRC = SHARED_SRC_DIR = SHARED_BIN_DIR = SHARED_LIB = VISUAL_VER = 12.0 TGT_FCN_LIB = XPC_BLAS OPTIMIZATION_FLAGS = /O2 /Oy- ADDITIONAL_LDFLAGS = DEFINES_CUSTOM = #--------------------------- Model and reference models ----------------------- MODELLIB = CANTestlib.lib MODELREF_LINK_LIBS = MODELREF_LINK_RSPFILE = CANTest_ref.rsp MODELREF_INC_PATH = RELATIVE_PATH_TO_ANCHOR = ..\.. # ..\..\..\..\..\..\.. or .. or even . if you want it MODELREF_TARGET_TYPE = NONE !if "$(MATLAB_ROOT)" != "$(ALT_MATLAB_ROOT)" MATLAB_ROOT = $(ALT_MATLAB_ROOT) !endif !if "$(MATLAB_BIN)" != "$(ALT_MATLAB_BIN)" MATLAB_BIN = $(ALT_MATLAB_BIN) !endif MATLAB_ARCH_BIN = $(MATLAB_BIN)\win64 #--------------------------- Tool Specifications ------------------------------ CPU=i386 !include $(MATLAB_ROOT)\rtw\c\tools\vctools.mak CMD_FILE = $(MODEL).rsp #------------------------------ Include/Lib Path ------------------------------ MATLAB_INCLUDES = $(MATLAB_ROOT)\simulink\include MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(MATLAB_ROOT)\extern\include MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(MATLAB_ROOT)\rtw\c\src MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(MATLAB_ROOT)\rtw\c\libsrc MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(MATLAB_ROOT)\rtw\c\src\ext_mode\common # Additional file include paths MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(START_DIR) MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(START_DIR)\CANTest_slrt_rtw MATLAB_INCLUDES = $(MATLAB_INCLUDES);C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1 MATLAB_INCLUDES = $(MATLAB_INCLUDES);C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\can\include MATLAB_INCLUDES = $(MATLAB_INCLUDES);C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\common\libsg MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(MATLAB_ROOT)\toolbox\shared\can\src\scanutil MATLAB_INCLUDES = $(MATLAB_INCLUDES);$(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\xpcblocks\include XPC_BASE = $(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build XPC_INCLUDES = $(XPC_BASE)\include;$(XPC_BASE)\xpcblocks\include XPC_INCLUDES = $(XPC_INCLUDES);$(XPC_BASE)\xpcblocks\thirdpartydrivers XPC_INCLUDES = $(XPC_INCLUDES);$(MATLAB_ROOT)\toolbox\slrt\target\kernel\include INCLUDE = .;..;$(XPC_INCLUDES);$(MATLAB_INCLUDES);$(INCLUDE);$(MODELREF_INC_PATH) !if "$(SHARED_SRC_DIR)" != "" INCLUDE = $(INCLUDE);$(SHARED_SRC_DIR) !endif #----------------- Compiler and Linker Options -------------------------------- # Optimization Options DEFAULT_OPT_OPTS = /W3 /Z7 OPT_OPTS = $(DEFAULT_OPT_OPTS) # General User Options OPTS = #/GD CC_OPTS = $(OPTS) $(OPT_OPTS) /c /nologo $(OPTIMIZATION_FLAGS) CPP_REQ_DEFINES = -DMODEL=$(MODEL) -DRT -DNUMST=$(NUMST) \ -DTID01EQ=$(TID01EQ) -DNCSTATES=$(NCSTATES) \ -DMT=$(MULTITASKING) -DHAVESTDIO -DXPCMSVISUALC \ -DXPCCALLCONV=__cdecl -DUSE_RTMODEL -DERT_CORE \ $(DEFINES_CUSTOM) # Uncomment this line to move warning level to W4 # cflags = $(cflags:W3=W4) CFLAGS = $(cvarsmt) /wd4996 /fp:fast /arch:SSE2 $(CC_OPTS) $(CPP_REQ_DEFINES) $(USER_INCLUDES) CPPFLAGS = $(cflags) $(cvarsmt) /wd4996 /fp:fast /arch:SSE2 /EHsc \ $(CPP_OPTS) $(CC_OPTS) $(CPP_REQ_DEFINES) $(USER_INCLUDES) !if "$(SLRTFTZOFF)" != "" CFLAGS = $(cvarsmt) $(CFLAGS_VERSPECIFIC) $(CC_OPTS) $(CPP_REQ_DEFINES) $(USER_INCLUDES) CPPFLAGS = $(cflags) $(cvarsmt) $(CPPFLAGS_VERSPECIFIC) /EHsc \ $(CPP_OPTS) $(CC_OPTS) $(CPP_REQ_DEFINES) $(USER_INCLUDES) !endif LDFLAGS = /NOLOGO /DLL /SUBSYSTEM:CONSOLE /DEF:xpcvcdll.def /Include:_malloc /MAP /DEBUG /IGNORE:4099 $(ADDITIONAL_LDFLAGS) #----------------------------- Source Files ----------------------------------- #Standalone executable !if "$(MODELREF_TARGET_TYPE)" == "NONE" PRODUCT = $(RELATIVE_PATH_TO_ANCHOR)\$(MODEL).dlm SLRT_SRCS = xpctarget.c appmappingData.c legacy_stdio.c REQ_SRCS = $(MODULES) $(SLRT_SRCS) #Model Reference Target !else PRODUCT = $(MODELLIB) REQ_SRCS = $(MODULES) !endif USER_SRCS = SRCS = $(REQ_SRCS) $(USER_SRCS) $(S_FUNCTIONS) OBJS_CPP_UPPER = $(SRCS:.CPP=.obj) OBJS_CPP_LOWER = $(OBJS_CPP_UPPER:.cpp=.obj) OBJS_C_UPPER = $(OBJS_CPP_LOWER:.C=.obj) OBJS = $(OBJS_C_UPPER:.c=.obj) SHARED_OBJS = $(SHARED_BIN_DIR)\*.obj # Special handling for object files that are not in the pre-generated linker # response file SLRT_OBJS = $(SLRT_SRCS:.c=.obj) # ------------------------- Libraries ------------------------------ LIBS = LIBS = $(LIBS) xpcruntime.lib !if "$(TGT_FCN_LIB)" == "XPC_BLAS" BLASLIBS = $(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\lib\libatlas.a $(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\lib\libcblas.a !else BLASLIBS = !endif #--------------------------------- Rules -------------------------------------- !if "$(MODELREF_TARGET_TYPE)" == "NONE" #--- Stand-alone model --- $(RELATIVE_PATH_TO_ANCHOR)\$(MODEL).dlm : $(MODEL)_slrt.dll $(MATLAB_ROOT)\toolbox\slrt\target\thirdparty\OnTime\bin\mkusrdlm -c+ -q+ $(MODEL)_slrt.dll $(RELATIVE_PATH_TO_ANCHOR)\$(MODEL) @cmd /C "echo ### Created DLM $@" @del $(MODEL)_slrt.lib $(MODEL)_slrt.dll : set_environment_variables $(OBJS) $(SHARED_LIB) $(LIBS) $(MODELREF_LINK_LIBS) @cmd /C "echo ### Linking ..." $(LD) $(LDFLAGS) $(BLASLIBS) $(LIBS) $(S_FUNCTIONS_LIB) $(CANLIB) $(SHARED_LIB) $(SLRT_OBJS) @$(CMD_FILE) @$(MODELREF_LINK_RSPFILE) -out:$@ @cmd /C "echo ### Created DLL $@" !else #--- Model reference Target --- $(PRODUCT) : set_environment_variables $(OBJS) $(SHARED_LIB) $(LIBS) @cmd /C "echo ### Linking ..." $(LD) -lib /OUT:$(MODELLIB) @$(CMD_FILE) $(S_FUNCTIONS_LIB) $(BLASLIBS) @cmd /C "echo ### Created static library $(MODELLIB)" !endif {$(MATLAB_ROOT)\rtw\c\src}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< xpcruntime.lib: xpcimports.obj xpcPCFunctions.obj $(LIBCMD) /nologo /out:$@ $** # Additional sources {C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< {C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\can\src}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< {C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\can}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< {$(MATLAB_ROOT)\rtw\c\src}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< {$(MATLAB_ROOT)\simulink\src}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< {..}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< {$(MATLAB_ROOT)\toolbox\coder\profile\src}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< {C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1}.cpp.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CPPFLAGS) $< {C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\can\src}.cpp.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CPPFLAGS) $< {C:\ProgramData\Speedgoat\speedgoatlib\R2018a\9.1.3.1\sg_blocks\can}.cpp.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CPPFLAGS) $< {$(MATLAB_ROOT)\rtw\c\src}.cpp.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CPPFLAGS) $< {$(MATLAB_ROOT)\simulink\src}.cpp.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CPPFLAGS) $< {..}.cpp.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CPPFLAGS) $< {$(MATLAB_ROOT)\toolbox\coder\profile\src}.cpp.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CPPFLAGS) $< # Look in simulink/src helper files {$(MATLAB_ROOT)\simulink\src}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< # Libraries: # Put this rule last, otherwise nmake will check toolboxes first {$(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\src}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< {$(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\xpcblocks\include}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< xpctarget.obj : $(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\src\xpctarget.c xpcoptions.h @cmd /C "echo ### Compiling xpctarget.c" $(CC) $(CFLAGS) $(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\src\xpctarget.c {$(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\xpcblocks}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< {$(MATLAB_ROOT)\toolbox\rtw\targets\xpc\target\build\xpcblocks\thirdpartydrivers}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< {..}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< .c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< .cpp.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CPPFLAGS) $< {$(RELATIVE_PATH_TO_ANCHOR)}.c.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CFLAGS) $< {$(RELATIVE_PATH_TO_ANCHOR)}.cpp.obj : @cmd /C "echo ### Compiling $<" $(CC) $(CPPFLAGS) $< !if "$(SHARED_LIB)" != "" $(SHARED_LIB) : $(SHARED_SRC) @cmd /C "echo ### Creating $@" @$(CC) $(CFLAGS) -Fo$(SHARED_BIN_DIR)\ $? @$(LIBCMD) /nologo /out:$@ $(SHARED_OBJS) @cmd /C "echo ### $@ Created" !endif set_environment_variables: @set INCLUDE=$(INCLUDE) @set LIB=$(LIB) #----------------------------- Dependencies ----------------------------------- $(OBJS) : $(MAKEFILE) rtw_proj.tmw xpcPCFunctions.obj xpcimports.obj: $(MAKEFILE) rtw_proj.tmw