diff options
author | h.udo <hudokkow@gmail.com> | 2018-04-05 22:04:31 +0100 |
---|---|---|
committer | h.udo <hudokkow@gmail.com> | 2018-07-03 19:50:44 +0100 |
commit | a7a2afda9a9a6036fefc915c4e4f6f3d8d9116d6 (patch) | |
tree | 4c91a141761004968afa2315c1cf7f780eccf711 /tools/depends/README.md | |
parent | 0df877c46e75f3287154566cf3de069a5def4a59 (diff) |
[files] Rename to markdown format
Diffstat (limited to 'tools/depends/README.md')
-rw-r--r-- | tools/depends/README.md | 69 |
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. + |