]> git.cworth.org Git - apitrace/blob - INSTALL.markdown
Use ndk-android-r7 for FirefoxOS builds.
[apitrace] / INSTALL.markdown
1 Building from source
2 ====================
3
4
5 Requirements
6 ------------
7
8 Requirements common for all platforms:
9
10 * Python version 2.6 or 2.7
11
12   * Python Image Library
13
14 * CMake version 2.8 or higher (tested with version 2.8)
15
16
17 The GUI also dependends on:
18
19 * Qt version 4.7 or higher (tested with version 4.8)
20
21 * QJSON version 0.5 or higher (tested with version 0.7.1, which is bundled)
22
23 Qt and QJSON will be required if `-DENABLE_GUI=TRUE` is passed to CMake, and
24 never used if `-DENABLE_GUI=FALSE` is passed instead.  The implicit default is
25 `-DENABLE_GUI=AUTO`, which will build the GUI if Qt is available, using the
26 bundled QJSON if it is not found on the system.
27
28
29 The code also depends on zlib, libpng, and snappy libraries, but the bundled
30 sources are always used regardless of system availability, to make the wrapper
31 shared-objects/DLL self contained, and to prevent symbol collisions when
32 tracing.
33
34
35 Linux / Mac OS X
36 ----------------
37
38 Build as:
39
40     cmake -H. -Bbuild
41     make -C build
42
43
44 You can also build the 32-bits GL wrapper on a 64-bits distribution, provided
45 you have a multilib gcc and 32-bits X11 libraries, by doing:
46
47     cmake \
48         -DCMAKE_C_FLAGS=-m32 \
49         -DCMAKE_CXX_FLAGS=-m32 \
50         -DCMAKE_EXE_LINKER_FLAGS=-m32 \
51         -DCMAKE_SYSTEM_LIBRARY_PATH=/usr/lib32 \
52         -DENABLE_GUI=FALSE \
53         -H. -Bbuild32
54     make -C build32 glxtrace
55
56 The `/usr/lib32` refers to the path where the 32-bits shared objects are may
57 differ depending on the actual Linux distribution.
58
59
60 Android
61 -------
62
63 Additional requirements:
64
65 * [Android NDK](http://developer.android.com/sdk/ndk/index.html)
66
67 Build as:
68
69     export ANDROID_NDK=/path/to/your/ndk
70     cmake -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain/android.toolchain.cmake -DANDROID_API_LEVEL=9 -H. -Bbuild
71     make -C build
72
73 You can also choose a particular ABI by passing `ANDROID_ABI` variable to
74 cmake, e.g., `-DANDROID_ABI=x86`.
75
76 FirefoxOS
77 ---------
78
79 Put Apitrace source tree into `B2GROOT/external/apitrace/` and the `Android.mk`
80 file (`B2GROOT/external/apitrace/Android.mk`) will do the needful to compile
81 and install apitrace appropriately into the system image as part of FirefoxOS
82 build process. It expects a linaro-type of Android NDK to be present in
83 `../../prebuilt/ndk/android-ndk-r7` (ie `B2GROOT/prebuilt/ndk/android-ndk-r7`).
84
85
86 Windows
87 -------
88
89 Additional requirements:
90
91 * For Direct3D 11.1 support:
92
93   * [Microsoft Visual Studio 11 Ultimate Beta](http://www.microsoft.com/download/en/details.aspx?id=27543)
94
95 * Other:
96
97   * Microsoft Visual Studio (tested with 2010 version) or MinGW (tested with
98     mingw-w64's gcc version 4.6.2)
99
100   * [Microsoft DirectX SDK](http://msdn.microsoft.com/en-us/directx/aa937781):
101
102     * for D3D 10, 10.1, and 11 support the [June 2010 release](http://www.microsoft.com/en-us/download/details.aspx?id=6812) is
103       recommended.
104
105     * for D3D7, D3D8 support the [August 2007 release](http://www.microsoft.com/downloads/details.aspx?familyid=529F03BE-1339-48C4-BD5A-8506E5ACF571)
106       or earlier is required, as later releases do not include the necessary
107       headers.
108
109 To build with Visual Studio first invoke CMake GUI as:
110
111     cmake-gui -H%cd% -B%cd%\build
112
113 and press the _Configure_ button.
114
115 It will try to detect most required/optional dependencies automatically.  When
116 not found automatically, you can manually specify the location of the
117 dependencies from the CMake GUI.
118
119 After you've successfully configured, you can start the build by opening the
120 generated `build\apitrace.sln` solution file, or invoking CMake as:
121
122     cmake --build build --config MinSizeRel
123
124 The steps to build 64bit version are similar, but choosing _Visual Studio 10
125 Win64_ instead of _Visual Studio 10_.
126
127 It's also possible to instruct CMake build Windows binaries on Linux with
128 [MinGW cross compilers](http://www.cmake.org/Wiki/CmakeMingw).
129
130