Changing TBStack makefiles to allow for DEBUG & RELEASE modes through & through.
[platform/upstream/iotivity.git] / examples / makefile
1 # override with `make BUILD=release`
2 # default to release build
3 BUILD   := release
4 CXX     := g++
5 #CXX=clang -lstdc++ -g -O0
6 OUT_DIR := $(PWD)/$(BUILD)
7 OBJ_DIR := $(OUT_DIR)/obj
8
9 CXX_FLAGS.debug     := -g3 -std=c++11 -Wall -pthread
10
11 CXX_FLAGS.release   := -std=c++11 -Wall -pthread
12
13 CXX_INC := -I../include/
14 CXX_INC += -I./client/
15 CXX_INC += -I../csdk/stack/include
16 CXX_INC += -I../csdk/ocsocket/include
17 CXX_INC += -I../csdk/ocrandom/include
18 CXX_INC += -I../csdk/logger/include
19
20 LIB_SRC0 := ../OCLib/OCReflect.cpp
21 LIB_SRC0 += ../OCLib/OCProperties.cpp
22 LIB_SRC0 += ../OCLib/OCObserver.cpp
23 LIB_SRC0 += ../OCLib/OCResource.cpp
24 LIB_SRC0 += ../OCLib/OCServer.cpp
25
26 LIB_SRC1 := ../OCLib/OCReflect.cpp
27 LIB_SRC1 += ../OCLib/OCObserver.cpp
28 LIB_SRC1 += ./client/MyObserverHandler.cpp
29 LIB_SRC1 += ../OCLib/OCResource.cpp
30 LIB_SRC1 += ../OCLib/OCSecurityModel.cpp
31 LIB_SRC1 += ../OCLib/InProcClientWrapper.cpp
32 LIB_SRC1 += ../OCLib/OCPlatform.cpp
33 LIB_SRC1 += ../OCLib/InProcServerWrapper.cpp
34 LIB_SRC1 += ../csdk/liboctbstack.a
35 LIB_SRC1 += ../OCLib/OCServer.cpp
36
37 CXX_LIBS := -Lboost_regex
38
39 .PHONY: prep_dirs ocreflect test_OCReflect test_OCClient test_properties
40
41 all: .PHONY
42
43 prep_dirs:
44         -mkdir $(OUT_DIR)
45         -mkdir $(OBJ_DIR)
46
47 ocreflect: test_properties test_OCClient
48
49 test_properties:
50         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ reflect/test_properties.cpp $(LIB_SRC0) $(CXX_INC) $(CXX_LIBS)
51
52 test_OCReflect:
53         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ reflect/test_OCReflect.cpp ../OCLib/OCReflect.cpp ../OCLib/OCProperties.cpp ../OCLib/OCServer.cpp  $(CXX_INC) $(CXX_LIBS)
54
55 test_OCClient:
56         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ reflect/test_OCClient.cpp $(LIB_SRC0) $(CXX_INC) $(CXX_LIBS)
57
58 clean:  clean_legacy
59         -rm -rf release/*
60         -rm -rf release/obj/*.o
61         -rm -rf release/obj/*.a
62         -rmdir release
63         -rm -rf debug/*
64         -rm -rf debug/obj/*.o
65         -rm -rf debug/obj/*.a
66         -rmdir debug
67
68 clean_legacy:
69         -rm -f -v test_properties test_OCReflect test_OCClient