Imported Upstream version 0.9.2
[platform/upstream/iotivity.git] / extlibs / arduino / SConscript
index 268c061..ede704f 100644 (file)
@@ -69,85 +69,112 @@ if target_os == 'arduino':
        timelib_dir         = arduinolib_dir + '/libraries/Time'
 
        if not os.path.exists(timelib_dir):
-               timelib_zip_file    = src_dir + '/extlibs/arduino/Time.zip'
-               timelib_url         = 'http://playground.arduino.cc/uploads/Code/Time.zip'
-               # Install Arduino Time library
-               # If the zip file is not already present, download it
-               os.mkdir(timelib_dir)
-               os.chdir(timelib_dir)
-               if not os.path.exists(timelib_zip_file):
-                       timelib_zip = env.Download(timelib_zip_file, timelib_url)
-               else:
-                       timelib_zip = timelib_zip_file
+               if WhereIs('dos2unix') is not None:
+                       timelib_zip_file    = src_dir + '/extlibs/arduino/Time.zip'
+                       timelib_url         = 'http://playground.arduino.cc/uploads/Code/Time.zip'
+                       # Install Arduino Time library
+                       # If the zip file is not already present, download it
+                       os.mkdir(timelib_dir)
+                       os.chdir(timelib_dir)
+                       if not os.path.exists(timelib_zip_file):
+                               timelib_zip = env.Download(timelib_zip_file, timelib_url)
+                       else:
+                               timelib_zip = timelib_zip_file
 
-               # Unzip the lib
-               print 'Unzipping Arduino Time lib...'
-               env.UnpackAll(timelib_dir + '/Time', timelib_zip)
+                       # Unzip the lib
+                       print 'Unzipping Arduino Time lib...'
+                       env.UnpackAll(timelib_dir + '/Time', timelib_zip)
 
-               # Apply patches to ARDUINO_HOME directory.
-               os.chdir(arduinolib_dir)
-               print 'Patching Arduino libraries...'
-               os.system("find ./libraries/Time/Time/DateStrings.cpp -type f -exec dos2unix {} \;")
-               os.system("patch -p1 < " + src_dir + "/resource/csdk/connectivity/lib/arduino/arduino_libraries.patch --directory=" + arduinolib_dir)
+                       # Apply patches to ARDUINO_HOME directory.
+                       os.chdir(arduinolib_dir)
+                       print 'Patching Arduino libraries...'
 
-               # Remove downloaded file
-               os.remove(timelib_zip_file)
+                       os.system("find ./libraries/Time/Time/DateStrings.cpp -type f -exec dos2unix {} \;")
+                       os.system("patch -p1 < " + src_dir + "/resource/csdk/connectivity/lib/arduino/arduino_libraries.patch --directory=" + arduinolib_dir)
+
+                       # Remove downloaded file
+                       os.remove(timelib_zip_file)
+               else:
+                       print 'Please manually install package dos2unix. The build process will end now. Your Action Required: Install package manually, then restart build process.'
+                       print 'You may likely retrieve this package as follows:'
+                       print '      sudo apt-get install dos2unix'
+                       print '               or'
+                       print '      sudo yum install dos2unix'
+                       exit(1)
 
        redbearlib_dir         = arduinolib_dir + '/libraries/RBL_nRF8001'
 
        if not os.path.exists(redbearlib_dir):
-               redbearlib_zip_file    = src_dir + '/extlibs/arduino/25643e7b1b7da3740406325a471e3faa4b948747.zip'
-               redbearlib_url         = 'https://github.com/RedBearLab/nRF8001/archive/25643e7b1b7da3740406325a471e3faa4b948747.zip'
-               if not os.path.exists(redbearlib_zip_file):
-                       redbearlib_zip = env.Download(redbearlib_zip_file, redbearlib_url)
-               else:
-                       redbearlib_zip = redbearlib_zip_file
+               if WhereIs('dos2unix') is not None:
+                       redbearlib_zip_file    = src_dir + '/extlibs/arduino/25643e7b1b7da3740406325a471e3faa4b948747.zip'
+                       redbearlib_url         = 'https://github.com/RedBearLab/nRF8001/archive/25643e7b1b7da3740406325a471e3faa4b948747.zip'
+                       if not os.path.exists(redbearlib_zip_file):
+                               redbearlib_zip = env.Download(redbearlib_zip_file, redbearlib_url)
+                       else:
+                               redbearlib_zip = redbearlib_zip_file
+
+                       # Unzip the lib
+                       print 'Unzipping Red Bear lib...'
+                       os.chdir(arduinolib_dir + '/libraries')
+                       env.UnpackAll(redbearlib_dir, redbearlib_zip)
 
-               # Unzip the lib
-               print 'Unzipping Red Bear lib...'
-               os.chdir(arduinolib_dir + '/libraries')
-               env.UnpackAll(redbearlib_dir, redbearlib_zip)
+                       # Because the way Red Bear lib is distributed... All Red Bear source files must be moved up a few directories.
+                       shutil.move('nRF8001-25643e7b1b7da3740406325a471e3faa4b948747/Arduino/libraries/RBL_nRF8001/', '.')
+                       shutil.rmtree('nRF8001-25643e7b1b7da3740406325a471e3faa4b948747')
 
-               # Because the way Red Bear lib is distributed... All Red Bear source files must be moved up a few directories.
-               shutil.move('nRF8001-25643e7b1b7da3740406325a471e3faa4b948747/Arduino/libraries/RBL_nRF8001/', '.')
-               shutil.rmtree('nRF8001-25643e7b1b7da3740406325a471e3faa4b948747')
+                       # Apply Red Bear patches
+                       print 'Patching Red Bear library...'
+                       os.chdir(arduinolib_dir + '/libraries/RBL_nRF8001/')
 
-               # Apply Red Bear patches
-               print 'Patching Red Bear library...'
-               os.chdir(arduinolib_dir + '/libraries/RBL_nRF8001/')
-               os.system("find . -type f -exec dos2unix {} \;")
-               os.system("patch -p1 < " + src_dir + "/resource/csdk/connectivity/lib/arduino/RBL_nRF8001.patch")
+                       os.system("find . -type f -exec dos2unix {} \;")
+                       os.system("patch -p1 < " + src_dir + "/resource/csdk/connectivity/lib/arduino/RBL_nRF8001.patch")
 
-               # Remove downloaded file
-               os.remove(redbearlib_zip_file)
+                       # Remove downloaded file
+                       os.remove(redbearlib_zip_file)
+               else:
+                       print 'Please manually install package dos2unix. The build process will end now. Your Action Required: Install package manually, then restart build process.'
+                       print 'You may likely retrieve this package as follows:'
+                       print '      sudo apt-get install dos2unix'
+                       print '               or'
+                       print '      sudo yum install dos2unix'
+                       exit(1)
 
        nordiclib_dir           = arduinolib_dir + '/libraries/BLE'
 
        if not os.path.exists(nordiclib_dir):
-               nordiclib_zip_file    = src_dir + '/extlibs/arduino/ble-sdk-arduino-0.9.5.beta.zip'
-                nordiclib_url         = 'https://github.com/NordicSemiconductor/ble-sdk-arduino/archive/0.9.5.beta.zip'
-               if not os.path.exists(nordiclib_zip_file):
-                       nordiclib_zip = env.Download(nordiclib_zip_file, nordiclib_url)
-               else:
-                       nordiclib_zip = nordiclib_zip_file
-
-               # Unzip the lib
-               print 'Unzipping Nordic lib...'
-               os.chdir(arduinolib_dir + '/libraries')
-               env.UnpackAll(nordiclib_dir, nordiclib_zip)
-
-               # Because the way Nordic lib is distributed... All Nordic source files must be moved up a few directories.
-               shutil.move('ble-sdk-arduino-0.9.5.beta/libraries/BLE/', '.')
-               shutil.rmtree('ble-sdk-arduino-0.9.5.beta')
-
-               # Apply Nordic lib patches
-               print 'Patching Nordic library...'
-               os.chdir(arduinolib_dir + '/libraries/BLE/')
-               os.system("find . -type f -exec dos2unix {} \;")
-               os.system("patch -p1 < " + src_dir + "/resource/csdk/connectivity/lib/arduino/arduino_due_ble.patch")
+               if WhereIs('dos2unix') is not None:
+                       nordiclib_zip_file    = src_dir + '/extlibs/arduino/ble-sdk-arduino-0.9.5.beta.zip'
+                       nordiclib_url         = 'https://github.com/NordicSemiconductor/ble-sdk-arduino/archive/0.9.5.beta.zip'
+                       if not os.path.exists(nordiclib_zip_file):
+                               nordiclib_zip = env.Download(nordiclib_zip_file, nordiclib_url)
+                       else:
+                               nordiclib_zip = nordiclib_zip_file
+
+                       # Unzip the lib
+                       print 'Unzipping Nordic lib...'
+                       os.chdir(arduinolib_dir + '/libraries')
+                       env.UnpackAll(nordiclib_dir, nordiclib_zip)
+
+                       # Because the way Nordic lib is distributed... All Nordic source files must be moved up a few directories.
+                       shutil.move('ble-sdk-arduino-0.9.5.beta/libraries/BLE/', '.')
+                       shutil.rmtree('ble-sdk-arduino-0.9.5.beta')
+
+                       # Apply Nordic lib patches
+                       print 'Patching Nordic library...'
+                       os.chdir(arduinolib_dir + '/libraries/BLE/')
+
+                       os.system("find . -type f -exec dos2unix {} \;")
+                       os.system("patch -p1 < " + src_dir + "/resource/csdk/connectivity/lib/arduino/arduino_due_ble.patch")
                
-               # Remove downloaded file
-               os.remove(nordiclib_zip_file)
+                       # Remove downloaded file
+                       os.remove(nordiclib_zip_file)
+               else:
+                       print 'Please manually install package dos2unix. The build process will end now. Your Action Required: Install package manually, then restart build process.'
+                       print 'You may likely retrieve this package as follows:'
+                       print '      sudo apt-get install dos2unix'
+                       print '               or'
+                       print '      sudo yum install dos2unix'
+                       exit(1)
 
 # Set the ARDUINO_HOME
 env.Replace(ARDUINO_HOME = arduinolib_dir)