mirror of
https://github.com/stargieg/bacnet-stack
synced 2025-10-19 23:25:23 +08:00
113 lines
2.3 KiB
Makefile
113 lines
2.3 KiB
Makefile
# 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
|