📄 vdpmult.mk
字号:
# Copyright 1994-2004 The MathWorks, Inc.
#
# File : ert_lcc.tmf $Revision: 1.26.4.12.2.1 $
#
# Abstract:
# Real-Time Workshop template makefile for building a PC-based
# stand-alone embedded real-time version of Simulink model using
# generated C code and
# LCC compiler Version 2.4
#
# This makefile attempts to conform to the guidelines specified in the
# IEEE Std 1003.2-1992 (POSIX) standard. It is designed to be used
# with GNU Make (gmake) which is located in matlabroot/rtw/bin/win32.
#
# Note that this template is automatically customized by the Real-Time
# Workshop build procedure to create "<model>.mk"
#
# The following defines can be used to modify the behavior of the
# build:
# OPT_OPTS - Optimization options. Default is none. To enable
# debugging specify as OPT_OPTS=-g4.
# OPTS - User specific compile 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")
# (For Lcc, have a '/'as file seperator before the
# file name instead of a '\' .
# i.e., d:\work\proj1/myfile.c - reqd for 'gmake')
# This template makefile is designed to be used with a system target
# file that contains 'rtwgensettings.BuildDirSuffix' see ert.tlc
#------------------------ Macros read by make_rtw ------------------------------
#
# The following macros are read by the Real-Time Workshop 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 Real-Time Workshop build procedure
# (yes/no)?
# SYS_TARGET_FILE - Name of system target file.
MAKECMD = "%MATLAB%\rtw\bin\win32\gmake"
HOST = PC
BUILD = yes
SYS_TARGET_FILE = any
#---------------------- Tokens expanded by make_rtw ----------------------------
#
# The following tokens, when wrapped with "|>" and "<|" are expanded by the
# Real-Time Workshop 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 <model>.mk
# MATLAB_ROOT - Path to were MATLAB is installed.
# MATLAB_BIN - Path to MATLAB executable.
# S_FUNCTIONS - List of additional S-function modules.
# S_FUNCTIONS_LIB - List of S-functions libraries to link.
# NUMST - Number of sample times
# NCSTATES - Number of continuous states
# BUILDARGS - Options passed in at the command line.
# MULTITASKING - yes (1) or no (0): Is solver mode multitasking
# INTEGER_CODE - yes (1) or no (0): Is generated code purely integer
# MAT_FILE - yes (1) or no (0): Should mat file logging be done,
# if 0, the generated code runs indefinitely
# EXT_MODE - yes (1) or no (0): Build for external mode
# TMW_EXTMODE_TESTING - yes (1) or no (0): Build ext_test.c for external mode
# testing.
# EXTMODE_TRANSPORT - Index of transport mechanism (e.g. tcpip, serial) for extmode
# EXTMODE_STATIC - yes (1) or no (0): Use static instead of dynamic mem alloc.
# EXTMODE_STATIC_SIZE - Size of static memory allocation buffer.
# MULTI_INSTANCE_CODE - Is the generated code multi instantiable (1/0)?
# ADD_MDL_NAME_TO_GLOBALS - Do we add the model name to global
# identifiers (1/0)?
MODEL = vdpmult
MODULES = vdpmult.c vdpmult_capi.c
MAKEFILE = vdpmult.mk
MATLAB_ROOT = G:\MATLAB7
MATLAB_BIN = G:\MATLAB7\bin\win32
S_FUNCTIONS =
S_FUNCTIONS_LIB =
NUMST = 1
NCSTATES = 0
BUILDARGS =
MULTITASKING = 0
INTEGER_CODE = 0
MAT_FILE = 0
ONESTEPFCN = 0
TERMFCN = 1
B_ERTSFCN = 0
MEXEXT = dll
EXT_MODE = 0
TMW_EXTMODE_TESTING = 0
EXTMODE_TRANSPORT = 0
EXTMODE_STATIC = 0
EXTMODE_STATIC_SIZE = 1000000
MULTI_INSTANCE_CODE = 0
ADD_MDL_NAME_TO_GLOBALS = 1
MODELREFS =
SHARED_SRC = ../../../slprj/sim/_sharedutils/*.c
SHARED_SRC_DIR = ../../../slprj/sim/_sharedutils
SHARED_BIN_DIR = ../../../slprj/sim/_sharedutils
SHARED_LIB = ..\..\..\slprj\sim\_sharedutils\rtwshared.lib
#--------------------------- Model and reference models -----------------------
MODELLIB = vdpmultlib.lib
MODELREF_LINK_LIBS =
MODELREF_INC_PATH =
RELATIVE_PATH_TO_ANCHOR = ..\..\..
# ..\..\..\..\..\..\.. or .. or even . if you want it
# NONE: standalone, SIM: modelref sim, RTW: modelref rtw
MODELREF_TARGET_TYPE = SIM
#----------------------------- External mode -----------------------------------
# Uncomment -DVERBOSE to have information printed to stdout
# To add a new transport layer, see the comments in
# <matlabroot>/toolbox/simulink/simulink/extmode_transports.m
ifeq ($(EXT_MODE),1)
EXT_CC_OPTS = -DEXT_MODE -DWIN32 # -DVERBOSE
ifeq ($(EXTMODE_TRANSPORT),0) #tcpip
EXT_SRC = ext_svr.c updown.c ext_work.c ext_svr_tcpip_transport.c
EXT_LIB = $(MATLAB_ROOT)\sys\lcc\lib\wsock32.lib
endif
ifeq ($(EXTMODE_TRANSPORT),1) #serial_win32
EXT_SRC = ext_svr.c updown.c ext_work.c ext_svr_serial_transport.c
EXT_SRC += ext_serial_pkt.c ext_serial_win32_port.c
endif
ifeq ($(TMW_EXTMODE_TESTING),1)
EXT_SRC += ext_test.c
EXT_CC_OPTS += -DTMW_EXTMODE_TESTING
endif
ifeq ($(EXTMODE_STATIC),1)
EXT_SRC += mem_mgr.c
EXT_CC_OPTS += -DEXTMODE_STATIC -DEXTMODE_STATIC_SIZE=$(EXTMODE_STATIC_SIZE)
endif
endif
#--------------------------- Tool Specifications -------------------------------
LCC = $(MATLAB_ROOT)\sys\lcc
include $(MATLAB_ROOT)\rtw\c\tools\lcctools.mak
# Determine if we are generating an s-function
SFCN = 0
ifeq ($(MODELREF_TARGET_TYPE),SIM)
SFCN = 1
endif
ifeq ($(B_ERTSFCN),1)
SFCN = 1
endif
#------------------------------ Include Path -----------------------------------
# Additional includes
ADD_INCLUDES = \
-Ig:\matlab7\work\tsinghua\chp20\model20to03 \
-Ig:\matlab7\work\tsinghua\chp20\model20to03\slprj\sim\vdpmult \
-Ig:\matlab7\rtw\c\libsrc \
# see MATLAB_INCLUDES and COMPILER_INCLUDES from lcctool.mak
SHARED_INCLUDES =
ifneq ($(SHARED_SRC_DIR),)
SHARED_INCLUDES = -I$(SHARED_SRC_DIR)
endif
INCLUDES = -I. -I$(RELATIVE_PATH_TO_ANCHOR) $(MATLAB_INCLUDES) $(ADD_INCLUDES) \
$(COMPILER_INCLUDES) $(USER_INCLUDES) $(MODELREF_INC_PATH) \
$(SHARED_INCLUDES)
INCLUDES += -I$(MATLAB_ROOT)\rtw\c\ert
#-------------------------------- C Flags --------------------------------------
# Optimization Options
OPT_OPTS = $(DEFAULT_OPT_OPTS)
# General User Options
OPTS =
# Compiler options, etc:
ifeq ($(SFCN),0)
CC_OPTS = $(OPT_OPTS) $(OPTS) $(ANSI_OPTS) $(EXT_CC_OPTS)
else
CC_OPTS = -f $(MATLAB_BIN)\mexopts\lccopts.bat
endif
CPP_REQ_DEFINES = -DMODEL=$(MODEL) -DNUMST=$(NUMST) -DNCSTATES=$(NCSTATES) \
-DMT=$(MULTITASKING) \
-DMAT_FILE=$(MAT_FILE) -DINTEGER_CODE=$(INTEGER_CODE) \
-DONESTEPFCN=$(ONESTEPFCN) -DTERMFCN=$(TERMFCN) \
-DHAVESTDIO -DMULTI_INSTANCE_CODE=$(MULTI_INSTANCE_CODE)\
-DADD_MDL_NAME_TO_GLOBALS=$(ADD_MDL_NAME_TO_GLOBALS)
ifeq ($(MODELREF_TARGET_TYPE),SIM)
CPP_REQ_DEFINES += -DMDL_REF_SIM_TGT=1
else
CPP_REQ_DEFINES += -DMT=$(MULTITASKING)
endif
CFLAGS = $(CC_OPTS) $(CPP_REQ_DEFINES) $(INCLUDES) -w -noregistrylookup
ifeq ($(OPT_OPTS),$(DEFAULT_OPT_OPTS))
LDFLAGS = -s -L$(LIB)
else
LDFLAGS = -L$(LIB)
endif
#-------------------------- Additional Libraries ------------------------------
LIBS =
ifeq ($(OPT_OPTS),$(DEFAULT_OPT_OPTS))
ifeq ($(INTEGER_CODE),0)
LIBS += $(MATLAB_ROOT)\rtw\c\lib\win32\rtwlib_ert_lcc.lib
else
LIBS += $(MATLAB_ROOT)\rtw\c\lib\win32\rtwlib_int_ert_lcc.lib
endif
else
LIBS += rtwlib.lib
endif
LIBS += $(EXT_LIB) $(S_FUNCTIONS_LIB)
ifeq ($(SFCN),1)
LIBFIXPT = $(MATLAB_ROOT)\extern\lib\win32\lcc\libfixedpoint.lib
LIBS += $(LIBFIXPT)
endif
#----------------------------- Source Files ------------------------------------
ADD_SRCS =
ifeq ($(SFCN),0)
SRCS = $(MODULES) $(ADD_SRCS) $(S_FUNCTIONS)
SRC_DEP =
#SHARED_OUTPUT_OPTS = -Fo $@
ifeq ($(MODELREF_TARGET_TYPE), NONE)
PRODUCT = $(RELATIVE_PATH_TO_ANCHOR)/$(MODEL).exe
BIN_SETTING = $(LD) $(LDFLAGS) -o $(PRODUCT) $(SYSLIBS)
BUILD_PRODUCT_TYPE = executable
SRCS += $(MODEL).c ert_main.c $(EXT_SRC)
else
# Model reference rtw target
PRODUCT = $(MODELLIB)
BUILD_PRODUCT_TYPE = library
endif
else
# CC = $(MATLAB_BIN)/mex.bat
SRCS = $(MODULES) $(ADD_SRCS)
ifeq ($(MODELREF_TARGET_TYPE), SIM)
PRODUCT = $(RELATIVE_PATH_TO_ANCHOR)/$(MODEL)_msf.$(MEXEXT)
RTW_SFUN_SRC = $(MODEL)_msf.c
else
PRODUCT = $(RELATIVE_PATH_TO_ANCHOR)/$(MODEL)_sf.$(MEXEXT)
RTW_SFUN_SRC = $(MODEL)_sf.c
endif
BIN_SETTING = $(MATLAB_BIN)\mex.bat $(RTW_SFUN_SRC) $(CC_OPTS) $(INCLUDES) -outdir $(RELATIVE_PATH_TO_ANCHOR)
BUILD_PRODUCT_TYPE = mex file
ifeq ($(B_ERTSFCN),1)
SRCS += $(MODEL).c
SRC_DEP = $(RTW_SFUN_SRC)
endif
#SHARED_OUTPUT_OPTS = -outdir $(SHARED_BIN_DIR)
endif
USER_SRCS =
USER_OBJS = $(USER_SRCS:.c=.obj)
LOCAL_USER_OBJS = $(notdir $(USER_OBJS))
OBJS = $(SRCS:.c=.obj) $(USER_OBJS)
LINK_OBJS = $(SRCS:.c=.obj) $(LOCAL_USER_OBJS)
SHARED_OBJS := $(addsuffix .obj, $(basename $(wildcard $(SHARED_SRC))))
FMT_SHARED_OBJS = $(subst /,\,$(SHARED_OBJS))
#--------------------------------- Rules ---------------------------------------
ifeq ($(MODELREF_TARGET_TYPE),NONE)
$(PRODUCT) : $(OBJS) $(SHARED_LIB) $(LIBS) $(SRC_DEP) $(MODELREF_LINK_LIBS)
$(BIN_SETTING) $(LINK_OBJS) $(MODELREF_LINK_LIBS) $(LIBS) $(SHARED_LIB)
@echo ### Created $(BUILD_PRODUCT_TYPE): $@
else
ifeq ($(MODELREF_TARGET_TYPE),SIM)
$(PRODUCT) : $(OBJS) $(SHARED_LIB) $(LIBS) $(SRC_DEP)
$(LIBCMD) /out:$(MODELLIB) $(LINK_OBJS)
@echo ### Created $(MODELLIB)
$(BIN_SETTING) $(MODELLIB) $(MODELREF_LINK_LIBS) $(LIBS) $(SHARED_LIB)
@echo ### Created $(BUILD_PRODUCT_TYPE): $@
else
$(PRODUCT) : $(OBJS) $(SHARED_LIB) $(LIBS) $(SRC_DEP)
$(LIBCMD) /out:$(MODELLIB) $(LINK_OBJS)
@echo ### Created $(MODELLIB)
@echo ### Created $(BUILD_PRODUCT_TYPE): $@
endif
endif
%.obj : %.c
$(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(RELATIVE_PATH_TO_ANCHOR)/%.c
$(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/rtw/c/ert/%.c
$(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/rtw/c/src/%.c
$(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/rtw/c/src/ext_mode/common/%.c
$(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/rtw/c/src/ext_mode/tcpip/%.c
$(CC) -c -Fo$(@F) $(CFLAGS) $<
%.obj : $(MATLAB_ROOT)/rtw/c/src/ext_mode/serial/%.c
$(CC) -c -Fo$(@F) $(CFLAGS) $<
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -