cf0f01c5a1
The work is not complete yet; this is an interim checkin. Ultimately the device.c file will be merged with the regular one or the deltas will be separated into some other file.
145 lines
2.8 KiB
Plaintext
145 lines
2.8 KiB
Plaintext
#
|
|
# Simple makefile to build an executable for Win32
|
|
#
|
|
# This makefile assumes Borland bcc32 development environment
|
|
# on Windows NT/9x/2000/XP
|
|
#
|
|
|
|
!ifndef BORLAND_DIR
|
|
BORLAND_DIR_Not_Defined:
|
|
@echo .
|
|
@echo You must define environment variable BORLAND_DIR to compile.
|
|
!endif
|
|
|
|
# target
|
|
PRODUCT = bacgateway
|
|
PRODUCT_EXE = $(PRODUCT).exe
|
|
|
|
# tools
|
|
CC = $(BORLAND_DIR)\bin\bcc32
|
|
MAKE=$(BORLAND_DIR)\bin\make.exe
|
|
#LINK = $(BORLAND_DIR)\bin\tlink32
|
|
LINK = $(BORLAND_DIR)\bin\ilink32
|
|
|
|
BACNET_LIB_DIR = ..\..\lib
|
|
BACNET_LIB = $(BACNET_LIB_DIR)\bacnet.lib
|
|
# getting back from the library
|
|
BACNET_DEMO_DIR = ..\demo\gateway
|
|
|
|
# directories
|
|
BACNET_PORT = ..\..\ports\win32
|
|
BACNET_INCLUDE = ..\..\include
|
|
INCLUDES = \
|
|
-I$(BACNET_INCLUDE) \
|
|
-I$(BACNET_PORT) \
|
|
-I$(BORLAND_DIR)\include
|
|
|
|
#
|
|
BACNET_DEFINES = -DPRINT_ENABLED=1 -DBACFILE -DBACAPP_ALL
|
|
#BACDL_DEFINE=-DBACDL_MSTP -DCRC_USE_TABLE
|
|
BACDL_DEFINE=-DBACDL_BIP=1 -DUSE_INADDR=1
|
|
DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE)
|
|
|
|
SRCS = main.c device.c
|
|
|
|
OBJS = $(SRCS:.c=.obj)
|
|
|
|
#
|
|
# Compiler definitions
|
|
#
|
|
BCC_CFG = bcc32.cfg
|
|
|
|
#
|
|
# Include directories
|
|
#
|
|
CFLAGS = $(INCLUDES) $(DEFINES)
|
|
|
|
#
|
|
# Libraries
|
|
#
|
|
C_LIB_DIR = $(BORLAND_DIR)\lib
|
|
|
|
LIBS = $(BACNET_LIB) \
|
|
$(C_LIB_DIR)\IMPORT32.lib \
|
|
$(C_LIB_DIR)\CW32MT.lib \
|
|
|
|
#
|
|
# Main target
|
|
#
|
|
# This should be the first one in the makefile
|
|
|
|
all : $(BACNET_LIB) $(BCC_CFG) $(OBJS) $(PRODUCT_EXE)
|
|
del $(BCC_CFG)
|
|
|
|
install: $(PRODUCT_EXE)
|
|
copy $(PRODUCT_EXE) ..\..\bin\$(PRODUCT_EXE)
|
|
|
|
$(BACNET_LIB):
|
|
cd $(BACNET_LIB_DIR)
|
|
$(MAKE) -i -f makefile.b32 clean
|
|
$(MAKE) -f makefile.b32 all
|
|
cd $(BACNET_DEMO_DIR)
|
|
|
|
# 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
|
|
# $** lists each dependency
|
|
# $< target name
|
|
# $* target name without extension
|
|
$(PRODUCT_EXE) : $(OBJS)
|
|
@echo Running Linker for $(PRODUCT_EXE)
|
|
$(LINK) -L$(C_LIB_DIR) -L$(BACNET_LIB_DIR) -m -c -s -v @&&|
|
|
$(BORLAND_DIR)\lib\c0x32.obj $**
|
|
$<
|
|
$*.map
|
|
$(LIBS)
|
|
|
|
|
|
|
#
|
|
# Utilities
|
|
|
|
clean :
|
|
del $(OBJS)
|
|
del $(PRODUCT_EXE)
|
|
del $(PRODUCT).map
|
|
del $(PRODUCT).ilc
|
|
del $(PRODUCT).ild
|
|
del $(PRODUCT).ilf
|
|
del $(PRODUCT).ils
|
|
del $(PRODUCT).tds
|
|
del $(BCC_CFG)
|
|
|
|
#
|
|
# Generic rules
|
|
#
|
|
.SUFFIXES: .cpp .c .sbr .obj
|
|
|
|
#
|
|
# cc generic rule
|
|
#
|
|
.c.obj:
|
|
$(CC) +$(BCC_CFG) -o$@ $<
|
|
|
|
# Compiler configuration file
|
|
$(BCC_CFG) :
|
|
Copy &&|
|
|
$(CFLAGS)
|
|
-c
|
|
-y #include line numbers in OBJ's
|
|
-v #include debug info
|
|
-w+ #turn on all warnings
|
|
#-Od #disable all optimizations
|
|
-O2 #disable all optimizations
|
|
-WM #multithread
|
|
#-WM- #not multithread
|
|
-w-aus # ignore warning assigned a value that is never used
|
|
-w-sig # ignore warning conversion may lose sig digits
|
|
#-a4 #32 bit data alignment
|
|
#-M # generate link map
|
|
#-ls # linker options
|
|
| $@
|
|
|
|
# EOF: makefile
|