aboutsummaryrefslogtreecommitdiff
path: root/tools/depends/README
blob: 398188bbeedcd1e63ab2a9441f37d9569755468e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Temporary readme:

Examples:

OSX:
  x64:
    ./configure --host=x86_64-apple-darwin # (defaults chosen)
  x86:
    ./configure --host=i386-apple-darwin

IOS:
  ./configure --host=arm-apple-darwin # (defaults chosen)
  ./configure --host=arm-apple-darwin --with-sdk=4.3 --prefix=home/foo/xbmc-deps

Android (the pathes 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=/opt/android-ndk-r10d --with-toolchain=/opt/arm-linux-androideabi-4.8-vanilla/android-17 --prefix=/opt/xbmc-depends
  x86:
    ./configure --with-tarballs=/opt/xbmc-tarballs --host=i686-linux-android --with-sdk-path=/opt/android-sdk-linux --with-ndk=/opt/android-ndk-r10d --with-toolchain=/opt/x86-linux-4.8-vanilla/android-17 --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:
    PATH="/opt/rbp-dev/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin:$PATH" ./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-bcm2708hardfp-linux-gnueabi/arm-bcm2708hardfp-linux-gnueabi/sysroot --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 tweeks or patching.