BACnet协议栈分析之Makefile文件

Makefile参考书籍<GNU make项目管理>

# CC = gcc
# AR = ar
# MAKE = make
# SIZE = size

# 配置

# If BACNET_DEFINES has not already been set, configure to your needs here

# -D 表示引用意思,PRINT_ENABLE=1, BACAPP_ALL, BACFILE, INTRINSIC_REPORTING

MY_BACNET_DEFINES = -DPRINT_ENABLED=1
MY_BACNET_DEFINES += -DBACAPP_ALL
MY_BACNET_DEFINES += -DBACFILE
MY_BACNET_DEFINES += -DINTRINSIC_REPORTING
BACNET_DEFINES ?= $(MY_BACNET_DEFINES)

# un-comment the next line to build the routing demo application BACNET默认是开启BACnet IP协议,若想使用MS/TP则需

#使用BACDL_DEFINE=-DBACDL_MSTP=1
#BACNET_DEFINES += -DBAC_ROUTING

#BACDL_DEFINE=-DBACDL_ETHERNET=1
#BACDL_DEFINE=-DBACDL_ARCNET=1
#BACDL_DEFINE=-DBACDL_MSTP=1
BACDL_DEFINE?=-DBACDL_BIP=1

# 定义要支持的BBMD的类型

BBMD_DEFINE ?= -DBBMD_ENABLED=1
#BBMD_DEFINE ?=-DBBMD_ENABLED=0
#BBMD_DEFINE ?= -DBBMD_CLIENT_ENABLED

# 通过命令行来传递参数

MAKE_DEFINE ?=

# 不知道WEAK_FUNC有什么用

DEFINES = $(BACNET_DEFINES) $(BACDL_DEFINE) $(BBMD_DEFINE) -DWEAK_FUNC=
DEFINES += $(MAKE_DEFINE)

# 默认是/ports/linux目录

BACNET_PORT ?= linux
BACNET_PORT_DIR = ../ports/${BACNET_PORT}

BACNET_OBJECT = ../demo/object
BACNET_HANDLER = ../demo/handler
BACNET_CORE = ../src
BACNET_INCLUDE = ../include
# 编译器配置

#STANDARDS = -std=c99
INCLUDE1 = -I$(BACNET_PORT_DIR) -I$(BACNET_OBJECT) -I$(BACNET_HANDLER)
INCLUDE2 = -I$(BACNET_INCLUDE)
INCLUDES = $(INCLUDE1) $(INCLUDE2)
OPTIMIZATION = -Os
DEBUGGING =
WARNINGS = -Wall -Wmissing-prototypes
ifeq (${BUILD},debug)
OPTIMIZATION = -O0
DEBUGGING = -g -DDEBUG_ENABLED=1
ifeq (${BACDL_DEFINE},-DBACDL_BIP=1)
DEFINES += -DBIP_DEBUG
endif
endif
CFLAGS  = $(WARNINGS) $(DEBUGGING) $(OPTIMIZATION) $(STANDARDS) $(INCLUDES) $(DEFINES)

# export导出变量

# (see http://www.gnu.org/software/automake/manual/make/Special-Targets.html)
.EXPORT_ALL_VARIABLES:

all: library demos
.PHONY : all library demos clean

library:
 $(MAKE) -C lib all

demos:
 $(MAKE) -C demo all

# 增加想要的开发板类型,比如at91sam7s,atmega168

ports: atmega168 bdk-atxx4-mstp at91sam7s
 @echo "Built the ARM7 and AVR ports"

atmega168: ports/atmega168/Makefile
 $(MAKE) -C ports/atmega168 clean all

at91sam7s: ports/at91sam7s/makefile
 $(MAKE) -C ports/at91sam7s clean all

bdk-atxx4-mstp: ports/bdk-atxx4-mstp/Makefile
 $(MAKE) -C ports/bdk-atxx4-mstp clean all

clean:
 $(MAKE) -C lib clean
 $(MAKE) -C demo clean

你可能感兴趣的:(BACnet协议栈分析之Makefile文件)