mirror of
https://github.com/stargieg/bacnet-stack
synced 2025-10-26 23:35:52 +08:00
200 lines
4.9 KiB
Makefile
200 lines
4.9 KiB
Makefile
#
|
|
# Simple makefile to build an RTB executable for RTOS-32
|
|
#
|
|
# This makefile assumes Borland bcc32 development environment
|
|
# on Windows NT/9x/2000/XP
|
|
#
|
|
|
|
!ifndef RTOS32_DIR
|
|
RTOS32_DIR_Not_Defined:
|
|
@echo .
|
|
@echo You must define environment variable RTOS32_DIR to compile.
|
|
!endif
|
|
|
|
!ifndef BORLAND_DIR
|
|
BORLAND_DIR_Not_Defined:
|
|
@echo .
|
|
@echo You must define environment variable BORLAND_DIR to compile.
|
|
!endif
|
|
|
|
PRODUCT = bacnet
|
|
PRODUCT_RTB = $(PRODUCT).rtb
|
|
PRODUCT_EXE = $(PRODUCT).exe
|
|
|
|
# Choose the Data Link Layer to Enable
|
|
#DEFINES = -DDOC;BIG_ENDIAN=0;TSM_ENABLED=1;PRINT_ENABLED=1;BACDL_BIP=1
|
|
#DEFINES = -DDOC;BIG_ENDIAN=0;TSM_ENABLED=1;PRINT_ENABLED=1;BACDL_ETHERNET=1
|
|
#DEFINES = -DDOC;BIG_ENDIAN=0;TSM_ENABLED=1;PRINT_ENABLED=1;BACDL_ARCNET=1
|
|
DEFINES = -DDOC;BIG_ENDIAN=0;TSM_ENABLED=1;PRINT_ENABLED=0;BACDL_MSTP=1
|
|
|
|
SRCS = main.c \
|
|
ethernet.c \
|
|
bip-init.c \
|
|
dlmstp.c \
|
|
rs485.c \
|
|
init.c \
|
|
..\..\bip.c \
|
|
..\..\mstp.c \
|
|
..\..\crc.c \
|
|
..\..\demo\handler\h_iam.c \
|
|
..\..\demo\handler\h_npdu.c \
|
|
..\..\demo\handler\h_whois.c \
|
|
..\..\demo\handler\h_wp.c \
|
|
..\..\demo\handler\h_rp.c \
|
|
..\..\demo\handler\noserv.c \
|
|
..\..\demo\handler\txbuf.c \
|
|
..\..\demo\handler\s_iam.c \
|
|
..\..\demo\handler\s_rp.c \
|
|
..\..\demo\handler\s_whois.c \
|
|
..\..\bacdcode.c \
|
|
..\..\bacstr.c \
|
|
..\..\bactext.c \
|
|
..\..\indtext.c \
|
|
..\..\bacapp.c \
|
|
..\..\bigend.c \
|
|
..\..\whois.c \
|
|
..\..\dcc.c \
|
|
..\..\iam.c \
|
|
..\..\rp.c \
|
|
..\..\wp.c \
|
|
..\..\arf.c \
|
|
..\..\awf.c \
|
|
..\..\demo\object\bacfile.c \
|
|
..\..\demo\object\device.c \
|
|
..\..\demo\object\ai.c \
|
|
..\..\demo\object\ao.c \
|
|
..\..\demo\object\av.c \
|
|
..\..\demo\object\bi.c \
|
|
..\..\demo\object\bo.c \
|
|
..\..\demo\object\bv.c \
|
|
..\..\demo\object\lsp.c \
|
|
..\..\demo\object\mso.c \
|
|
..\..\datalink.c \
|
|
..\..\tsm.c \
|
|
..\..\address.c \
|
|
..\..\abort.c \
|
|
..\..\reject.c \
|
|
..\..\bacerror.c \
|
|
..\..\apdu.c \
|
|
..\..\npdu.c
|
|
|
|
OBJS = $(SRCS:.c=.obj)
|
|
|
|
# Compiler definitions
|
|
#
|
|
CC = $(BORLAND_DIR)\bin\bcc32 +bcc32.cfg
|
|
LINK = $(BORLAND_DIR)\bin\tlink32
|
|
#LINK = $(BORLAND_DIR)\bin\ilink32
|
|
TLIB = $(BORLAND_DIR)\bin\tlib
|
|
LOCATE = $(RTOS32_DIR)\bin\rtloc
|
|
|
|
#
|
|
# Include directories
|
|
#
|
|
CC_DIR = $(BORLAND_DIR)\BIN
|
|
INCL_DIRS = -I$(BORLAND_DIR)\include;$(RTOS32_DIR)\include;..\..\include;..\..\demo\handler\;..\..\demo\object\;.
|
|
|
|
CFLAGS = $(INCL_DIRS) $(CS_FLAGS) $(DEFINES)
|
|
|
|
# Libraries
|
|
#
|
|
RTOS32_LIB_DIR = $(RTOS32_DIR)\libbc
|
|
C_LIB_DIR = $(BORLAND_DIR)\lib
|
|
|
|
LIBDIR = $(RTOS32_LIB_DIR);$(C_LIB_DIR)
|
|
|
|
LIBS = $(RTOS32_LIB_DIR)\RTFILES.LIB \
|
|
$(RTOS32_LIB_DIR)\RTFSK32.LIB \
|
|
$(RTOS32_LIB_DIR)\DRVDOC.LIB \
|
|
$(RTOS32_LIB_DIR)\RTIP.LIB \
|
|
$(RTOS32_LIB_DIR)\RTK32.LIB \
|
|
$(RTOS32_LIB_DIR)\FLTEMUMT.LIB \
|
|
$(RTOS32_LIB_DIR)\DRVRT32.LIB \
|
|
$(RTOS32_LIB_DIR)\RTEMUMT.LIB \
|
|
$(RTOS32_LIB_DIR)\RTT32.LIB \
|
|
$(RTOS32_LIB_DIR)\RTTHEAP.LIB \
|
|
#$(C_LIB_DIR)\DPMI32.lib \
|
|
$(C_LIB_DIR)\IMPORT32.lib \
|
|
$(C_LIB_DIR)\CW32MT.lib
|
|
|
|
#
|
|
# Main target
|
|
#
|
|
# This should be the first one in the makefile
|
|
|
|
all : $(PRODUCT_RTB) monitor.rtb
|
|
|
|
monitor.rtb: monitor.cfg hardware.cfg
|
|
$(LOCATE) monitor
|
|
|
|
# debug using COM3 (ISA Card) as the debug port
|
|
# boot from floppy
|
|
debugcom3: hardware.cfg software.cfg $(PRODUCT_RTB) monitor.rtb
|
|
$(LOCATE) -DDEBUGCOM3 monitor
|
|
$(LOCATE) -d- -DMONITOR -DDEBUGCOM3 $(PRODUCT) software.cfg
|
|
|
|
$(PRODUCT_RTB): bcc32.cfg hardware.cfg software.cfg $(PRODUCT_EXE)
|
|
@echo Running Locate on $(PRODUCT)
|
|
$(LOCATE) $(PRODUCT) software.cfg
|
|
|
|
# Linker specific: the link below is for BCC linker/compiler. If you link
|
|
# with a different linker - please change accordingly.
|
|
#
|
|
|
|
# need a temp response file (@&&) because command line is too long
|
|
$(PRODUCT_EXE) : $(OBJS)
|
|
@echo Running Linker for $(PRODUCT_EXE)
|
|
$(LINK) -L$(LINKER_LIB) -m -c -s -v @&&| # temp response file, starts with |
|
|
$(BORLAND_DIR)\lib\c0x32.obj $** # $** lists each dependency
|
|
$<
|
|
$*.map
|
|
$(LIBS)
|
|
| # end of temp response file
|
|
|
|
#
|
|
# Utilities
|
|
|
|
clean :
|
|
@echo Deleting obj files, $(PRODUCT_EXE), $(PRODUCT_RTB) and map files.
|
|
del *.obj
|
|
del ..\..\*.obj
|
|
del $(PRODUCT_EXE)
|
|
del $(PRODUCT_RTB)
|
|
del *.map
|
|
del bcc32.cfg
|
|
|
|
install : $(PRODUCT)
|
|
copy $(PRODUCT) ..\bin
|
|
|
|
#
|
|
# Generic rules
|
|
#
|
|
.SUFFIXES: .cpp .c .sbr .obj
|
|
|
|
#
|
|
# cc generic rule
|
|
#
|
|
.c.obj:
|
|
$(CC) -o$@ $<
|
|
|
|
# Compiler configuration file
|
|
bcc32.cfg :
|
|
Copy &&|
|
|
$(CFLAGS)
|
|
-c
|
|
#-g2 #stop after gN warnings
|
|
-y #include line numbers in OBJ's
|
|
-v #include debug info
|
|
-w+ #turn on all warnings
|
|
-Od #disable all optimizations
|
|
#-a4 #32 bit data alignment
|
|
#-M # generate link map
|
|
#-ls # linker options
|
|
#-WM- #not multithread
|
|
-WM #multithread
|
|
-w-aus # ignore warning assigned a value that is never used
|
|
-w-sig # ignore warning conversion may lose sig digits
|
|
| $@
|
|
|
|
# EOF: makefile
|