1 # override with `make BUILD=release`
2 # default to debug build
6 OUT_DIR := $(PWD)/$(BUILD)
7 OBJ_DIR := $(OUT_DIR)/obj
10 ROOT_DIR = $(PWD)/../../..
15 OCLOGGER_DIR = $(ROOT_DIR)/logger
16 OCRANDOM_DIR = $(ROOT_DIR)/ocrandom
17 OCSOCKET_DIR = $(ROOT_DIR)/ocsocket
18 LCOAP_DIR = $(ROOT_DIR)/libcoap-4.1.1
19 OCCOAP_DIR = $(ROOT_DIR)/occoap
20 OCTBSTACK_DIR = $(ROOT_DIR)/stack
22 OCLOGGER_INC = $(OCLOGGER_DIR)/include
23 OCRANDOM_INC = $(OCRANDOM_DIR)/include
24 OCSOCKET_INC = $(OCSOCKET_DIR)/include
25 LCOAP_INC = $(LCOAP_DIR)
26 OCCOAP_INC = $(OCCOAP_DIR)/include
27 OCTBSTACK_INC = $(OCTBSTACK_DIR)/include
29 INC_DIRS := -I$(OCLOGGER_INC)
30 INC_DIRS += -I$(OCRANDOM_INC)
31 INC_DIRS += -I$(OCSOCKET_INC)
32 INC_DIRS += -I$(LCOAP_INC)
33 INC_DIRS += -I$(OCCOAP_INC)
34 INC_DIRS += -I$(OCTBSTACK_INC)
36 CC_FLAGS.debug := -O0 -g3 -Wall -ffunction-sections -fdata-sections -fno-exceptions \
37 -std=c++0x -pedantic $(INC_DIRS) -L$(ROOT_DIR)/$(BUILD) -DTB_LOG
38 CC_FLAGS.release := -Os -Wall -fdata-sections -Wl,--gc-sections -Wl,-s -fno-exceptions \
39 -std=c++0x $(INC_DIRS) -L$(ROOT_DIR)/$(BUILD) -DTB_LOG
41 LDLIBS += -loctbstack -lpthread
42 CPPFLAGS += $(CC_FLAGS.$(BUILD)) $(LDLIBS)
44 SOURCES := occlient.cpp ocserver.cpp common.cpp
46 OBJECTS:= $(patsubst %.c, $(OBJ_DIR)/%.o, $(SOURCES))
51 all: prep_dirs $(OBJECTS) $(PROGRAMS)
58 $(CC) -c $(CPPFLAGS) $< -o $@
60 ocserver: $(OBJ_DIR)/ocserver.o $(OBJ_DIR)/common.o
61 $(CC) $^ $(CPPFLAGS) -o $(OUT_DIR)/$(BUILD)/$@
63 occlient: $(OBJ_DIR)/occlient.o $(OBJ_DIR)/common.o
64 $(CC) $^ $(CPPFLAGS) -o $(OUT_DIR)/$(BUILD)/$@