www.pudn.com > communicationmatlab.rar > DOS_WATG.CMM


# Copyright (c) 1994-96, The MathWorks, Inc. 
# All Rights Reserved.           
# $Revision: 1.2 $  $Date: 1996/04/05 13:58:01 $ 
# 
# Edited for use with CommunicationToolbox, v1.0. 
# 
# File     : dos_watg.cmm 
# Abstract : 
# 
#       Template makefile for building a DOS-based stand-alone 
#       nonreal-time version of SIMULINK model using generated C code 
#       and the Watcom C/386 Compiler with GNU MAKE. 
# 
#       Note that this template can be automatically customized using  
#       make_nrt.m and the "Generate and Build Nonreal-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_nrt ------------------------ 
# 
# Note: These macros are parsed by make_nrt.  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_nrt 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 macro to reflect where you have installed 
# the Watcom C/386 Compiler. 
# 
WATCOM_ROOT = c:\watcom 
 
#---------------------------- Make Variables --------------------------- 
SHELLMETAS= 
SHELLFLAGS= 
 
#---------------------------- 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 
 
PRINTENV = $(MATLAB_ROOT)\bin\printenv 
 
#------------------------------ Include Path ----------------------------- 
 
CODEGEN_ROOT = $(MATLAB_ROOT)\codegen 
 
MATLAB_INCLUDES = \ 
 -I$(CODEGEN_ROOT)\nrt \ 
 -I$(MATLAB_ROOT)\simulink\include \ 
 -I$(MATLAB_ROOT)\simulink\src \ 
 -I$(CODEGEN_ROOT)\common\include \ 
 -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) -DNRT 
 
CFLAGS = $(CC_OPTS) $(INCLUDES) $(CPP_REQ_DEFINES) $(CPP_DEFINES) \ 
 $(INTEG_DEFINES) $(LOGGING_DEFINES) 
 
LDFLAGS = -l=dos4g -x -3s 
LIBS = 
 
#----------------------------- Source Files ------------------------------ 
 
REQ_SRCS = $(MODEL).c nrt_main.c nrt_sim.c simstruc.c 
OPT_SRCS = 
S_FCN_SRCS = $(S_FUNCTIONS) 
INT_SRCS = $(INTEGRATOR) 
LOG_SRCS = $(LOGGER) 
 
SRCS = $(REQ_SRCS) $(OPT_SRCS) $(S_FCN_SRCS) $(INT_SRCS) $(LOG_SRCS) 
OBJS = $(SRCS:%.c=%.obj) 
OB2S = $(SRCS:%.c=%.ob2) 
 
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) 
 
CFLAGS1 := $(CC_OPTS) $(INCLUDES) $(CPP_REQ_DEFINES) $(CPP_DEFINES) 
CFLAGS2 := $(INTEG_DEFINES) $(LOGGING_DEFINES) 
 
#--------------------------------- Rules --------------------------------- 
 
.PRECIOUS : $(OBJS) 
 
$(PROGRAM) : $(MODEL).lnk $(OBJS)  
	$(LD) /fe=$(MODEL).exe $(LDFLAGS) @$(MODEL).lnk $(LIBS) 
	@ echo * * * * * * * * Make of $(PROGRAM) complete 
	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)\nrt\%.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 $< 
 
#----------------------------- Dependencies ------------------------------- 
 
nrt_main.obj : $(MAKEFILE) $(MODEL).c