Adjusting C++ files to compile with gcc 4.9.3
authorrtrimana <rtrimana@uci.edu>
Thu, 15 Mar 2018 18:41:45 +0000 (11:41 -0700)
committerrtrimana <rtrimana@uci.edu>
Thu, 15 Mar 2018 18:41:45 +0000 (11:41 -0700)
12 files changed:
benchmarks/Cpp/Lifxtest/Lifxtest.config
benchmarks/Cpp/Lifxtest/Lifxtest.cpp
benchmarks/Cpp/Lifxtest/Makefile
benchmarks/drivers/Cpp/LabRoom/LabRoom.config
benchmarks/drivers/Cpp/LabRoom/Room_Skeleton.cpp
benchmarks/drivers/Cpp/LifxLightBulb/LifxLightBulb.config
benchmarks/drivers/Cpp/LifxLightBulb/LifxLightBulb.cpp
benchmarks/drivers/Cpp/LifxLightBulb/LightBulb_Skeleton.cpp
benchmarks/drivers/Cpp/Makefile
benchmarks/drivers/Java/LifxLightBulb/LifxLightBulb.config
common.mk
iotjava/iotruntime/cpp/iotslave/Makefile

index 718f292c5dba2f50cc09fb3c762b4f413a562d51..ae1433249c681b49dbc3499e2b096bcc52059600 100644 (file)
@@ -20,4 +20,4 @@ FIELD_CLASS_REL_2=LightBulbTest
 FIELD_TYPE_2=IoTRelation
 
 # Language
-LANGUAGE=Java
+LANGUAGE=C++
index 7e93b4c2cc4e07c7995aafa08552e07358fa6cc9..07ae82f5d24ebb07b6a207f1b1b08797a6cd34f8 100644 (file)
@@ -144,9 +144,9 @@ void Lifxtest::init() {
                //Room* rs = (Room*) *itr;
                RoomSmart* rs = (RoomSmart*) *itr;
                log << "Getting Room! ID: " << rs->getRoomID() << endl;
-               auto itrLight = roomLightRel->find(rs);
+               //auto itrLight = roomLightRel->find(rs);
 
-               if (itrLight == roomLightRel->end())
+               /*if (itrLight == roomLightRel->end())
                        log << "No match!" << endl;
                //while (itrLight != roomLightRel->end()) {
                else {
@@ -193,7 +193,7 @@ void Lifxtest::init() {
                                this_thread::sleep_for (chrono::milliseconds(500));
                        }
                        //++itrLight;
-               }
+               }*/
                log << "End of one LightBulb!" << endl << endl;
        }
                
index d71ea12b10f624351edb1acab4685725928cf34e..38a378a88307360e791685b4a56bcc6927b954b1 100755 (executable)
@@ -2,23 +2,41 @@ BASE = ../../..
 
 include $(BASE)/common.mk
 
-all: so-lifxtest-arm so-lightstub-arm so-roomstub-arm zip
+all: so-lifxtest so-lightstub so-roomstub zip
 
 ARGS = -shared -fpic
 
 # Lifxtest .so file will be generated for ARM (Raspberry Pi)
+PHONY += so-lifxtest
+so-lifxtest:
+       $(G++) $(ARGS) ./Lifxtest.cpp $(BASE)/iotjava/iotruntime/cpp/socket/Socket.cpp -o $(BIN_DIR)/Lifxtest/Lifxtest.so --std=c++11 -pthread -pg -I$(BASE)/iotjava/iotruntime/cpp/ -I$(BASE)/iotjava/iotruntime/cpp/socket/ -I$(BASE)/iotjava/iotruntime/cpp/setrelation/ -I$(BASE)/iotjava/iotrmi/C++/ -I$(BASE)/benchmarks/virtuals/ -I$(BASE)/benchmarks/drivers/Cpp/LifxLightBulb/ -I$(BASE)/benchmarks/drivers/Cpp/LabRoom/
+       cp ./Lifxtest.config $(BIN_DIR)/Lifxtest
+
+# Lifxtest .so file will be generated for ARM (Raspberry Pi) using a cross-compiler
 PHONY += so-lifxtest-arm
 so-lifxtest-arm:
        $(ARM_G++) $(ARGS) ./Lifxtest.cpp $(BASE)/iotjava/iotruntime/cpp/socket/Socket.cpp -o $(BIN_DIR)/Lifxtest/Lifxtest.so --std=c++11 -pthread -pg -I$(BASE)/iotjava/iotruntime/cpp/ -I$(BASE)/iotjava/iotruntime/cpp/socket/ -I$(BASE)/iotjava/iotruntime/cpp/setrelation/ -I$(BASE)/iotjava/iotrmi/C++/ -I$(BASE)/benchmarks/virtuals/ -I$(BASE)/benchmarks/drivers/Cpp/LifxLightBulb/ -I$(BASE)/benchmarks/drivers/Cpp/LabRoom/
        cp ./Lifxtest.config $(BIN_DIR)/Lifxtest
 
 # Light stub .so file will be generated for ARM (Raspberry Pi)
+PHONY += so-lightstub
+so-lightstub:
+       $(G++) $(ARGS) ./LightBulbTest_Stub.cpp $(BASE)/iotjava/iotruntime/cpp/socket/Socket.cpp -o $(BIN_DIR)/Lifxtest/LightBulbTest_Stub.so --std=c++11 -pthread -pg -I$(BASE)/iotjava/iotruntime/cpp/ -I$(BASE)/iotjava/iotruntime/cpp/socket/ -I$(BASE)/iotjava/iotruntime/cpp/setrelation/ -I$(BASE)/iotjava/iotrmi/C++/ -I$(BASE)/benchmarks/virtuals/
+       cp ./Lifxtest.config $(BIN_DIR)/Lifxtest
+
+# Light stub .so file will be generated for ARM (Raspberry Pi) using a cross-compiler
 PHONY += so-lightstub-arm
 so-lightstub-arm:
        $(ARM_G++) $(ARGS) ./LightBulbTest_Stub.cpp $(BASE)/iotjava/iotruntime/cpp/socket/Socket.cpp -o $(BIN_DIR)/Lifxtest/LightBulbTest_Stub.so --std=c++11 -pthread -pg -I$(BASE)/iotjava/iotruntime/cpp/ -I$(BASE)/iotjava/iotruntime/cpp/socket/ -I$(BASE)/iotjava/iotruntime/cpp/setrelation/ -I$(BASE)/iotjava/iotrmi/C++/ -I$(BASE)/benchmarks/virtuals/
        cp ./Lifxtest.config $(BIN_DIR)/Lifxtest
 
 # Room stub .so file will be generated for ARM (Raspberry Pi)
+PHONY += so-roomstub
+so-roomstub:
+       $(G++) $(ARGS) ./RoomSmart_Stub.cpp $(BASE)/iotjava/iotruntime/cpp/socket/Socket.cpp -o $(BIN_DIR)/Lifxtest/RoomSmart_Stub.so --std=c++11 -pthread -pg -I$(BASE)/iotjava/iotruntime/cpp/ -I$(BASE)/iotjava/iotruntime/cpp/socket/ -I$(BASE)/iotjava/iotruntime/cpp/setrelation/ -I$(BASE)/iotjava/iotrmi/C++/ -I$(BASE)/benchmarks/virtuals/
+       cp ./Lifxtest.config $(BIN_DIR)/Lifxtest
+
+# Room stub .so file will be generated for ARM (Raspberry Pi) using a cross-compiler
 PHONY += so-roomstub-arm
 so-roomstub-arm:
        $(ARM_G++) $(ARGS) ./RoomSmart_Stub.cpp $(BASE)/iotjava/iotruntime/cpp/socket/Socket.cpp -o $(BIN_DIR)/Lifxtest/RoomSmart_Stub.so --std=c++11 -pthread -pg -I$(BASE)/iotjava/iotruntime/cpp/ -I$(BASE)/iotjava/iotruntime/cpp/socket/ -I$(BASE)/iotjava/iotruntime/cpp/setrelation/ -I$(BASE)/iotjava/iotrmi/C++/ -I$(BASE)/benchmarks/virtuals/
index 89aad7192f041371e6918c28efcf69546bbf6409..4e449921a6234cf3c64142491da3c591f52919b5 100644 (file)
@@ -7,7 +7,7 @@ INTERFACE_STUB_CLASS=RoomSmart
 FIELD_NUMBER=0
 
 # Language
-#LANGUAGE=C++
+LANGUAGE=C++
 # Language (fine-grained flags)
-LANGUAGE_LabRoomRM1=C++
-LANGUAGE_LabRoomRM2=C++
+#LANGUAGE_LabRoomRM1=C++
+#LANGUAGE_LabRoomRM2=C++
index e29f567db8cea134437f07693e6ce753e0fcd192..3124cf4ba204f7956b0d0bcd57db095cf0edee83 100644 (file)
@@ -84,7 +84,7 @@ void Room_Skeleton::___waitRequestInvokeMethod(Room_Skeleton* skel) {
                }
                switch (methodId) {
                        case 0: {
-                               thread th0 (&Room_Skeleton::___getRoomID, std::ref(skel), skel);
+                               thread th0 (&Room_Skeleton::___getRoomID, skel, skel);
                                th0.detach(); break;
                        }
                        default: 
index 25322a6f492019794a2efff8f9067d26ae655919..1443e955f99da76ffc851cd64cf8499042421fe3 100644 (file)
@@ -1,8 +1,9 @@
 # Skeleton/original interface
 INTERFACE_CLASS=LightBulb
 # Stub
-#INTERFACE_STUB_CLASS=LightBulbTest    # This one is needed for Lifxtest application
-INTERFACE_STUB_CLASS=LightBulbSmart    # This one is needed for SmartLightsController application
+# LightBulbTest is for Lifxtest and LightBulbSmart is for SmartLightsController
+INTERFACE_STUB_CLASS=LightBulbTest
+#INTERFACE_STUB_CLASS=LightBulbSmart
 
 # For C++ instrumentation
 FIELD_NUMBER=1
@@ -11,8 +12,8 @@ FIELD_CLASS_0=IoTDeviceAddress
 FIELD_TYPE_0=IoTSet
 
 # Language
-LANGUAGE=Java
-#LANGUAGE=C++
+#LANGUAGE=Java
+LANGUAGE=C++
 # Language (fine-grained flags)
 #LANGUAGE_LifxLightBulbLB1=C++
 #LANGUAGE_LifxLightBulbLB1=Java
index 38edcffa727a0a94391325fb1aface8b54f667f9..976ec547216f0d6c8865ce9ccf67e0f9ebafa30c 100644 (file)
@@ -339,7 +339,6 @@ void LifxLightBulb::receivedPacket(char* packetData) {
        recHeader.setFromBytes(headerBytes);
 
        // load the payload bytes (strip away the header)
-       //char payloadBytes[recHeader.getSize()];
        char* payloadBytes = new char[recHeader.getSize()];
        for (int i = 36; i < recHeader.getSize(); i++) {
                payloadBytes[i - 36] = packetData[i];
@@ -347,6 +346,7 @@ void LifxLightBulb::receivedPacket(char* packetData) {
 
        int type = recHeader.getType();
        //cout << "Received: " << type << endl;
+       log << "Received: " << type << endl;
 
        DeviceStateService* dat = NULL;
        switch (type) {
@@ -1219,12 +1219,12 @@ void adjustBright(LifxLightBulb *llb) {
 }
 
 
-int main(int argc, char *argv[])
+/*int main(int argc, char *argv[])
 {
        string macAddress1 = "D073D5128E300000";
        //string macAddress = "D073D50241DA0000";
-       string devIPAddress1 = "192.168.2.126";
-       //string devIPAddress = "192.168.2.232";
+       string devIPAddress1 = "192.168.1.126";
+       //string devIPAddress = "192.168.1.232";
        IoTDeviceAddress* devAddress1 = new IoTDeviceAddress(devIPAddress1, 12345, 56700, false, false);
        unordered_set<void*>* myset1 = new unordered_set<void*>();
        myset1->insert(devAddress1);
@@ -1233,14 +1233,16 @@ int main(int argc, char *argv[])
        LifxLightBulb *llb1 = new LifxLightBulb(setDevAddress1, macAddress1);
        cout << "Generated LifxLightBulb object!" << endl;
        llb1->init();
+       cout << "Initialized!" << endl;
        llb1->turnOn();
+       cout << "Turning on!" << endl;
        onOff(llb1);
-       adjustTemp(llb1);
-       adjustBright(llb1);
-//     llb->turnOff();
+//     adjustTemp(llb1);
+//     adjustBright(llb1);
+       llb1->turnOff();
 
 //     delete devAddress1;
 //     delete llb1;
 
        return 0;
-}
+}*/
index e533d08f6336054b807bda2285565f07813740d2..b2ec39899ab3bf42d2db2e69bc8628b3de4c67b6 100644 (file)
@@ -373,75 +373,75 @@ void LightBulb_Skeleton::___waitRequestInvokeMethod(LightBulb_Skeleton* skel) {
                }
                switch (methodId) {
                        case 0: {
-                               thread th0 (&LightBulb_Skeleton::___init, std::ref(skel), skel);
+                               thread th0 (&LightBulb_Skeleton::___init, skel, skel);
                                th0.detach(); break;
                        }
                        case 1: {
-                               thread th1 (&LightBulb_Skeleton::___turnOff, std::ref(skel), skel);
+                               thread th1 (&LightBulb_Skeleton::___turnOff, skel, skel);
                                th1.detach(); break;
                        }
                        case 2: {
-                               thread th2 (&LightBulb_Skeleton::___turnOn, std::ref(skel), skel);
+                               thread th2 (&LightBulb_Skeleton::___turnOn, skel, skel);
                                th2.detach(); break;
                        }
                        case 3: {
-                               thread th3 (&LightBulb_Skeleton::___getState, std::ref(skel), skel);
+                               thread th3 (&LightBulb_Skeleton::___getState, skel, skel);
                                th3.detach(); break;
                        }
                        case 4: {
-                               thread th4 (&LightBulb_Skeleton::___setColor, std::ref(skel), skel);
+                               thread th4 (&LightBulb_Skeleton::___setColor, skel, skel);
                                th4.detach(); break;
                        }
                        case 5: {
-                               thread th5 (&LightBulb_Skeleton::___setTemperature, std::ref(skel), skel);
+                               thread th5 (&LightBulb_Skeleton::___setTemperature, skel, skel);
                                th5.detach(); break;
                        }
                        case 6: {
-                               thread th6 (&LightBulb_Skeleton::___getBrightness, std::ref(skel), skel);
+                               thread th6 (&LightBulb_Skeleton::___getBrightness, skel, skel);
                                th6.detach(); break;
                        }
                        case 7: {
-                               thread th7 (&LightBulb_Skeleton::___getHue, std::ref(skel), skel);
+                               thread th7 (&LightBulb_Skeleton::___getHue, skel, skel);
                                th7.detach(); break;
                        }
                        case 8: {
-                               thread th8 (&LightBulb_Skeleton::___getSaturation, std::ref(skel), skel);
+                               thread th8 (&LightBulb_Skeleton::___getSaturation, skel, skel);
                                th8.detach(); break;
                        }
                        case 9: {
-                               thread th9 (&LightBulb_Skeleton::___getTemperature, std::ref(skel), skel);
+                               thread th9 (&LightBulb_Skeleton::___getTemperature, skel, skel);
                                th9.detach(); break;
                        }
                        case 10: {
-                               thread th10 (&LightBulb_Skeleton::___getBrightnessRangeLowerBound, std::ref(skel), skel);
+                               thread th10 (&LightBulb_Skeleton::___getBrightnessRangeLowerBound, skel, skel);
                                th10.detach(); break;
                        }
                        case 11: {
-                               thread th11 (&LightBulb_Skeleton::___getBrightnessRangeUpperBound, std::ref(skel), skel);
+                               thread th11 (&LightBulb_Skeleton::___getBrightnessRangeUpperBound, skel, skel);
                                th11.detach(); break;
                        }
                        case 12: {
-                               thread th12 (&LightBulb_Skeleton::___getHueRangeLowerBound, std::ref(skel), skel);
+                               thread th12 (&LightBulb_Skeleton::___getHueRangeLowerBound, skel, skel);
                                th12.detach(); break;
                        }
                        case 13: {
-                               thread th13 (&LightBulb_Skeleton::___getHueRangeUpperBound, std::ref(skel), skel);
+                               thread th13 (&LightBulb_Skeleton::___getHueRangeUpperBound, skel, skel);
                                th13.detach(); break;
                        }
                        case 14: {
-                               thread th14 (&LightBulb_Skeleton::___getSaturationRangeLowerBound, std::ref(skel), skel);
+                               thread th14 (&LightBulb_Skeleton::___getSaturationRangeLowerBound, skel, skel);
                                th14.detach(); break;
                        }
                        case 15: {
-                               thread th15 (&LightBulb_Skeleton::___getSaturationRangeUpperBound, std::ref(skel), skel);
+                               thread th15 (&LightBulb_Skeleton::___getSaturationRangeUpperBound, skel, skel);
                                th15.detach(); break;
                        }
                        case 16: {
-                               thread th16 (&LightBulb_Skeleton::___getTemperatureRangeLowerBound, std::ref(skel), skel);
+                               thread th16 (&LightBulb_Skeleton::___getTemperatureRangeLowerBound, skel, skel);
                                th16.detach(); break;
                        }
                        case 17: {
-                               thread th17 (&LightBulb_Skeleton::___getTemperatureRangeUpperBound, std::ref(skel), skel);
+                               thread th17 (&LightBulb_Skeleton::___getTemperatureRangeUpperBound, skel, skel);
                                th17.detach(); break;
                        }
                        default: 
@@ -467,3 +467,4 @@ extern "C" void initLightBulb_Skeleton(void* t) {
 int main() {
        return 0;
 }
+
index d531d5af71b1bded2c408da2b22f69768f748b25..0144b487e4a648100bba64c424e7c026e3282837 100644 (file)
@@ -2,7 +2,7 @@ BASE = ../../..
 
 include $(BASE)/common.mk
 
-all: so-light-arm so-lightskel-arm lightzip so-labroom-arm so-labroomskel-arm labroomzip
+all: so-light so-lightskel lightzip so-labroom so-labroomskel labroomzip
 
 ARGS = -shared -fpic
 
@@ -11,6 +11,18 @@ ARGS = -shared -fpic
 # LightBulb
 
 # LifxLightBulb .so file will be generated for ARM (Raspberry Pi)
+PHONY += so-light
+so-light:
+       cd LifxLightBulb/; $(G++) $(ARGS) ./LifxLightBulb.cpp $(BASE)/../iotjava/iotruntime/cpp/socket/Socket.cpp -o ../$(BIN_DIR)/iotcode/LifxLightBulb/LifxLightBulb.so --std=c++11 -pthread -pg -I$(BASE)/../iotjava/iotruntime/cpp/ -I$(BASE)/../iotjava/iotruntime/cpp/socket/ -I$(BASE)/../iotjava/iotruntime/cpp/setrelation/ -I$(BASE)/../iotjava/iotrmi/C++/ -I$(BASE)/../benchmarks/virtuals/
+       cp LifxLightBulb/LifxLightBulb.config $(BIN_DIR)/iotcode/LifxLightBulb
+
+# LifxLightBulb skeleton .so file will be generated for ARM (Raspberry Pi)
+PHONY += so-lightskel
+so-lightskel:
+       cd LifxLightBulb/; $(G++) $(ARGS) ./LightBulb_Skeleton.cpp $(BASE)/../iotjava/iotruntime/cpp/socket/Socket.cpp -o ../$(BIN_DIR)/iotcode/LifxLightBulb/LightBulb_Skeleton.so --std=c++11 -pthread -pg -I$(BASE)/../iotjava/iotruntime/cpp/ -I$(BASE)/../iotjava/iotruntime/cpp/socket/ -I$(BASE)/../iotjava/iotruntime/cpp/setrelation/ -I$(BASE)/../iotjava/iotrmi/C++/ -I$(BASE)/../benchmarks/virtuals/
+       cp LifxLightBulb/LifxLightBulb.config $(BIN_DIR)/iotcode/LifxLightBulb
+
+# LifxLightBulb .so file will be generated for ARM (Raspberry Pi) using a cross-compiler
 PHONY += so-light-arm
 so-light-arm:
        cd LifxLightBulb/; $(ARM_G++) $(ARGS) ./LifxLightBulb.cpp $(BASE)/../iotjava/iotruntime/cpp/socket/Socket.cpp -o ../$(BIN_DIR)/iotcode/LifxLightBulb/LifxLightBulb.so --std=c++11 -pthread -pg -I$(BASE)/../iotjava/iotruntime/cpp/ -I$(BASE)/../iotjava/iotruntime/cpp/socket/ -I$(BASE)/../iotjava/iotruntime/cpp/setrelation/ -I$(BASE)/../iotjava/iotrmi/C++/ -I$(BASE)/../benchmarks/virtuals/
@@ -29,6 +41,18 @@ lightzip:
 # LabRoom
 
 # LabRoom .so file will be generated for ARM (Raspberry Pi)
+PHONY += so-labroom
+so-labroom:
+       cd LabRoom/; $(G++) $(ARGS) ./LabRoom.cpp $(BASE)/../iotjava/iotruntime/cpp/socket/Socket.cpp -o ../$(BIN_DIR)/iotcode/LabRoom/LabRoom.so --std=c++11 -pthread -pg -I$(BASE)/../iotjava/iotruntime/cpp/ -I$(BASE)/../iotjava/iotruntime/cpp/socket/ -I$(BASE)/../iotjava/iotruntime/cpp/setrelation/ -I$(BASE)/../iotjava/iotrmi/C++/ -I$(BASE)/../benchmarks/virtuals/
+       cp LabRoom/LabRoom.config $(BIN_DIR)/iotcode/LabRoom
+
+# LabRoom skeleton .so file will be generated for ARM (Raspberry Pi)
+PHONY += so-labroomskel
+so-labroomskel:
+       cd LabRoom/; $(G++) $(ARGS) ./Room_Skeleton.cpp $(BASE)/../iotjava/iotruntime/cpp/socket/Socket.cpp -o ../$(BIN_DIR)/iotcode/LabRoom/Room_Skeleton.so --std=c++11 -pthread -pg -I$(BASE)/../iotjava/iotruntime/cpp/ -I$(BASE)/../iotjava/iotruntime/cpp/socket/ -I$(BASE)/../iotjava/iotruntime/cpp/setrelation/ -I$(BASE)/../iotjava/iotrmi/C++/ -I$(BASE)/../benchmarks/virtuals/
+       cp LabRoom/LabRoom.config $(BIN_DIR)/iotcode/LabRoom
+
+# LabRoom .so file will be generated for ARM (Raspberry Pi) using a cross-compiler
 PHONY += so-labroom-arm
 so-labroom-arm:
        cd LabRoom/; $(ARM_G++) $(ARGS) ./LabRoom.cpp $(BASE)/../iotjava/iotruntime/cpp/socket/Socket.cpp -o ../$(BIN_DIR)/iotcode/LabRoom/LabRoom.so --std=c++11 -pthread -pg -I$(BASE)/../iotjava/iotruntime/cpp/ -I$(BASE)/../iotjava/iotruntime/cpp/socket/ -I$(BASE)/../iotjava/iotruntime/cpp/setrelation/ -I$(BASE)/../iotjava/iotrmi/C++/ -I$(BASE)/../benchmarks/virtuals/
index 25322a6f492019794a2efff8f9067d26ae655919..da91b55ddb5f412d795727371ab9ed91619cbbf5 100644 (file)
@@ -1,8 +1,9 @@
 # Skeleton/original interface
 INTERFACE_CLASS=LightBulb
 # Stub
-#INTERFACE_STUB_CLASS=LightBulbTest    # This one is needed for Lifxtest application
-INTERFACE_STUB_CLASS=LightBulbSmart    # This one is needed for SmartLightsController application
+# LightBulbTest is for Lifxtest and LightBulbSmart is for SmartLightsController
+INTERFACE_STUB_CLASS=LightBulbTest
+#INTERFACE_STUB_CLASS=LightBulbSmart
 
 # For C++ instrumentation
 FIELD_NUMBER=1
index 9cacf5b2044d64170df5b1bf5ed4cabc486791dd..e6d28f3c58a85322d69f8ec804339501ae083b96 100644 (file)
--- a/common.mk
+++ b/common.mk
@@ -1,4 +1,5 @@
-G++ := g++
+G++ := g++-4.9
+#G++ := g++
 ARM_G++ := arm-linux-gnueabihf-g++
 JAVA := java
 JAR := jar
index 1d73cca6bf0b2b3105cfdb8b5e3a1eab3a53ed95..80cecbba6f74d144a71e2471b422f8486edd3d27 100755 (executable)
@@ -16,6 +16,7 @@ java:
 PHONY += cpp
 cpp:
        $(G++) $(GCCFLAGS) -o IoTSlave.o IoTSlave.cpp $(INCLUDE) $(CCCLINKERFLAGS)
+       cp IoTSlave.o $(BASE)/bin/iotruntime/slave/
 
 PHONY += cpp-arm
 cpp-arm: