Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / native_client_sdk / src / doc / sdk / download.rst
index cf66ccb..eac338c 100644 (file)
 Download the Native Client SDK
 ==============================
 
-Follow the steps below 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:
+
+- **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 probably 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. 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
+.. _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:
 
-Download Steps
---------------
+Versions
+--------
 
-#. Download the SDK update utility: `nacl_sdk.zip
+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 window.
+   * 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".
+
+   A directory is created called ``nacl_sdk`` with the following files and
+   directories:
 
-   Unzipping the SDK update utility creates a directory called ``nacl_sdk`` with
-   the following files and directories:
+   * ``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 code run by the ``naclsdk`` command.
 
-   * ``naclsdk`` (and ``naclsdk.bat`` for Windows) --- the front end of the update
-     utility, i.e., the command you run to download the latest 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
+.. _installing-the-stable-bundle:
 
-#. See which SDK versions are available: Go to the ``nacl_sdk`` directory and
-   run ``naclsdk`` with the ``"list"`` command to see a list of available bundles.
-   The SDK includes a separate bundle for each version of Chrome/Pepper
-   (see versioning information).
+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.
 
    On Mac/Linux::
 
@@ -81,27 +153,32 @@ Download Steps
 
       I  sdk_tools (stable)
          vs_addin (dev)
-         pepper_26 (post_stable)
-         pepper_27 (post_stable)
-         pepper_28 (post_stable)
-         pepper_29 (post_stable)
-         pepper_30 (stable)
-         pepper_31 (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)
+
 
-   This sample output shows many 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). Note that the bundles are labelled
-   "post-stable", "stable", "beta", "dev" and "canary". These labels correspond
-   to the current versions of Chrome. In this example, Chrome 30 is stable,
-   Chrome 31 is beta, etc. Therefore ``pepper_30`` is the recommended bundle to
-   download, because if you released an application that used it today, it
-   could be used by all current Chrome users. Note that Native Client is
-   designed to be backward compatible---users of Chrome 31 can use the features
-   of ``pepper_30`` and earlier.
+   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..
 
-#. Run ``naclsdk`` with the "update" command to download particular bundles that
-   are available.
+#. Run ``naclsdk`` with the ``update`` command to download recommended bundles,
+   including the current "stable" bundle.
 
    On Mac/Linux::
 
@@ -111,27 +188,22 @@ Download Steps
 
      > naclsdk update
 
-   By default, ``naclsdk`` only downloads bundles that are recommended.  In
-   general, only the "stable" bundles are recommended. Continuing with the
-   earlier example, the "update" command would only download the ``pepper_30``
-   bundles, since the bundles ``pepper_31`` and greater are not yet recommended.
-   If you want the ``pepper_31`` bundle, you must ask for it explicitly::
-
-     $ ./naclsdk update pepper_31
+   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::
 
-   Note that you never need update the ``sdk_tools`` bundle, it is
-   updated automatically as necessary whenever ``naclsdk`` is run.
+     $ ./naclsdk update pepper_36
+  
+   
 
-.. Note::
-  :class: note
+.. _updating-bundles:
 
-  The minimum SDK version that supports PNaCl is ``pepper_31``.
+Updating bundles
+----------------
 
-Staying up-to-date and getting new versions
--------------------------------------------
-
-#. Run ``naclsdk`` with the "list" command again; this will show you the list of
-   available bundles and verify which bundles are 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::
 
@@ -140,9 +212,9 @@ Staying up-to-date and getting new versions
    On Windows::
 
      > naclsdk list
-
-   Continuing with the earlier example, if you previously downloaded the
-   ``pepper_30`` bundle, you should see output similar to this::
+     
+   An asterisk (*) next to a bundle indicates that there is an update available
+   it. For example::
 
     Bundles:
      I: installed
@@ -150,57 +222,25 @@ Staying up-to-date and getting new versions
 
       I  sdk_tools (stable)
          vs_addin (dev)
-         pepper_26 (post_stable)
-         pepper_27 (post_stable)
-         pepper_28 (post_stable)
-         pepper_29 (post_stable)
-      I  pepper_30 (stable)
-         pepper_31 (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)
 
-#. 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.
+   
+   If you run ``naclsdk update`` now, it warns you with a message similar to
+   this::
 
-   On Mac/Linux::
-
-     $ ./naclsdk update
-
-   On Windows::
-
-     > naclsdk update
-
-   Continuing with the earlier example, you should see output similar to this::
-
-     pepper_30 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::
-
-    Bundles:
-     I: installed
-     *: update available
+     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.
 
-      I  sdk_tools (stable)
-         vs_addin (dev)
-         pepper_26 (post_stable)
-         pepper_27 (post_stable)
-         pepper_28 (post_stable)
-         pepper_29 (post_stable)
-      I* pepper_30 (stable)
-         pepper_31 (beta)
-         pepper_canary (canary)
-
-   The asterisk next to the bundle name indicates that there is an update
-   available. If you run  the "update" command now, ``naclsdk`` will warn you
-   with a message similar to this::
-
-     WARNING: pepper_30 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::
 
@@ -210,6 +250,11 @@ Staying up-to-date and getting new versions
 
      > naclsdk update --force
 
+.. _help-with-the-naclsdk-utility:
+     
+Help with the ``naclsdk`` utility
+---------------------------------
+
 #. For more information about the ``naclsdk`` utility, run:
 
    On Mac/Linux::
@@ -220,12 +265,15 @@ Staying up-to-date and getting new versions
 
      > 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/index>`.
-* 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>`_.