Merge "OCLib is now called src. Now liboc.a is generated instead OCLib.a ."
[platform/upstream/iotivity.git] / makefile
1 # override with `make BUILD=debug`
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
9 CXX_FLAGS.debug     := -g3 -std=c++0x -Wall -pthread -O0 
10 CXX_FLAGS.release   := -std=c++0x -Wall -pthread -O3 
11
12 CXX_INC   := -I./include/
13 CXX_INC   += -I./csdk/stack/include
14 CXX_INC   += -I./csdk/ocsocket/include
15 CXX_INC   += -I./csdk/ocrandom/include
16 CXX_INC   += -I./csdk/logger/include
17 CXX_INC   += -I./csdk/libcoap
18
19 # Force metatargets to build:
20 .PHONY: prep_dirs c_sdk liboc.a examples 
21
22 all:    .PHONY
23
24 prep_dirs:
25         -mkdir -p $(OUT_DIR)
26         -mkdir -p $(OBJ_DIR)
27
28 c_sdk: 
29         cd csdk && $(MAKE) "BUILD=$(BUILD)"
30
31 examples: 
32         cd examples && $(MAKE) "BUILD=$(BUILD)"
33
34 liboc.a: OCPlatform.o OCResource.o OCReflect.o OCUtilities.o InProcServerWrapper.o InProcClientWrapper.o
35         ar -cvq $(OBJ_DIR)/liboc.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
36
37 OCReflect.o: src/OCReflect.cpp
38         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/OCReflect.cpp $(CXX_INC)
39
40 OCPlatform.o: src/OCPlatform.cpp
41         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/OCPlatform.cpp $(CXX_INC)
42
43 OCResource.o: src/OCResource.cpp
44         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/OCResource.cpp $(CXX_INC)
45
46 OCUtilities.o: src/OCUtilities.cpp
47         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/OCUtilities.cpp $(CXX_INC)
48
49 InProcServerWrapper.o: src/InProcServerWrapper.cpp
50         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/InProcServerWrapper.cpp $(CXX_INC)
51
52 InProcClientWrapper.o: src/InProcClientWrapper.cpp
53         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/InProcClientWrapper.cpp $(CXX_INC)
54
55 clean: clean_legacy
56         -rm -rf release
57         -rm -rf debug
58         cd csdk && $(MAKE) clean
59         cd csdk && $(MAKE) deepclean
60         cd examples && $(MAKE) clean
61 clean_legacy:
62         -rm -f -v $(OBJ_DIR)/liboc.a $(OBJ_DIR)/*.o