From 3ba7930b739c5467db5046ccbd32987880541f1f Mon Sep 17 00:00:00 2001 From: Michael Brehm Date: Mon, 27 Mar 2017 13:59:57 -0400 Subject: [PATCH 1/2] Update submodule dependencies for ARM support --- depends/libcurl-nossl | 2 +- depends/libuuid | 2 +- depends/libz | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/depends/libcurl-nossl b/depends/libcurl-nossl index 92cf751a..7bc46171 160000 --- a/depends/libcurl-nossl +++ b/depends/libcurl-nossl @@ -1 +1 @@ -Subproject commit 92cf751ab46815f06720b508d4703f57ed909c1e +Subproject commit 7bc4617131f5c30ef3b3b95775074dadcce27c85 diff --git a/depends/libuuid b/depends/libuuid index 1a7be422..1aa991c5 160000 --- a/depends/libuuid +++ b/depends/libuuid @@ -1 +1 @@ -Subproject commit 1a7be4221a8ab9f5edecbdbcc38c0e9a8228061f +Subproject commit 1aa991c5a828ed7dd752a0b5bbf98d569efa2f07 diff --git a/depends/libz b/depends/libz index 6082ffe6..ec9fd93f 160000 --- a/depends/libz +++ b/depends/libz @@ -1 +1 @@ -Subproject commit 6082ffe63167b602b78adc987d14b38447769798 +Subproject commit ec9fd93f2ef4e9fcce09f92d3e8ccf0f6cdda129 From b5c04ea8167fa6e348a6929bb13c9527b490c403 Mon Sep 17 00:00:00 2001 From: Michael Brehm Date: Mon, 27 Mar 2017 14:23:14 -0400 Subject: [PATCH 2/2] Add linux-armel, linux-armhf and linux-aarch64 targets --- README.md | 7 ++- manifest/linux-aarch64.manifest | 9 +++ manifest/linux-armel.manifest | 9 +++ manifest/linux-armhf.manifest | 9 +++ msbuild.proj | 99 +++++++++++++++++++++++++++++++-- pvr.hdhomerundvr.sln | 3 + src/addoncallbacks.cpp | 6 +- src/pvrcallbacks.cpp | 6 +- 8 files changed, 139 insertions(+), 9 deletions(-) create mode 100644 manifest/linux-aarch64.manifest create mode 100644 manifest/linux-armel.manifest create mode 100644 manifest/linux-armhf.manifest diff --git a/README.md b/README.md index c9cc8720..3595ef3b 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,10 @@ Copyright (C)2017 Michael G. Brehm **CONFIGURE BASH ON UBUNTU ON WINDOWS** Open "Bash on Ubuntu on Windows" ``` +sudo dpkg --add-architecture i386 sudo apt-get update -sudo apt-get install gcc g++ gcc-multilib g++-multilib gcc-4.9 g++-4.9 gcc-4.9-multilib g++-4.9-multilib +sudo apt-get install gcc-4.9 g++-4.9 libc6-dev:i386 libstdc++-4.9-dev:i386 lib32gcc-4.9-dev +sudo apt-get install gcc-4.9-arm-linux-gnueabihf g++-4.9-arm-linux-gnueabihf gcc-4.9-arm-linux-gnueabi g++-4.9-arm-linux-gnueabi gcc-4.9-aarch64-linux-gnu g++-4.9-aarch64-linux-gnu ``` **CONFIGURE ANDROID NDK** @@ -49,6 +51,9 @@ msbuild msbuild.proj > out\zuki.pvr.hdhomerundvr-windows-x64-krypton-x.x.x.x.zip (windows-x64) > out\zuki.pvr.hdhomerundvr-linux-i686-krypton-x.x.x.x.zip (linux-i686) > out\zuki.pvr.hdhomerundvr-linux-x86_64-krypton-x.x.x.x.zip (linux-x86_64) +> out\zuki.pvr.hdhomerundvr-linux-armel-krypton-x.x.x.x.zip (linux-armel) +> out\zuki.pvr.hdhomerundvr-linux-armhf-krypton-x.x.x.x.zip (linux-armhf) +> out\zuki.pvr.hdhomerundvr-linux-aarch64-krypton-x.x.x.x.zip (linux-aarch64) > out\zuki.pvr.hdhomerundvr-android-arm-krypton-x.x.x.x.zip (android-arm) > out\zuki.pvr.hdhomerundvr-android-aarch64-krypton-x.x.x.x.zip (android-aarch64) > out\zuki.pvr.hdhomerundvr-android-x86-krypton-x.x.x.x.zip (android-x86) diff --git a/manifest/linux-aarch64.manifest b/manifest/linux-aarch64.manifest new file mode 100644 index 00000000..12ddfaf0 --- /dev/null +++ b/manifest/linux-aarch64.manifest @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/manifest/linux-armel.manifest b/manifest/linux-armel.manifest new file mode 100644 index 00000000..00f2a19f --- /dev/null +++ b/manifest/linux-armel.manifest @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/manifest/linux-armhf.manifest b/manifest/linux-armhf.manifest new file mode 100644 index 00000000..433f9ea1 --- /dev/null +++ b/manifest/linux-armhf.manifest @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/msbuild.proj b/msbuild.proj index 41f487a4..8bb47396 100644 --- a/msbuild.proj +++ b/msbuild.proj @@ -43,8 +43,11 @@ %WINDIR%\Sysnative\bash.exe - -Wall -Wno-unknown-pragmas -Idepends/kodi-addon-dev-kit/kodi -Idepends/libcurl-nossl/linux-i686/include/curl -Idepends/libuuid/linux-i686/include -Idepends/libhdhomerun -Idepends/sqlite -Itmp/version - -Wall -Wno-unknown-pragmas -Idepends/kodi-addon-dev-kit/kodi -Idepends/libcurl-nossl/linux-x86_64/include/curl -Idepends/libuuid/linux-x86_64/include -Idepends/libhdhomerun -Idepends/sqlite -Itmp/version + -Wall -Wno-unknown-pragmas -I/usr/include/i386-linux-gnu -Idepends/kodi-addon-dev-kit/kodi -Idepends/libcurl-nossl/linux-i686/include/curl -Idepends/libuuid/linux-i686/include -Idepends/libhdhomerun -Idepends/sqlite -Itmp/version -L/usr/lib/gcc/i686-linux-gnu/4.9 + -Wall -Wno-unknown-pragmas -I/usr/include/x86_64-linux-gnu -Idepends/kodi-addon-dev-kit/kodi -Idepends/libcurl-nossl/linux-x86_64/include/curl -Idepends/libuuid/linux-x86_64/include -Idepends/libhdhomerun -Idepends/sqlite -Itmp/version -L/usr/lib/gcc/x86_64-linux-gnu/4.9 + -Wall -Wno-unknown-pragmas -Idepends/kodi-addon-dev-kit/kodi -Idepends/libcurl-nossl/linux-armel/include/curl -Idepends/libuuid/linux-armel/include -Idepends/libhdhomerun -Idepends/sqlite -Itmp/version + -Wall -Wno-unknown-pragmas -Idepends/kodi-addon-dev-kit/kodi -Idepends/libcurl-nossl/linux-armhf/include/curl -Idepends/libuuid/linux-armhf/include -Idepends/libhdhomerun -Idepends/sqlite -Itmp/version + -Wall -Wno-unknown-pragmas -Idepends/kodi-addon-dev-kit/kodi -Idepends/libcurl-nossl/linux-aarch64/include/curl -Idepends/libuuid/linux-aarch64/include -Idepends/libhdhomerun -Idepends/sqlite -Itmp/version -fPIC -fPIC -std=c++14 $([System.IO.File]::ReadAllText($(SolutionDir)tmp\version\version.txt)) @@ -81,8 +84,8 @@ - - + + @@ -107,8 +110,86 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -125,6 +206,9 @@ out\zuki.pvr.hdhomerundvr-windows-x64-$(KodiBaseline)-$(PackageVersion).zip out\zuki.pvr.hdhomerundvr-linux-i686-$(KodiBaseline)-$(PackageVersion).zip out\zuki.pvr.hdhomerundvr-linux-x86_64-$(KodiBaseline)-$(PackageVersion).zip + out\zuki.pvr.hdhomerundvr-linux-armel-$(KodiBaseline)-$(PackageVersion).zip + out\zuki.pvr.hdhomerundvr-linux-armhf-$(KodiBaseline)-$(PackageVersion).zip + out\zuki.pvr.hdhomerundvr-linux-aarch64-$(KodiBaseline)-$(PackageVersion).zip out\zuki.pvr.hdhomerundvr-android-arm-$(KodiBaseline)-$(PackageVersion).zip out\zuki.pvr.hdhomerundvr-android-aarch64-$(KodiBaseline)-$(PackageVersion).zip out\zuki.pvr.hdhomerundvr-android-x86-$(KodiBaseline)-$(PackageVersion).zip @@ -134,6 +218,9 @@ + + + diff --git a/pvr.hdhomerundvr.sln b/pvr.hdhomerundvr.sln index 847afafd..1732cf72 100644 --- a/pvr.hdhomerundvr.sln +++ b/pvr.hdhomerundvr.sln @@ -45,6 +45,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "manifest", "manifest", "{03 manifest\android-aarch64.manifest = manifest\android-aarch64.manifest manifest\android-arm.manifest = manifest\android-arm.manifest manifest\android-x86.manifest = manifest\android-x86.manifest + manifest\linux-aarch64.manifest = manifest\linux-aarch64.manifest + manifest\linux-armel.manifest = manifest\linux-armel.manifest + manifest\linux-armhf.manifest = manifest\linux-armhf.manifest manifest\linux-i686.manifest = manifest\linux-i686.manifest manifest\linux-x86_64.manifest = manifest\linux-x86_64.manifest manifest\windows-win32.manifest = manifest\windows-win32.manifest diff --git a/src/addoncallbacks.cpp b/src/addoncallbacks.cpp index 72989ef1..b64c347c 100644 --- a/src/addoncallbacks.cpp +++ b/src/addoncallbacks.cpp @@ -39,6 +39,10 @@ #define LIBXBMC_ADDON_MODULE "/library.xbmc.addon/libXBMC_addon-x86_64-linux.so" #elif defined(__i386__) && !defined(__ANDROID__) #define LIBXBMC_ADDON_MODULE "/library.xbmc.addon/libXBMC_addon-i486-linux.so" +#elif defined(__arm__) && !defined(__ANDROID__) +#define LIBXBMC_ADDON_MODULE "/library.xbmc.addon/libXBMC_addon-arm.so" +#elif defined(__aarch64__) && !defined(__ANDROID__) +#define LIBXBMC_ADDON_MODULE "/library.xbmc.addon/libXBMC_addon-aarch64.so" #elif defined(__ANDROID__) && defined(__arm__) #define LIBXBMC_ADDON_MODULE "/libXBMC_addon-arm.so" #elif defined(__ANDROID__) && (defined __aarch64__) @@ -46,7 +50,7 @@ #elif defined(__ANDROID__) && defined(__i386__) #define LIBXBMC_ADDON_MODULE "/libXBMC_addon-i486-linux.so" #else -#error addoncallbacks.cpp -- unknown architecture -- only win32, linux-i686, linux-x86_64, android-armeabi-v7a, android-arm64-v8a and android-x86 are supported +#error addoncallbacks.cpp -- unsupported architecture #endif // GetFunctionPointer (local) diff --git a/src/pvrcallbacks.cpp b/src/pvrcallbacks.cpp index 4ea49ccd..ae12ecf1 100644 --- a/src/pvrcallbacks.cpp +++ b/src/pvrcallbacks.cpp @@ -39,6 +39,10 @@ #define LIBXBMC_PVR_MODULE "/library.xbmc.pvr/libXBMC_pvr-x86_64-linux.so" #elif defined(__i386__) && !defined(__ANDROID__) #define LIBXBMC_PVR_MODULE "/library.xbmc.pvr/libXBMC_pvr-i486-linux.so" +#elif defined(__arm__) && !defined(__ANDROID__) +#define LIBXBMC_PVR_MODULE "/library.xbmc.pvr/libXBMC_pvr-arm.so" +#elif defined(__aarch64__) && !defined(__ANDROID__) +#define LIBXBMC_PVR_MODULE "/library.xbmc.pvr/libXBMC_pvr-aarch64.so" #elif defined(__ANDROID__) && defined(__arm__) #define LIBXBMC_PVR_MODULE "/libXBMC_pvr-arm.so" #elif defined(__ANDROID__) && (defined __aarch64__) @@ -46,7 +50,7 @@ #elif defined(__ANDROID__) && defined(__i386__) #define LIBXBMC_PVR_MODULE "/libXBMC_pvr-i486-linux.so" #else -#error pvrcallbacks.cpp -- unknown architecture -- only win32, linux-i686, linux-x86_64, android-armeabi-v7a, android-arm64-v8a and android-x86 are supported +#error pvrcallbacks.cpp -- unsupported architecture #endif // GetFunctionPointer (local)