Incrementing the size of request/response packets for non-Arduino platforms. Also...
[platform/upstream/iotivity.git] / makefile
1 # override with `make BUILD=release`
2 # default to release build
3 BUILD     := release
4 CXX       := g++
5 #CXX      := clang
6 OUT_DIR   := $(PWD)/$(BUILD)
7 OBJ_DIR   := $(OUT_DIR)/obj
8 SAMPLES_OUT_DIR := $(OUT_DIR)/samples
9
10 CXX_FLAGS.debug     := -g3 -std=c++0x -Wall -pthread
11
12 CXX_FLAGS.release   := -std=c++0x -Wall -pthread
13
14 CXX_INC   := -I./include/
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 CXX_INC   += -I./csdk/libcoap
20
21 # Force metatargets to build:
22 .PHONY: prep_dirs c_sdk simpleserver simpleclient simpleclientserver roomserver roomclient
23
24 all:    .PHONY
25
26 prep_dirs:
27         -mkdir $(OUT_DIR)
28         -mkdir $(OBJ_DIR)
29         -mkdir $(SAMPLES_OUT_DIR)
30
31 c_sdk: 
32         cd csdk && $(MAKE) "BUILD=$(BUILD)"
33
34 simpleserver: OCLib.a examples/simpleserver.cpp
35         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(SAMPLES_OUT_DIR)/$@ examples/simpleserver.cpp $(CXX_INC) $(OBJ_DIR)/OCLib.a csdk/$(BUILD)/liboctbstack.a
36
37 simpleclient: OCLib.a examples/simpleclient.cpp
38         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(SAMPLES_OUT_DIR)/$@ examples/simpleclient.cpp $(CXX_INC) $(OBJ_DIR)/OCLib.a csdk/$(BUILD)/liboctbstack.a
39
40 simpleclientserver: OCLib.a examples/simpleclientserver.cpp
41         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(SAMPLES_OUT_DIR)/$@ examples/simpleclientserver.cpp $(CXX_INC) $(OBJ_DIR)/OCLib.a csdk/$(BUILD)/liboctbstack.a
42
43 roomserver: OCLib.a examples/roomserver.cpp
44         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(SAMPLES_OUT_DIR)/$@ examples/roomserver.cpp $(CXX_INC) $(OBJ_DIR)/OCLib.a csdk/$(BUILD)/liboctbstack.a
45
46 roomclient: OCLib.a examples/roomclient.cpp
47         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(SAMPLES_OUT_DIR)/$@ examples/roomclient.cpp $(CXX_INC) $(OBJ_DIR)/OCLib.a csdk/$(BUILD)/liboctbstack.a
48
49 OCLib.a: OCPlatform.o OCResource.o OCReflect.o OCUtilities.o InProcServerWrapper.o InProcClientWrapper.o
50         ar -cvq $(OBJ_DIR)/OCLib.a $(OBJ_DIR)/OCPlatform.o $(OBJ_DIR)/OCResource.o $(OBJ_DIR)/OCReflect.o $(OBJ_DIR)/OCUtilities.o $(OBJ_DIR)/InProcServerWrapper.o $(OBJ_DIR)/InProcClientWrapper.o
51
52 OCReflect.o: OCLib/OCReflect.cpp
53         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c OCLib/OCReflect.cpp $(CXX_INC)
54
55 OCPlatform.o: OCLib/OCPlatform.cpp
56         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c OCLib/OCPlatform.cpp $(CXX_INC)
57
58 OCResource.o: OCLib/OCResource.cpp
59         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c OCLib/OCResource.cpp $(CXX_INC)
60
61 OCUtilities.o: OCLib/OCUtilities.cpp
62         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c OCLib/OCUtilities.cpp $(CXX_INC)
63
64 InProcServerWrapper.o: OCLib/InProcServerWrapper.cpp
65         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c OCLib/InProcServerWrapper.cpp $(CXX_INC)
66
67 InProcClientWrapper.o: OCLib/InProcClientWrapper.cpp
68         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c OCLib/InProcClientWrapper.cpp $(CXX_INC)
69
70 clean: clean_legacy
71         -rm -rf release
72         -rm -rf debug
73         cd csdk && $(MAKE) clean
74         cd csdk && $(MAKE) deepclean
75 clean_legacy:
76         -rm -f -v $(OBJ_DIR)/OCLib.a $(OBJ_DIR)/*.o $(SAMPLES_OUT_DIR)/*