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
 | 
