Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / native_client_sdk / src / doc / sdk / download.rst
index 73fa43d..eac338c 100644 (file)
 Download the Native Client SDK
 ==============================
 
-To build Native Client modules, you must download and install the Native
-Client Software Development Kit (SDK). This page provides an overview
-of the Native Client SDK, and instructions for how to download and
-install the SDK.
+This page provides an overview of the Native Client SDK, and instructions for
+downloading and installing the SDK.
+
+.. raw:: html
+  
+  <div id="home">
+  <a class="button-nacl button-download" href="http://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip">Download SDK Zip File</a>
+  </div>
+
+.. _sdk-overview:
 
 Overview
 --------
 
-The Native Client SDK includes the following:
-
-support for multiple Pepper versions
-  The SDK contains **bundles** that let you compile Native Client modules
-  using different versions of the
-  :ref:`link_pepper` (e.g., Pepper 31 or Pepper Canary). Review the
-  :doc:`Release Notes <release-notes>` for a description of the new features
-  included in each Pepper version to help you decide which bundle to
-  use to develop your application. In general, Native Client modules
-  compiled using a particular Pepper version will work in
-  corresponding versions of Chrome and higher. For example, a module
-  compiled using the Pepper 31 bundle will work in Chrome 31 and
-  higher.
-
-update utility
-  The ``naclsdk`` utility (``naclsdk.bat`` on Windows) lets you download new
-  bundles that are available, as well as new versions of existing bundles.
-
-toolchains
-  Each platform includes three toolchains: one for compiling
-  Portable Native Client (PNaCl) applications, one for compiling
-  architecture-specific Native Client applications with newlib, and
-  one for compiling architecture-specific Native Client applications with glibc.
-  Newlib and glibc are two different implementations
-  of the C standard library. All three toolchains contain
-  Native Client-compatible versions of standard compilers, linkers,
-  and other tools. See :doc:`NaCl and PNaCl </nacl-and-pnacl>` to help
-  you choose the right toolchain.
-
-examples
-  Each example in the SDK includes C or C++ source files and header files
-  illustrating how to use NaCl and Pepper, along with a Makefile to build
-  the example using each of the toolchains.
-
-tools
-  The SDK includes a number of additional tools that you can use for
-  tasks such as validating Native Client modules and running modules
-  from the command line.
+The Native Client SDK includes:
+
+- **Support for multiple Pepper versions** to compile for specific minimum
+  versions of Chrome.
+- **Update utility** to download new bundles and updates to existing bundles.
+- **Toolchains** to compile for Portable Native Client (PNaCl), traditional
+  Native Client (NaCl), and for compiling architecture-specific Native Client
+  applications with glibc.
+- **Examples** Including C or C++ source files and header files illustrating
+  how to use NaCl and Pepper, and Makefiles to build the example with each of
+  the toolchains.
+- **Tools** for validating Native Client modules and running modules from the
+  command line.
 
 Follow the steps below to download and install the Native Client SDK.
 
+.. _prerequisites:
+
 Prerequisites
 -------------
 
-* **Python:** Make sure you have Python 2.6 or 2.7 installed, and that the
-  Python executable is in your path.
-
-  * On Mac/Linux, Python is likely preinstalled. Run the command ``"python
-    -V``" in a terminal window, and make sure that the version of Python you
-    have is 2.6.x or 2.7.x (if it's not, upgrade to one of those versions).
-  * On Windows, you may need to install Python. Go to
-    `http://www.python.org/download/ <http://www.python.org/download/>`_ and
-    select the latest 2.x version. In addition, be sure to add the Python
-    directory (for example, ``C:\python27``) to the PATH `environment
-    variable <http://en.wikipedia.org/wiki/Environment_variable>`_. After
-    you've installed Python, run the command ``"python -V``" in a Command
-    Prompt window and verify that the version of Python you have is 2.6.x or
-    2.7.x.
-  * Note that Python 3.x is not yet supported.
-
-* **Make:** On the Mac, you need to install the ``make`` command on your system
-  before you can build and run the examples in the SDK. One easy way to get
-  ``make``, along with several other useful tools, is to install
-  `Xcode Developer Tools <https://developer.apple.com/technologies/tools/>`_.
-  After installing Xcode, go to the Preferences menu, select
-  Downloads and Components, and verify that Command Line Tools are installed.
-  If you'd rather not install Xcode, you can download and build an
-  `open source version
-  <http://mac.softpedia.com/dyn-postdownload.php?p=44632&t=4&i=1>`_ of
-  ``make``. In order to build the command you may also need to download and
-  install a copy of `gcc <https://github.com/kennethreitz/osx-gcc-installer>`_.
-
-Download and install the SDK
-----------------------------
-
-#. Download the SDK update utility: `nacl_sdk.zip
+.. _python26-27:
+
+Python 2.7
+^^^^^^^^^^^^^^^^^
+
+Make sure that the Python executable is in your ``PATH`` variable. Python 3.x is
+not yet supported.
+  
+* On Mac and Linux, Python is likely preinstalled. Run the command ``python -V``
+  in a terminal window, and make sure that the version you have is 2.6.x or
+  2.7.x.
+* On Windows, you may need to install Python. Go to `http://www.python.org/
+  download/ <http://www.python.org/download/>`_ and select the latest 2.x
+  version. In addition, be sure to add the Python directory (for example,
+  ``C:\python27``) to the ``PATH`` `environment variable <http://en.wikipedia.
+  org/wiki/Environment_variable>`_. Run ``python -V`` from a command line to
+  verify that you properly configured the PATH variable.
+
+.. _make:
+
+Make
+^^^^
+
+* On the Mac, you need to install ``make`` on your system before you can build
+  and run the examples in the SDK. One easy way to get ``make``, along with
+  several other useful tools, is to install `Xcode Developer Tools 
+  <https://developer.apple.com/technologies/tools/>`_. After installing Xcode,
+  go to the XCode menu, open the Preferences dialog box then select Downloads
+  and Components. Verify that Command Line Tools are installed. If you'd rather
+  not install Xcode, you can download and build an `open source version 
+  <http://mac.softpedia.com/dyn-postdownload.php?p=44632&t=4&i=1>`_ of ``make``.
+  To build the program you may also need to download and install `gcc 
+  <https://github.com/kennethreitz/osx-gcc-installer>`_.
+* On Windows, the Native Client SDK includes a copy of GNU Make.
+
+.. _platforms:
+
+Platforms
+---------
+
+Native Client supports several operating systems, including Windows, Linux, OSX,
+and ChromeOS. It supports several architectures including on x86-32, x86-64,
+ARM, and MIPS.
+
+.. _versioning:
+
+Versions
+--------
+
+Chrome is released on a six week cycle, and developer versions of Chrome are
+pushed to the public beta channel three weeks before each release. As with any
+software, each release of Chrome may include changes to Native Client and the
+Pepper interfaces that may require modification to existing applications.
+However, modules compiled for one version of Pepper/Chrome should work with
+subsequent versions of Pepper/Chrome. The SDK includes multiple versions of the
+Pepper APIs to help developers make adjustments to API changes and take
+advantage of new features: `stable </native-client/pepper_stable>`_, `beta
+</native-client/pepper_beta>`_ and `dev </native-client/pepper_dev>`_.
+
+.. _installing-the-sdk:
+
+Installing the SDK
+------------------
+
+.. _downloading-and-unzipping:
+
+Downloading and Unzipping
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+#. Download the `SDK update zip file
    <http://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip>`_.
 
-#. Unzip the SDK update utility:
+#. Unzip the file:
 
-   * On Mac/Linux, run the command "``unzip nacl_sdk.zip``" in a terminal
+   * On Mac/Linux, run the command ``unzip nacl_sdk.zip`` in a terminal
      window.
    * On Windows, right-click on the .zip file and select "Extract All...". A
-     dialog box will open; enter a location and click "Extract".
+     dialog box opens; enter a location and click "Extract".
 
-   Unzipping the SDK update utility creates a directory called ``nacl_sdk`` with
-   the following files and directories:
+   A directory is created called ``nacl_sdk`` with the following files and
+   directories:
 
-   * ``naclsdk`` (and ``naclsdk.bat`` for Windows) --- the front end of the update
-     utility, i.e., the command you run to download the latest bundles
+   * ``naclsdk`` (and ``naclsdk.bat`` for Windows) --- the update utility,
+     which is the command you run to download and update bundles.
    * ``sdk_cache`` --- a directory with a manifest file that lists the bundles
-     you have already downloaded
-   * ``sdk_tools`` --- the back end of the update utility, also known as the
-     "sdk_tools" bundle
+     you have already downloaded.
+   * ``sdk_tools`` --- the code run by the ``naclsdk`` command.
+
+.. _installing-the-stable-bundle:
+
+Installing the stable bundle
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-#. To see the SDK bundles that are available for download, go to the ``nacl_sdk``
-   directory and run ``naclsdk`` with the ``"list"`` command.
-   The SDK includes a separate bundle for each version of Chrome/Pepper.
+#. To see the SDK bundles that are available for download, go to the 
+   ``nacl_sdk`` directory and run ``naclsdk`` with the ``list`` command. The SDK
+   includes a separate bundle for each version of Chrome/Pepper.
 
    On Mac/Linux::
 
@@ -128,28 +153,32 @@ Download and install the SDK
 
       I  sdk_tools (stable)
          vs_addin (dev)
-         pepper_27 (post_stable)
-         pepper_28 (post_stable)
-         pepper_29 (post_stable)
-         pepper_30 (post_stable)
-         pepper_31 (stable)
-         pepper_32 (beta)
+         pepper_31 (post_stable)
+         pepper_32 (post_stable)
+         pepper_33 (post_stable)
+         pepper_34 (post_stable)
+         pepper_35 (stable)
+         pepper_36 (beta)
+         pepper_37 (dev)
          pepper_canary (canary)
+         bionic_canary (canary)
+
+
+   The sample output above shows that several bundles are available for
+   download, and that you have already installed the latest revision of the
+   ``sdk_tools`` bundle, which was included in the zip file. You never need to
+   update the ``sdk_tools`` bundle. It is updated automatically (if necessary)
+   whenever you run ``naclsdk``.
+   
+   Bundles are labeled post-stable, stable, beta, dev, or canary. These labels
+   usually correspond to the current versions of Chrome. We recommend that you
+   develop against a "stable" bundle, because such bundles can be used by all
+   current Chrome users. Native Client is designed to be backward-compatible.For
+   example, applications developed with the ``pepper_37`` bundle can run in
+   Chrome 37, Chrome 38, etc..
 
-   The sample output above shows that there are a number of bundles available
-   for download, and that you have already installed the latest revision of the
-   ``sdk_tools`` bundle (it was included in the zip file you downloaded).
-   Each bundle is labeled post-stable, stable, beta, dev, or canary.
-   These labels usually correspond to the current versions of
-   Chrome. (In the example above, Chrome 31 is stable, Chrome 32 is beta, etc.).
-   We generally recommend that you download and use a "stable" bundle,
-   as applications developed with "stable" bundles can be used by all current
-   Chrome users. This is because Native Client is designed to be
-   backward-compatible (for example, applications developed with the
-   ``pepper_31`` bundle can run in Chrome 31, Chrome 32, etc.).
-   Thus in the example above, ``pepper_31`` is the recommended bundle to use.
-
-#. Run ``naclsdk`` with the "update" command to download recommended bundles.
+#. Run ``naclsdk`` with the ``update`` command to download recommended bundles,
+   including the current "stable" bundle.
 
    On Mac/Linux::
 
@@ -159,27 +188,22 @@ Download and install the SDK
 
      > naclsdk update
 
-   By default, ``naclsdk`` only downloads bundles that are
-   recommended---generally those that are "stable." Continuing with the earlier example, the
-   "update" command would only download the ``pepper_31``
-   bundle, since the bundles ``pepper_32`` and greater are not yet stable.
-   If you want the ``pepper_32`` bundle, you must ask for it explicitly::
+   By default, ``naclsdk`` only downloads bundles that are recommended, 
+   generally those that are "stable." For example, if the current "stable"
+   bundle is ``pepper_35``, then the ``update`` downloads that bundle. To
+   download the ``pepper_36`` bundle you must ask for it explicitly::
 
-     $ ./naclsdk update pepper_32
+     $ ./naclsdk update pepper_36
+  
+   
 
-   Note that you never need to update the ``sdk_tools`` bundle---it is
-   updated automatically (if necessary) whenever you run ``naclsdk``.
+.. _updating-bundles:
 
-.. Note::
-  :class: note
+Updating bundles
+----------------
 
-  The minimum SDK bundle that supports PNaCl is ``pepper_31``.
-
-Staying up-to-date and getting new versions of bundles
-------------------------------------------------------
-
-#. Run ``naclsdk`` with the "list" command again; this will show you the list of
-   available bundles and verify which bundles you have installed.
+#. Run ``naclsdk`` with the ``list`` command. This shows you the list of available
+   bundles and verifies which bundles you have installed.
 
    On Mac/Linux::
 
@@ -188,42 +212,9 @@ Staying up-to-date and getting new versions of bundles
    On Windows::
 
      > naclsdk list
-
-   Continuing with the earlier example, if you previously downloaded the
-   ``pepper_31`` bundle, you should see output similar to this::
-
-    Bundles:
-     I: installed
-     *: update available
-
-      I  sdk_tools (stable)
-         vs_addin (dev)
-         pepper_27 (post_stable)
-         pepper_28 (post_stable)
-         pepper_29 (post_stable)
-         pepper_30 (post_stable)
-      I  pepper_31 (stable)
-         pepper_32 (beta)
-         pepper_canary (canary)
-
-#. Running ``naclsdk`` with the "update" command again will verify that your
-   bundles are up-to-date, or warn if you there are new versions of previously
-   installed bundles.
-
-   On Mac/Linux::
-
-     $ ./naclsdk update
-
-   On Windows::
-
-     > naclsdk update
-
-   Continuing with the earlier example, you should see output similar to this::
-
-     pepper_31 is already up-to-date.
-
-#. To check if there is a new version of a previously installed bundle, you can
-   run the "list" command again::
+     
+   An asterisk (*) next to a bundle indicates that there is an update available
+   it. For example::
 
     Bundles:
      I: installed
@@ -231,24 +222,25 @@ Staying up-to-date and getting new versions of bundles
 
       I  sdk_tools (stable)
          vs_addin (dev)
-         pepper_27 (post_stable)
-         pepper_28 (post_stable)
-         pepper_29 (post_stable)
-         pepper_30 (post_stable)
-      I* pepper_31 (stable)
-         pepper_32 (beta)
+         pepper_31 (post_stable)
+         pepper_32 (post_stable)
+         pepper_33 (post_stable)
+         pepper_34 (post_stable)
+      I* pepper_35 (stable)
+         pepper_36 (beta)
+         pepper_37 (dev)
          pepper_canary (canary)
+         bionic_canary (canary)
 
-   An asterisk next to a bundle indicates that there is an update
-   available for that bundle. If you run  the "update" command now,
-   ``naclsdk`` will warn you with a message similar to this::
+   
+   If you run ``naclsdk update`` now, it warns you with a message similar to
+   this::
 
-     WARNING: pepper_31 already exists, but has an update available.
-     Run update with the --force option to overwrite the existing directory.
-     Warning: This will overwrite any modifications you have made within this directory.
+     WARNING: pepper_35 already exists, but has an update available. Run update
+     with the --force option to overwrite the existing directory. Warning: This
+     will overwrite any modifications you have made within this directory.
 
-   To dowload the new version of a bundle and overwrite the existing directory
-   for that bundle, run ``naclsdk`` with the ``--force`` option.
+#. To download and install the new bundle, run:
 
    On Mac/Linux::
 
@@ -258,6 +250,11 @@ Staying up-to-date and getting new versions of bundles
 
      > naclsdk update --force
 
+.. _help-with-the-naclsdk-utility:
+     
+Help with the ``naclsdk`` utility
+---------------------------------
+
 #. For more information about the ``naclsdk`` utility, run:
 
    On Mac/Linux::
@@ -268,12 +265,15 @@ Staying up-to-date and getting new versions of bundles
 
      > naclsdk help
 
-Next steps:
+.. _next-steps:
+
+Next steps
+----------
 
-* Browse through the :doc:`Release Notes <release-notes>` for important
+* Browse the `Release Notes <release-notes>`_ for important
   information about the SDK and new bundles.
-* If you're just getting started with Native Client, we recommend reading
-  the :doc:`Technical Overview <../overview>` and walking through the
-  :doc:`Getting Started Tutorial </devguide/tutorial/tutorial-part1>`.
-* If you'd rather dive into information about the toolchains, see
-  :doc:`Building Native Client Modules </devguide/devcycle/building>`.
+* If you're just starting with Native Client, we recommend reading the 
+  `Technical Overview <../overview>`_ and walking through the
+  `Getting Started Tutorial <devguide/tutorial/tutorial-part1>`_.
+* If you'd rather dive in, see
+  `Building Native Client Modules <devguide/devcycle/building>`_.