+# //******************************************************************
+# //
+# // 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++0x -Wall -pthread
-
-CXX_FLAGS.release := -std=c++0x -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