3 Download the Native Client SDK
4 ==============================
6 This page provides an overview of the Native Client SDK, and instructions for
7 downloading and installing the SDK.
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>
20 The Native Client SDK includes:
22 - **Support for multiple Pepper versions** to compile for specific minimum
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
31 - **Tools** for validating Native Client modules and running modules from the
34 Follow the steps below to download and install the Native Client SDK.
46 Make sure that the Python executable is in your ``PATH`` variable. Python 3.x is
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
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.
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.
81 Native Client supports several operating systems, including Windows, Linux, OSX,
82 and ChromeOS. It supports several architectures including on x86-32, x86-64,
90 Chrome is released on a six week cycle, and developer versions of Chrome are
91 pushed to the public beta channel three weeks before each release. As with any
92 software, each release of Chrome may include changes to Native Client and the
93 Pepper interfaces that may require modification to existing applications.
94 However, modules compiled for one version of Pepper/Chrome should work with
95 subsequent versions of Pepper/Chrome. The SDK includes multiple versions of the
96 Pepper APIs to help developers make adjustments to API changes and take
97 advantage of new features: `stable </native-client/pepper_stable>`_, `beta
98 </native-client/pepper_beta>`_ and `dev </native-client/pepper_dev>`_.
100 .. _installing-the-sdk:
105 .. _downloading-and-unzipping:
107 Downloading and Unzipping
108 ^^^^^^^^^^^^^^^^^^^^^^^^^
110 #. Download the `SDK update zip file
111 <http://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip>`_.
115 * On Mac/Linux, run the command ``unzip nacl_sdk.zip`` in a terminal
117 * On Windows, right-click on the .zip file and select "Extract All...". A
118 dialog box opens; enter a location and click "Extract".
120 A directory is created called ``nacl_sdk`` with the following files and
123 * ``naclsdk`` (and ``naclsdk.bat`` for Windows) --- the update utility,
124 which is the command you run to download and update bundles.
125 * ``sdk_cache`` --- a directory with a manifest file that lists the bundles
126 you have already downloaded.
127 * ``sdk_tools`` --- the code run by the ``naclsdk`` command.
129 .. _installing-the-stable-bundle:
131 Installing the stable bundle
132 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
134 #. To see the SDK bundles that are available for download, go to the
135 ``nacl_sdk`` directory and run ``naclsdk`` with the ``list`` command. The SDK
136 includes a separate bundle for each version of Chrome/Pepper.
148 You should see output similar to this::
156 pepper_31 (post_stable)
157 pepper_32 (post_stable)
158 pepper_33 (post_stable)
159 pepper_34 (post_stable)
163 pepper_canary (canary)
164 bionic_canary (canary)
167 The sample output above shows that several bundles are available for
168 download, and that you have already installed the latest revision of the
169 ``sdk_tools`` bundle, which was included in the zip file. You never need to
170 update the ``sdk_tools`` bundle. It is updated automatically (if necessary)
171 whenever you run ``naclsdk``.
173 Bundles are labeled post-stable, stable, beta, dev, or canary. These labels
174 usually correspond to the current versions of Chrome. We recommend that you
175 develop against a "stable" bundle, because such bundles can be used by all
176 current Chrome users. Native Client is designed to be backward-compatible.For
177 example, applications developed with the ``pepper_37`` bundle can run in
178 Chrome 37, Chrome 38, etc..
180 #. Run ``naclsdk`` with the ``update`` command to download recommended bundles,
181 including the current "stable" bundle.
191 By default, ``naclsdk`` only downloads bundles that are recommended,
192 generally those that are "stable." For example, if the current "stable"
193 bundle is ``pepper_35``, then the ``update`` downloads that bundle. To
194 download the ``pepper_36`` bundle you must ask for it explicitly::
196 $ ./naclsdk update pepper_36
200 .. _updating-bundles:
205 #. Run ``naclsdk`` with the ``list`` command. This shows you the list of available
206 bundles and verifies which bundles you have installed.
216 An asterisk (*) next to a bundle indicates that there is an update available
225 pepper_31 (post_stable)
226 pepper_32 (post_stable)
227 pepper_33 (post_stable)
228 pepper_34 (post_stable)
229 I* pepper_35 (stable)
232 pepper_canary (canary)
233 bionic_canary (canary)
236 If you run ``naclsdk update`` now, it warns you with a message similar to
239 WARNING: pepper_35 already exists, but has an update available. Run update
240 with the --force option to overwrite the existing directory. Warning: This
241 will overwrite any modifications you have made within this directory.
243 #. To download and install the new bundle, run:
247 $ ./naclsdk update --force
251 > naclsdk update --force
253 .. _help-with-the-naclsdk-utility:
255 Help with the ``naclsdk`` utility
256 ---------------------------------
258 #. For more information about the ``naclsdk`` utility, run:
273 * Browse the `Release Notes <release-notes>`_ for important
274 information about the SDK and new bundles.
275 * If you're just starting with Native Client, we recommend reading the
276 `Technical Overview <../overview>`_ and walking through the
277 `Getting Started Tutorial <devguide/tutorial/tutorial-part1>`_.
278 * If you'd rather dive in, see
279 `Building Native Client Modules <devguide/devcycle/building>`_.