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