Logger/GRecord: don't use "unsigned" char strings internally
[xcsoar.git] / README
blob4057466450a0fc08aa3ee76eaef4f5648c41f19b
1 XCSoar README
2 =============
4 XCSoar is a tactical glide computer for the Pocket PC operating
5 system.
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    ttf-dejavu
70 For Android, you need:
72 - Android SDK level 16 (http://developer.android.com/sdk/)
73 - Android NDK r8d (http://developer.android.com/sdk/ndk/)
74 - Ogg Vorbis (http://www.vorbis.com/)
75 - Apache Ant (http://ant.apache.org/)
77 For Mac OS X, you need:
78 - GCC 4.6.2 or newer (http://hpc.sourceforge.net/, or homebrew, or Macports)
79 - Boost (http://www.boost.org/)
80 - zlib (http://www.zlib.net/)
81 - CURL (http://curl.haxx.se/)
82 - SDL (http://www.libsdl.org/)
83 - SDL_ttf (http://www.libsdl.org/projects/SDL_ttf/)
84 - SDL_image (http://www.libsdl.org/projects/SDL_image/)
85 - libicns (http://icns.sourceforge.net/)
87 To compile, run:
89  make TARGET=<target>
91 To compile on a Unix-like system (Linux, Mac), you may run the
92 unofficial configure script to detect the build toolchain (optional
93 and unsupported, not recommended):
95  ./build/contrib/configure
96  make
98 Supported targets:
100  PC: desktop Windows (32 bit)
102  WIN64: desktop Windows (64 bit)
104  PPC2000, PPC2003: Pocket PC (for PPC2002 devices, use PPC2000 target)
106  WM5: Windows Mobile 5.0 and later
108  WM5X, PPC2003X: same as above with code optimised for XScale CPUs
110  ALTAIR: Triadis Altair
112  UNIX: Linux and other UNIX-like operating systems, including Mac OS X
114  UNIX32, UNIX64: like UNIX, but explicitly choose 32 or 64 bit build
116  PI: cross-compiling for the Raspberry Pi
118  ANDROID: Android with ARMv6 CPU
120  ANDROID7: Android with ARMv7 CPU
122  ANDROID7NEON: Android with ARMv7 CPU and NEON extension
124  ANDROID86: Android with x86 CPU
126  ANDROIDMIPS: Android with MIPS CPU
128  ANDROIDFAT: "fat" Android package for all supported CPUs
130  CYGWIN: desktop Windows with Cygwin (experimental)
132  WINE: WineLib (experimental)
135 Submitting patches
136 ------------------
138 Subscribe to the XCSoar developer mailing list:
140  https://lists.sourceforge.net/lists/listinfo/xcsoar-devel
141  xcsoar-devel@lists.sourceforge.net
143 Use this mailing list to submit patches or "git pull" requests.
145 - patches should be self-contained
146 - patches should be self-documenting (add a good description on what
147   is changed, and why you are changing it)
148 - write one patch for one change