📄 drt_watg.cmm
字号:
# Copyright (C) 1994-96, The MathWorks, Inc.
# All Rights Reserved.
# $Revision: 1.2 $ $Date: 1996/04/05 13:58:31 $
#
# Edited for use with CommunicationToolbox, v1.0.
#
# File : drt_watg.cmm
# Abstract :
#
# Template makefile for building DOS-based real-time version of
# SIMULINK model using generated C code and the Watcom C/386
# Compiler with GNU MAKE.
#
# Note that this template be can automatically customized using make_rt.m
# and the "Generate and Build Real-time" option under the "Code" menu
# heading.
#
# The error:
# "C:\MATLAB\BIN\GMAKE.EXE: virtual memory exhausted. Stop."
# will occur if your system does not have enough conventional memory.
# For GMAKE to work properly, you should have at least 425K bytes of
# free conventional memory. See the "mem" command.
#
#------------------------ Macros Read By make_rt -------------------------
#
# Note: These macros are parsed by make_rt. Thus they should not contain
# other macros, as these macros will not be expanded.
#
MAKE = gmake
QUOTE = "
HOST = PC
BUILD = yes
#-------------------------- Customization Macros -------------------------
#
# The following set of macros are customized by the make_rt program.
#
MODEL = |>MODEL_NAME<|
MAKEFILE = |>MAKEFILE_NAME<|
S_FUNCTIONS = |>S_FUNCTION_FILENAMES<|
INTEGRATOR = |>INTEG_SRC_FILENAME<|
LOGGER = |>LOG_SRC_FILENAME<|
COMM_LINK = |>COMM_LINK_FILENAME<|
INTEG_DEFINES = |>INTEG_DEFINES<|
LOGGING_DEFINES = |>LOGGING_DEFINES<|
MATLAB_ROOT = |>MATLAB_ROOT<|
#------------------------------ Tool Locations ---------------------------
#
# Modify the following three macros to reflect where you have installed
# MATLAB, the Watcom C/386 Compiler, and the Phar Lap Assembler. The
# Phar Lap Assembler is not required. It is only used to compile rt_fpu.asm,
# which is also supplied in object file form.
#
WATCOM_ROOT = c:\watcom
PHARLAP_ROOT = c:\phar386
#---------------------------- Tool Definitions ---------------------------
ifeq ($(OS),Windows_NT)
CC = $(WATCOM_ROOT)\binnt\wcc386
LD = $(WATCOM_ROOT)\binnt\wcl386
else
CC = $(WATCOM_ROOT)\binw\wcc386
LD = $(WATCOM_ROOT)\binw\wcl386
endif
AS = $(PHARLAP_ROOT)\bin\386asm
PRINTENV = $(MATLAB_ROOT)\bin\printenv
#------------------------------ Include Path -----------------------------
CODEGEN_ROOT = $(MATLAB_ROOT)\codegen
MATLAB_INCLUDES = \
-I$(MATLAB_ROOT)\simulink\include \
-I$(CODEGEN_ROOT)\common\include \
-I$(CODEGEN_ROOT)\rt\common \
-I$(CODEGEN_ROOT)\rt\dos\os \
-I$(MATLAB_ROOT)\toolbox\comm\commsfun \
COMPILER_INCLUDES = -I$(WATCOM_ROOT)\h
INCLUDES = $(MATLAB_INCLUDES) $(COMPILER_INCLUDES)
#-------------------------------- C Flags --------------------------------
# Required Options
REQ_OPTS = -fpi87 -3s
# Optimization Options
OPT_OPTS = -oaxt
# Debug Options
DBG_OPTS = -d2
# User Options
OPTS =
CC_OPTS = $(REQ_OPTS) $(OPT_OPTS) $(DBG_OPTS) $(OPTS)
CPP_REQ_DEFINES = -DMODEL_NAME=$(MODEL) -DMULTITASKING
CFLAGS := $(CC_OPTS) $(INCLUDES) $(CPP_REQ_DEFINES) $(CPP_DEFINES) \
$(INTEG_DEFINES) $(LOGGING_DEFINES)
CFLAGS1 := $(CC_OPTS) $(INCLUDES) $(CPP_REQ_DEFINES) $(CPP_DEFINES)
CFLAGS2 := $(INTEG_DEFINES) $(LOGGING_DEFINES)
ASFLAGS = -twocase -nolist
LDFLAGS = -l=dos4g -x
#----------------------------- Source Files ------------------------------
REQ_SRCS = $(MODEL).c rt_main.c rt_keybd.c rt_sim.c simstruc.c rt_cpu.c
OPT_SRCS = timer.c
S_FCN_SRCS = $(S_FUNCTIONS)
INT_SRCS = $(INTEGRATOR)
LOG_SRCS = $(LOGGER)
C_SRCS = $(REQ_SRCS) $(OPT_SRCS) $(S_FCN_SRCS) $(INT_SRCS) $(LOG_SRCS)
C_OBJS = $(C_SRCS:%.c=%.obj)
ASM_SRCS = rt_fpu.asm modf.asm frexp.asm
ASM_OBJS = $(ASM_SRCS:%.asm=%.obj)
OBJS = $(C_OBJS) $(ASM_OBJS)
OB2S = $(OBJS:%.obj=%.ob2)
LIBS =
PROGRAM = $(MODEL).exe
#--------------------- Exported Environment Variables --------------------
#
# Because of the 128 character command line length limitations in DOS, we
# use environment variables to pass additional information to the WATCOM
# Compiler and Linker
#
ifeq ($(OS),Windows_NT)
PATH := $(WATCOM_ROOT)\binnt;$(WATCOM_ROOT)\bin;$(WATCOM_ROOT)\binb
else
PATH := $(WATCOM_ROOT)\bin;$(WATCOM_ROOT)\binw;$(WATCOM_ROOT)\binw
endif
WATCOM := $(WATCOM_ROOT)
#--------------------------------- Rules ---------------------------------
# Note: Uses response file to pass in arbitrary number of object files.
$(PROGRAM) : $(MODEL).lnk $(OBJS)
$(LD) /fe=$(MODEL).exe $(LDFLAGS) @$(MODEL).lnk $(LIBS)
del $(MODEL).lnk
$(MODEL).lnk ::
@if exist $(MODEL).lnk del $(MODEL).lnk
$(PRINTENV) CFLAGS
$(MODEL).lnk :: $(OB2S)
%.ob2 :
@echo FILE $*.obj >> $(MODEL).lnk
%.obj : %.c $(MAKEFILE)
$(CC) @CFLAGS1 @CFLAGS2 $<
%.obj : $(CODEGEN_ROOT)\rt\common\%.c $(MAKEFILE)
$(CC) @CFLAGS1 @CFLAGS2 $<
%.obj : $(CODEGEN_ROOT)\rt\dos\os\%.c $(MAKEFILE)
$(CC) @CFLAGS1 @CFLAGS2 $<
%.obj : $(CODEGEN_ROOT)\rt\dos\devices\%.c $(MAKEFILE)
$(CC) @CFLAGS1 @CFLAGS2 $<
%.obj : $(MATLAB_ROOT)\simulink\src\%.c $(MAKEFILE)
$(CC) @CFLAGS1 @CFLAGS2 $<
%.obj : $(MATLAB_ROOT)\toolbox\comm\commsfun\%.c $(MAKEFILE)
$(CC) @CFLAGS1 @CFLAGS2 $<
%.obj : %.asm
$(AS) $(ASFLAGS) $<
%.obj : $(CODEGEN_ROOT)\rt\dos\os\%.asm
copy $(CODEGEN_ROOT)\rt\dos\os\$@ $@
fft387.obj : $(CODEGEN_ROOT)\rt\dos\os\fft387.obj
copy $(CODEGEN_ROOT)\rt\dos\os\$@ $@
#----------------------------- Dependencies -------------------------------
rt_main.obj : $(MAKEFILE) $(MODEL).c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -