Merge "Added mechanism to set URI in the regular entity handler's request. This allow...
[platform/upstream/iotivity.git] / makefile
1 # //******************************************************************
2 # //
3 # // Copyright 2014 Intel Mobile Communications GmbH All Rights Reserved.
4 # //
5 # //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6 # //
7 # // Licensed under the Apache License, Version 2.0 (the "License");
8 # // you may not use this file except in compliance with the License.
9 # // You may obtain a copy of the License at
10 # //
11 # //      http://www.apache.org/licenses/LICENSE-2.0
12 # //
13 # // Unless required by applicable law or agreed to in writing, software
14 # // distributed under the License is distributed on an "AS IS" BASIS,
15 # // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # // See the License for the specific language governing permissions and
17 # // limitations under the License.
18 # //
19 # //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
20 #
21 # override with `make BUILD=debug`
22 # default to release build
23 BUILD     := release
24 CXX       := g++
25 #CXX      := clang
26
27 ifeq ($(ROOT_DIR), )
28         ROOT_DIR := $(PWD)
29 endif
30 ifeq ($(PLATFORM), )
31         PLATFORM := "linux"
32 endif
33
34 OUT_DIR   := $(ROOT_DIR)/$(BUILD)
35 OBJ_DIR   := $(OUT_DIR)/obj
36
37 CXX_FLAGS.debug     := -g3 -std=c++0x -Wall -pthread -O0
38 CXX_FLAGS.release   := -std=c++0x -Wall -pthread -O3
39
40 CXX_INC   := -I./include/
41 CXX_INC   += -I./oc_logger/include
42
43 CXX_INC   += -I./csdk/stack/include
44 CXX_INC   += -I./csdk/ocsocket/include
45 CXX_INC   += -I./csdk/ocrandom/include
46 CXX_INC   += -I./csdk/logger/include
47 CXX_INC   += -I./csdk/libcoap
48
49 # Force metatargets to build:
50 all.PHONY: prep_dirs c_sdk oc_logger_target liboc.a examples
51
52 buildScript_all.PHONY: prep_dirs oc_logger_target liboc.a
53
54 all:    all.PHONY
55
56 buildScript_all:  buildScript_all.PHONY
57
58 prep_dirs:
59         -mkdir -p $(OUT_DIR)
60         -mkdir -p $(OBJ_DIR)
61
62 c_sdk:
63         cd csdk && $(MAKE) "BUILD=$(BUILD)" "PLATFORM=$(PLATFORM)"
64
65 oc_logger_target:
66         cd oc_logger && $(MAKE) "BUILD=$(BUILD)"
67
68 cpp_sdk: prep_dirs c_sdk liboc.a
69
70 examples: liboc.a
71         cd examples && $(MAKE) apps "BUILD=$(BUILD)"
72
73 liboc.a: OCPlatform.o OCResource.o OCUtilities.o InProcServerWrapper.o InProcClientWrapper.o
74         ar -cvq $(OBJ_DIR)/liboc.a $(OBJ_DIR)/OCPlatform.o $(OBJ_DIR)/OCResource.o $(OBJ_DIR)/OCUtilities.o $(OBJ_DIR)/InProcServerWrapper.o $(OBJ_DIR)/InProcClientWrapper.o
75
76 OCPlatform.o: src/OCPlatform.cpp
77         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/OCPlatform.cpp $(CXX_INC)
78
79 OCResource.o: src/OCResource.cpp
80         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/OCResource.cpp $(CXX_INC)
81
82 OCUtilities.o: src/OCUtilities.cpp
83         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/OCUtilities.cpp $(CXX_INC)
84
85 InProcServerWrapper.o: src/InProcServerWrapper.cpp
86         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/InProcServerWrapper.cpp $(CXX_INC)
87
88 InProcClientWrapper.o: src/InProcClientWrapper.cpp
89         $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OBJ_DIR)/$@ -c src/InProcClientWrapper.cpp $(CXX_INC)
90
91 clean: clean_legacy
92         -rm -rf release
93         -rm -rf debug
94         cd oc_logger && $(MAKE) clean
95
96 clean_cpp_sdk: clean_legacy
97         -rm -rf release
98         -rm -rf debug
99
100 clean_legacy:
101         -rm -f -v $(OBJ_DIR)/liboc.a $(OBJ_DIR)/*.o
102         cd csdk && $(MAKE) clean
103         cd csdk && $(MAKE) deepclean