Makefile changes req'd for a global build script. Also, global build
[platform/upstream/iotivity.git] / examples / makefile
index a1cf459..8467790 100644 (file)
+# //******************************************************************
+# //
+# // Copyright 2014 Intel Mobile Communications GmbH All Rights Reserved.
+# //
+# //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+# //
+# // Licensed under the Apache License, Version 2.0 (the "License");
+# // you may not use this file except in compliance with the License.
+# // You may obtain a copy of the License at
+# //
+# //      http://www.apache.org/licenses/LICENSE-2.0
+# //
+# // Unless required by applicable law or agreed to in writing, software
+# // distributed under the License is distributed on an "AS IS" BASIS,
+# // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# // See the License for the specific language governing permissions and
+# // limitations under the License.
+# //
+# //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+#
 # override with `make BUILD=release`
 # default to release build
-BUILD  := release
-CXX    := g++
-#CXX=clang -lstdc++ -g -O0
-OUT_DIR := $(PWD)/$(BUILD)
-OBJ_DIR        := $(OUT_DIR)/obj
-
-CXX_FLAGS.debug     := -g3 -std=c++11 -Wall -pthread
-
-CXX_FLAGS.release   := -std=c++11 -Wall -pthread
-
-CXX_INC        := -I../include/
-CXX_INC += -I./client/
-CXX_INC += -I../csdk/stack/include
-CXX_INC += -I../csdk/ocsocket/include
-CXX_INC += -I../csdk/ocrandom/include
-CXX_INC += -I../csdk/logger/include
-
-LIB_SRC0 := ../OCLib/OCReflect.cpp
-LIB_SRC0 += ../OCLib/OCProperties.cpp
-LIB_SRC0 += ../OCLib/OCObserver.cpp
-LIB_SRC0 += ../OCLib/OCResource.cpp
-LIB_SRC0 += ../OCLib/OCServer.cpp
-
-LIB_SRC1 := ../OCLib/OCReflect.cpp
-LIB_SRC1 += ../OCLib/OCObserver.cpp
-LIB_SRC1 += ./client/MyObserverHandler.cpp
-LIB_SRC1 += ../OCLib/OCResource.cpp
-LIB_SRC1 += ../OCLib/OCSecurityModel.cpp
-LIB_SRC1 += ../OCLib/InProcClientWrapper.cpp
-LIB_SRC1 += ../OCLib/OCPlatform.cpp
-LIB_SRC1 += ../OCLib/InProcServerWrapper.cpp
-LIB_SRC1 += ../csdk/liboctbstack.a
-LIB_SRC1 += ../OCLib/OCServer.cpp
-
-CXX_LIBS := -Lboost_regex
-
-.PHONY: prep_dirs ocreflect test_OCReflect test_OCClient test_properties
-
-all: .PHONY
+BUILD    := release
+PLATFORM  := linux
+CXX          := g++
+#CXX     := clang
+OUT_DIR          := $(BUILD)
+
+CXX_FLAGS.debug     := -O0 -g3 -std=c++0x -Wall -pthread
+
+CXX_FLAGS.release   := -O3 -std=c++0x -Wall -pthread
+
+CXX_INC          := -I../include/
+CXX_INC   += -I../oc_logger/include
+CXX_INC          += -I../csdk/stack/include
+CXX_INC          += -I../csdk/ocsocket/include
+CXX_INC          += -I../csdk/ocrandom/include
+CXX_INC          += -I../csdk/logger/include
+CXX_INC          += -I../csdk/libcoap
+
+LIB_OC_LOGGER := ../oc_logger/lib/oc_logger.a
+
+CXX_LIBS  := ../$(BUILD)/obj/liboc.a ../csdk/$(PLATFORM)/$(BUILD)/liboctbstack.a $(LIB_OC_LOGGER)
+
+# Force metatargets to build:
+all.PHONY: prep_dirs oc_cpp_sdk simpleserver simpleclient simpleclientserver roomserver roomclient presenceserver presenceclient garageserver garageclient fridgeserver fridgeclient ocicuc_target
+
+apps.PHONY: prep_dirs oc_cpp_sdk simpleserver simpleclient simpleclientserver roomserver roomclient presenceserver presenceclient garageserver garageclient fridgeserver fridgeclient
+
+buildScript_all.PHONY: prep_dirs simpleserver simpleclient simpleclientserver roomserver roomclient presenceserver presenceclient garageserver garageclient fridgeserver fridgeclient
+
+all: all.PHONY
+
+apps: apps.PHONY
+
+buildScript_all: buildScript_all.PHONY
 
 prep_dirs:
-       -mkdir $(OUT_DIR)
-       -mkdir $(OBJ_DIR)
+       -mkdir -p $(OUT_DIR)
+
+oc_cpp_sdk:
+       cd ../ && $(MAKE) cpp_sdk "BUILD=$(BUILD)"
+
+simpleserver: simpleserver.cpp
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ simpleserver.cpp $(CXX_INC) $(CXX_LIBS)
+
+simpleclient: simpleclient.cpp
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ simpleclient.cpp $(CXX_INC) $(CXX_LIBS)
+
+fridgeserver: fridgeserver.cpp
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ fridgeserver.cpp $(CXX_INC) $(CXX_LIBS)
+
+fridgeclient: fridgeclient.cpp
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ fridgeclient.cpp $(CXX_INC) $(CXX_LIBS)
+
+presenceserver: presenceserver.cpp
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ presenceserver.cpp $(CXX_INC) $(CXX_LIBS)
+
+presenceclient: presenceclient.cpp
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ presenceclient.cpp $(CXX_INC) $(CXX_LIBS)
+
+simpleclientserver: simpleclientserver.cpp
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ simpleclientserver.cpp $(CXX_INC) $(CXX_LIBS)
+
+roomserver: roomserver.cpp
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ roomserver.cpp $(CXX_INC) $(CXX_LIBS)
 
-ocreflect: test_properties test_OCClient
+roomclient: roomclient.cpp
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ roomclient.cpp $(CXX_INC) $(CXX_LIBS)
 
-test_properties:
-       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ reflect/test_properties.cpp $(LIB_SRC0) $(CXX_INC) $(CXX_LIBS)
+garageserver: garageserver.cpp
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ garageserver.cpp $(CXX_INC) $(CXX_LIBS)
 
-test_OCReflect:
-       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ reflect/test_OCReflect.cpp ../OCLib/OCReflect.cpp ../OCLib/OCProperties.cpp ../OCLib/OCServer.cpp  $(CXX_INC) $(CXX_LIBS)
+garageclient: garageclient.cpp
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ garageclient.cpp $(CXX_INC) $(CXX_LIBS)
 
-test_OCClient:
-       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(OUT_DIR)/$@ reflect/test_OCClient.cpp $(LIB_SRC0) $(CXX_INC) $(CXX_LIBS)
+ocicuc_target:
+       cd ocicuc && $(MAKE) apps
 
-clean: clean_legacy
-       -rm -rf release/*
-       -rm -rf release/obj/*.o
-       -rm -rf release/obj/*.a
-       -rmdir release
-       -rm -rf debug/*
-       -rm -rf debug/obj/*.o
-       -rm -rf debug/obj/*.a
-       -rmdir debug
+clean:
+       rm -rf debug
+       rm -rf release
+       cd ../ && $(MAKE) clean_cpp_sdk
+       cd ocicuc && $(MAKE) clean_apps
 
-clean_legacy:
-       -rm -f -v test_properties test_OCReflect test_OCClient
+clean_apps:
+       rm -rf debug
+       rm -rf release
+       cd ocicuc && $(MAKE) clean_apps