Merge "CPP Collection"
[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++0x -Wall -pthread
10
11 CXX_FLAGS.release   := -std=c++0x -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 ocicuc
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 ocicuc:
59         cd ocicuc && $(MAKE)
60
61 clean:  clean_legacy
62         -rm -rf release/*
63         -rm -rf release/obj/*.o
64         -rm -rf release/obj/*.a
65         -rmdir release
66         -rm -rf debug/*
67         -rm -rf debug/obj/*.o
68         -rm -rf debug/obj/*.a
69         -rmdir debug
70         cd ocicuc && $(MAKE) clean
71
72 clean_legacy:
73         -rm -f -v test_properties test_OCReflect test_OCClient