aboutsummaryrefslogtreecommitdiff
path: root/tools/depends/README.md
diff options
context:
space:
mode:
authorh.udo <hudokkow@gmail.com>2018-04-05 22:04:31 +0100
committerh.udo <hudokkow@gmail.com>2018-07-03 19:50:44 +0100
commita7a2afda9a9a6036fefc915c4e4f6f3d8d9116d6 (patch)
tree4c91a141761004968afa2315c1cf7f780eccf711 /tools/depends/README.md
parent0df877c46e75f3287154566cf3de069a5def4a59 (diff)
[files] Rename to markdown format
Diffstat (limited to 'tools/depends/README.md')
-rw-r--r--tools/depends/README.md69
1 files changed, 69 insertions, 0 deletions
diff --git a/tools/depends/README.md b/tools/depends/README.md
new file mode 100644
index 0000000000..4c48585b30
--- /dev/null
+++ b/tools/depends/README.md
@@ -0,0 +1,69 @@
+Examples:
+
+#- Darwin
+#----------------------------------------------------------------------------
+
+OSX (i386):
+ ./configure --host=i386-apple-darwin
+
+OSX (x86_64):
+ ./configure --host=x86_64-apple-darwin
+
+IOS (armv7):
+ ./configure --host=arm-apple-darwin
+
+IOS (arm64):
+ ./configure --host=arm-apple-darwin --with-cpu=arm64
+
+TVOS:
+ ./configure --host=arm-apple-darwin --with-platform=tvos
+
+ You can target the same --prefix path, each setup will be done in an isolated directory. The
+ last configure/make you do is the one used for Kodi/Xcode.
+
+#- Android (the paths are examples and have to match those of docs/READM.android)
+#----------------------------------------------------------------------------
+
+ arm:
+ ./configure --with-tarballs=/opt/xbmc-tarballs --host=arm-linux-androideabi --with-sdk-path=/opt/android-sdk-linux --with-ndk-path=/opt/android-ndk-r16 --with-toolchain=/opt/arm-linux-androideabi-4.9-vanilla/android-21 --prefix=/opt/xbmc-depends
+
+ x86:
+ ./configure --with-tarballs=/opt/xbmc-tarballs --host=i686-linux-android --with-sdk-path=/opt/android-sdk-linux --with-ndk-path=/opt/android-ndk-r16 --with-toolchain=/opt/x86-linux-4.9-vanilla/android-21 --prefix=/opt/xbmc-depends
+
+#- Linux
+#----------------------------------------------------------------------------
+
+ ARM toolchain (codesourcery/lenaro/etc)
+ ./configure --with-toolchain=/opt/toolchains/my-example-toolchain/ --prefix=/opt/xbmc-deps --host=arm-linux-gnueabi
+
+ RASPBERRY-PI:
+ ./configure --with-platform=raspberry-pi --host=arm-linux-gnueabihf --prefix=/opt/xbmc-deps --with-tarballs=/opt/xbmc-tarballs --with-toolchain=/opt/rbp-dev/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf --with-firmware=/opt/rbp-dev/firmware --build=i686-linux
+
+ Native toolchain
+ ./configure --with-toolchain=/usr --prefix=/opt/xbmc-deps --host=x86_64-linux-gnu
+
+#----------------------------------------------------------------------------
+#----------------------------------------------------------------------------
+Details:
+ We build a native tools for platforms that do not have the native tools we need. OSX is
+ the largest builder of native tools as there is not much present. No cmake, no autotools, etc.
+
+ Cross compiling is a real pain is the rear :) Generally there are three forms,
+ autotools (configure/make), cmake driven, and hand crafted makefile. In term
+ of usage, 90 percent are autotools, followed by cmake and hand crafted makefiles.
+ Some libs need patching, most do not. Lib versions are picked for a reason, be prepared
+ for robust testing if you go bumping libs. Never commit bumps unless you have also done
+ a complete distclean nuke of EVERYTHING and rebuild from scratch on ALL platforms.
+ Epic fail if this is not tested.
+
+ 1) autotool driven tend to be simple PROVIDED the authors followed proper autotool format.
+ Try with $(CONFIGURE) 1st, if problem, try adding $(AUTORECONF) -vif before the
+ $(CONFIGURE). Some are do silly things and only a config.site can correct the errors.
+ So watch for this in the config.site.in. config.site rules and this is the only way
+ to handle bad autotool behavior.
+
+ 2) cmake driven tend to be simple, setup cmake flags right and go. On rare cases, you might
+ need to diddle the native cmake setup.
+
+ 3) hand crafted Makefiles typically require manual sed tweaks or patching.
+