Makefile: auto-detect host ARMv6, ARMv7, NEON
[xcsoar.git] / README
blobe255f77d1f1ad496a4bda0658a61358dff3bae26
1 XCSoar README
2 =============
4 XCSoar is a tactical glide computer for Android, Linux, Mac OS X,
5 Windows and Windows CE/Mobile.
7 This file is aimed at developers.  Users should read the manual which
8 can be found on the XCSoar home page (http://www.xcsoar.org/).
11 Getting the source
12 ------------------
14 The XCSoar source code is managed with git (http://git-scm.com/).  It
15 can be downloaded with the following command:
17  git clone git://git.xcsoar.org/xcsoar/master/xcsoar.git
19 To update your repository, type:
21  git pull
23 For more information, please refer to the git documentation.
26 Compiling from source
27 ---------------------
29 To compile from source, you need:
31 - GNU make
32 - GNU compiler collection (gcc), version 4.6.2 or later
33   or clang/LLVM 3.1 (with "make CLANG=y")
34 - GNU gettext
35 - rsvg (http://librsvg.sourceforge.net/)
36 - ImageMagick 6.4 (http://www.imagemagick.org/)
37 - xsltproc (http://xmlsoft.org/XSLT/xsltproc2.html)
38 - Perl and XML::Parser
40 To cross-compile to (desktop) Windows, you need the mingw-w64 version of gcc:
42  http://mingw-w64.sourceforge.net/
44 For Pocket PC / Windows CE / Windows Mobile, you need mingw32ce:
46  http://max.kellermann.name/download/xcsoar/devel/cegcc/
48 For Linux/Unix, you need:
50 - Boost (http://www.boost.org/)
51 - zlib (http://www.zlib.net/)
52 - CURL (http://curl.haxx.se/)
53 - SDL (http://www.libsdl.org/)
54 - SDL_ttf (http://www.libsdl.org/projects/SDL_ttf/)
55 - SDL_image (http://www.libsdl.org/projects/SDL_image/)
56 - OpenGL
57 - to run XCSoar, you need one of the following fonts (Debian package):
58   DejaVu (ttf-dejavu), Droid (ttf-droid), Freefont (ttf-freefont)
60 On Debian, you may install these using the following command:
62  apt-get install make g++ \
63    libboost-dev zlib1g-dev \
64    libsdl1.2-dev libsdl-ttf2.0-dev libsdl-image1.2-dev \
65    libcurl4-openssl-dev \
66    libxml-parser-perl \
67    librsvg2-bin xsltproc \
68    imagemagick gettext \
69    ttf-dejavu
71 For Android, you need:
73 - Android SDK level 16 (http://developer.android.com/sdk/)
74 - Android NDK r8e (http://developer.android.com/sdk/ndk/)
75 - Ogg Vorbis (http://www.vorbis.com/)
76 - Apache Ant (http://ant.apache.org/)
78 For Mac OS X, you need:
79 - GCC 4.6.2 or newer (http://hpc.sourceforge.net/, or homebrew, or Macports)
80 - Boost (http://www.boost.org/)
81 - zlib (http://www.zlib.net/)
82 - CURL (http://curl.haxx.se/)
83 - SDL (http://www.libsdl.org/)
84 - SDL_ttf (http://www.libsdl.org/projects/SDL_ttf/)
85 - SDL_image (http://www.libsdl.org/projects/SDL_image/)
86 - libicns (http://icns.sourceforge.net/)
88 To compile, run:
90  make TARGET=<target>
92 To compile on a Unix-like system (Linux, Mac), you may run the
93 unofficial configure script to detect the build toolchain (optional
94 and unsupported, not recommended):
96  ./build/contrib/configure
97  make
99 Supported targets:
101  PC: desktop Windows (32 bit)
103  WIN64: desktop Windows (64 bit)
105  PPC2000, PPC2003: Pocket PC (for PPC2002 devices, use PPC2000 target)
107  WM5: Windows Mobile 5.0 and later
109  WM5X, PPC2003X: same as above with code optimised for XScale CPUs
111  ALTAIR: Triadis Altair
113  UNIX: Linux and other UNIX-like operating systems, including Mac OS X
115  UNIX32, UNIX64: like UNIX, but explicitly choose 32 or 64 bit build
117  OPT: alias for UNIX with optimisation and no debugging
119  PI: cross-compiling for the Raspberry Pi
121  KOBO: cross-compiling for Kobo Mini and others (experimental)
123  ANDROID: Android with ARMv6 CPU
125  ANDROID7: Android with ARMv7 CPU
127  ANDROID7NEON: Android with ARMv7 CPU and NEON extension
129  ANDROID86: Android with x86 CPU
131  ANDROIDMIPS: Android with MIPS CPU
133  ANDROIDFAT: "fat" Android package for all supported CPUs
135  CYGWIN: desktop Windows with Cygwin (experimental)
137  WINE: WineLib (experimental)
140 Submitting patches
141 ------------------
143 Subscribe to the XCSoar developer mailing list:
145  https://lists.sourceforge.net/lists/listinfo/xcsoar-devel
146  xcsoar-devel@lists.sourceforge.net
148 Use this mailing list to submit patches or "git pull" requests.
150 - patches should be self-contained
151 - patches should be self-documenting (add a good description on what
152   is changed, and why you are changing it)
153 - write one patch for one change