Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / native_client_sdk / src / doc / sdk / download.rst
1 .. _download:
2
3 Download the Native Client SDK
4 ==============================
5
6 This page provides an overview of the Native Client SDK, and instructions for
7 downloading and installing the SDK.
8
9 .. raw:: html
10   
11   <div id="home">
12   <a class="button-nacl button-download" href="http://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip">Download SDK Zip File</a>
13   </div>
14
15 .. _sdk-overview:
16
17 Overview
18 --------
19
20 The Native Client SDK includes:
21
22 - **Support for multiple Pepper versions** to compile for specific minimum
23   versions of Chrome.
24 - **Update utility** to download new bundles and updates to existing bundles.
25 - **Toolchains** to compile for Portable Native Client (PNaCl), traditional
26   Native Client (NaCl), and for compiling architecture-specific Native Client
27   applications with glibc.
28 - **Examples** Including C or C++ source files and header files illustrating
29   how to use NaCl and Pepper, and Makefiles to build the example with each of
30   the toolchains.
31 - **Tools** for validating Native Client modules and running modules from the
32   command line.
33
34 Follow the steps below to download and install the Native Client SDK.
35
36 .. _prerequisites:
37
38 Prerequisites
39 -------------
40
41 .. _python26-27:
42
43 Python 2.7
44 ^^^^^^^^^^^^^^^^^
45
46 Make sure that the Python executable is in your ``PATH`` variable. Python 3.x is
47 not yet supported.
48   
49 * On Mac and Linux, Python is likely preinstalled. Run the command ``python -V``
50   in a terminal window, and make sure that the version you have is 2.6.x or
51   2.7.x.
52 * On Windows, you may need to install Python. Go to `http://www.python.org/
53   download/ <http://www.python.org/download/>`_ and select the latest 2.x
54   version. In addition, be sure to add the Python directory (for example,
55   ``C:\python27``) to the ``PATH`` `environment variable <http://en.wikipedia.
56   org/wiki/Environment_variable>`_. Run ``python -V`` from a command line to
57   verify that you properly configured the PATH variable.
58
59 .. _make:
60
61 Make
62 ^^^^
63
64 * On the Mac, you need to install ``make`` on your system before you can build
65   and run the examples in the SDK. One easy way to get ``make``, along with
66   several other useful tools, is to install `Xcode Developer Tools 
67   <https://developer.apple.com/technologies/tools/>`_. After installing Xcode,
68   go to the XCode menu, open the Preferences dialog box then select Downloads
69   and Components. Verify that Command Line Tools are installed. If you'd rather
70   not install Xcode, you can download and build an `open source version 
71   <http://mac.softpedia.com/dyn-postdownload.php?p=44632&t=4&i=1>`_ of ``make``.
72   To build the program you may also need to download and install `gcc 
73   <https://github.com/kennethreitz/osx-gcc-installer>`_.
74 * On Windows, the Native Client SDK includes a copy of GNU Make.
75
76 .. _versioning:
77
78 Versioning
79 ----------
80
81 Chrome is released on a six week cycle, and developer versions of Chrome are
82 pushed to the public beta channel three weeks before each release. As with any
83 software, each release of Chrome may include changes to Native Client and the
84 Pepper interfaces that may require modification to existing applications.
85 However, modules compiled for one version of Pepper/Chrome should work with
86 subsequent versions of Pepper/Chrome. The SDK includes multiple versions of the
87 Pepper APIs to help developers make adjustments to API changes and take
88 advantage of new features: `stable </native-client/pepper_stable>`_, `beta
89 </native-client/pepper_beta>`_ and `dev </native-client/pepper_dev>`_.
90
91 .. _installing-the-sdk:
92
93 Installing the SDK
94 ------------------
95
96 .. _downloading-and-unzipping:
97
98 Downloading and Unzipping
99 ^^^^^^^^^^^^^^^^^^^^^^^^^
100
101 #. Download the `SDK update zip file
102    <http://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip>`_.
103
104 #. Unzip the file:
105
106    * On Mac/Linux, run the command ``unzip nacl_sdk.zip`` in a terminal
107      window.
108    * On Windows, right-click on the .zip file and select "Extract All...". A
109      dialog box opens; enter a location and click "Extract".
110
111    A directory is created called ``nacl_sdk`` with the following files and
112    directories:
113
114    * ``naclsdk`` (and ``naclsdk.bat`` for Windows) --- the update utility,
115      which is the command you run to download and update bundles.
116    * ``sdk_cache`` --- a directory with a manifest file that lists the bundles
117      you have already downloaded.
118    * ``sdk_tools`` --- the code run by the ``naclsdk`` command.
119
120 .. _installing-the-stable-bundle:
121
122 Installing the stable bundle
123 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
124
125 #. To see the SDK bundles that are available for download, go to the 
126    ``nacl_sdk`` directory and run ``naclsdk`` with the ``list`` command. The SDK
127    includes a separate bundle for each version of Chrome/Pepper.
128
129    On Mac/Linux::
130
131      $ cd nacl_sdk
132      $ ./naclsdk list
133
134    On Windows::
135
136      > cd nacl_sdk
137      > naclsdk list
138
139    You should see output similar to this::
140
141     Bundles:
142      I: installed
143      *: update available
144
145       I  sdk_tools (stable)
146          vs_addin (dev)
147          pepper_31 (post_stable)
148          pepper_32 (post_stable)
149          pepper_33 (post_stable)
150          pepper_34 (post_stable)
151          pepper_35 (stable)
152          pepper_36 (beta)
153          pepper_37 (dev)
154          pepper_canary (canary)
155          bionic_canary (canary)
156
157
158    The sample output above shows that several bundles are available for
159    download, and that you have already installed the latest revision of the
160    ``sdk_tools`` bundle, which was included in the zip file. You never need to
161    update the ``sdk_tools`` bundle. It is updated automatically (if necessary)
162    whenever you run ``naclsdk``.
163    
164    Bundles are labeled post-stable, stable, beta, dev, or canary. These labels
165    usually correspond to the current versions of Chrome. We recommend that you
166    develop against a "stable" bundle, because such bundles can be used by all
167    current Chrome users. Native Client is designed to be backward-compatible.For
168    example, applications developed with the ``pepper_31`` bundle can run in
169    Chrome 31, Chrome 32, etc..
170
171 #. Run ``naclsdk`` with the ``update`` command to download recommended bundles,
172    including the current "stable" bundle.
173
174    On Mac/Linux::
175
176      $ ./naclsdk update
177
178    On Windows::
179
180      > naclsdk update
181
182    By default, ``naclsdk`` only downloads bundles that are recommended, 
183    generally those that are "stable." For example, if the current "stable"
184    bundle is ``pepper_35``, then the ``update`` downloads that bundle. To
185    download the ``pepper_36`` bundle you must ask for it explicitly::
186
187      $ ./naclsdk update pepper_36
188   
189    
190
191 .. _updating-bundles:
192
193 Updating bundles
194 ----------------
195
196 #. Run ``naclsdk`` with the ``list`` command. This shows you the list of available
197    bundles and verifies which bundles you have installed.
198
199    On Mac/Linux::
200
201      $ ./naclsdk list
202
203    On Windows::
204
205      > naclsdk list
206      
207    An asterisk (*) next to a bundle indicates that there is an update available
208    it. For example::
209
210     Bundles:
211      I: installed
212      *: update available
213
214       I  sdk_tools (stable)
215          vs_addin (dev)
216          pepper_31 (post_stable)
217          pepper_32 (post_stable)
218          pepper_33 (post_stable)
219          pepper_34 (post_stable)
220       I* pepper_35 (stable)
221          pepper_36 (beta)
222          pepper_37 (dev)
223          pepper_canary (canary)
224          bionic_canary (canary)
225
226    
227    If you run ``naclsdk update`` now, it warns you with a message similar to
228    this::
229
230      WARNING: pepper_35 already exists, but has an update available. Run update
231      with the --force option to overwrite the existing directory. Warning: This
232      will overwrite any modifications you have made within this directory.
233
234 #. To download and install the new bundle, run:
235
236    On Mac/Linux::
237
238      $ ./naclsdk update --force
239
240    On Windows::
241
242      > naclsdk update --force
243
244 .. _help-with-the-naclsdk-utility:
245      
246 Help with the ``naclsdk`` utility
247 ---------------------------------
248
249 #. For more information about the ``naclsdk`` utility, run:
250
251    On Mac/Linux::
252
253      $ ./naclsdk help
254
255    On Windows::
256
257      > naclsdk help
258
259 .. _next-steps:
260
261 Next steps
262 ----------
263
264 * Browse the `Release Notes <release-notes>`_ for important
265   information about the SDK and new bundles.
266 * If you're just starting with Native Client, we recommend reading the 
267   `Technical Overview <../overview>`_ and walking through the
268   `Getting Started Tutorial <devguide/tutorial/tutorial-part1>`_.
269 * If you'd rather dive in, see
270   `Building Native Client Modules <devguide/devcycle/building>`_.