# tools - only if you need them. # Most platforms have this already defined # CC = gcc # AR = ar # MAKE = make # SIZE = size # # Assumes rm and cp are available # Directories BACNET_PORT ?= linux BACNET_PORT_DIR = ../../ports/${BACNET_PORT} BACNET_INCLUDE = ../../include BACNET_OBJECT = ../../demo/object BACNET_HANDLER = ../../demo/handler # BACnet Library BACNET_LIB_DIR = ../../lib BACNET_LIB_NAME = bacnet BACNET_LIB_TARGET = $(BACNET_LIB_DIR)/lib$(BACNET_LIB_NAME).a # Compiler Setup INCLUDE1 = -I$(BACNET_PORT_DIR) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER) INCLUDE2 = -I$(BACNET_INCLUDE) INCLUDES = $(INCLUDE1) $(INCLUDE2) BACNET_LIB := -L$(BACNET_LIB_DIR),-l$(BACNET_LIB_NAME) # build for UCI ifneq (,$(findstring -DBAC_UCI,$(BACNET_DEFINES))) BACNET_LIB := $(BACNET_LIB),-L$(UCI_LIB_DIR),-luci,-lubox endif # OS specific builds ifeq (${BACNET_PORT},linux) PFLAGS = -pthread TARGET_EXT = SYSTEM_LIB=-lc,-lgcc,-lrt,-lm endif ifeq (${BACNET_PORT},bsd) TARGET_EXT = SYSTEM_LIB=-lc,-lm endif ifeq (${BACNET_PORT},win32) TARGET_EXT = .exe SYSTEM_LIB=-lws2_32,-lgcc,-lm,-liphlpapi,-lwinmm DEFINES += -D_NO_OLDNAMES endif #build for release (default) or debug DEBUGGING = OPTIMIZATION = -Os ifeq (${BUILD},debug) OPTIMIZATION = -O0 DEBUGGING = -g -DDEBUG_ENABLED=1 endif # put all the flags together CFLAGS := -Wall $(DEBUGGING) $(OPTIMIZATION) $(INCLUDES) $(DEFINES) LFLAGS := -Wl,$(BACNET_LIB),$(SYSTEM_LIB) .EXPORT_ALL_VARIABLES: SUBDIRS = readprop writeprop readfile writefile reinit server dcc \ whohas whois iam ucov scov timesync epics readpropm readrange \ uptransfer getevent uevent abort error ifeq (${BACDL_DEFINE},-DBACDL_BIP=1) SUBDIRS += whoisrouter iamrouter initrouter readbdt endif ifeq (${BACNET_PORT},linux) ifneq (${OSTYPE},cygwin) SUBDIRS += mstpcap mstpcrc endif endif ifeq (${BACNET_PORT},win32) SUBDIRS += ptransfer mstpcap mstpcrc endif .PHONY : all gateway router clean TARGETS = all clean $(TARGETS): %: $(patsubst %, %.%, $(SUBDIRS)) $(foreach TGT, $(TARGETS), $(patsubst %, %.$(TGT), $(SUBDIRS))): $(MAKE) -s -b -C $(subst ., , $@) gateway: $(MAKE) -s -b -C gateway server: $(MAKE) -b -C server mstpcap: $(MAKE) -b -C mstpcap mstpcrc: $(MAKE) -b -C mstpcrc iam: $(MAKE) -b -C iam uevent: $(MAKE) -b -C uevent abort: $(MAKE) -b -C abort error: $(MAKE) -b -C error router: $(MAKE) -s -b -C router router-ipv6: $(MAKE) -b -C router-ipv6