Commit 62a802be authored by awatson@chromium.org's avatar awatson@chromium.org

Updated SDK download instructions. (Ported changes from DevSite.)

Moved description of SDK to top of download page and deleted the
sdk/index.html landing page.

BUG=

TEMPORARY STAGED DOC: http://ypd-ubiq182.dls.corp.google.com:8009/sdk/download.html

R=binji@chromium.org

Review URL: https://codereview.chromium.org/127433002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243659 0039d316-1c4b-4281-b951-d872f2087c98
parent 9450f29e
......@@ -3,15 +3,62 @@
Download the Native Client SDK
==============================
Follow the steps below to download and install the 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.
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.
Follow the steps below to download and install the Native Client SDK.
Prerequisites
-------------
* Python: Make sure you have Python 2.6 or 2.7 installed, and that the Python
executable is in your path.
* **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
* 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
......@@ -24,27 +71,28 @@ Prerequisites
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
* **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>`_.
``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 Steps
--------------
Download and install the SDK
----------------------------
#. Download the SDK update utility: `nacl_sdk.zip
<http://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip>`_.
#. Unzip the SDK update utility:
* 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".
......@@ -53,15 +101,14 @@ Download Steps
* ``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_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
#. 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).
#. 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 +128,28 @@ 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_30 (post_stable)
pepper_31 (stable)
pepper_32 (beta)
pepper_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.
#. Run ``naclsdk`` with the "update" command to download particular bundles that
are available.
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.
On Mac/Linux::
......@@ -111,27 +159,27 @@ 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::
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::
$ ./naclsdk update pepper_31
$ ./naclsdk update pepper_32
Note that you never need update the ``sdk_tools`` bundle, it is
updated automatically as necessary whenever ``naclsdk`` is run.
Note that you never need to update the ``sdk_tools`` bundle---it is
updated automatically (if necessary) whenever you run ``naclsdk``.
.. Note::
:class: note
The minimum SDK version that supports PNaCl is ``pepper_31``.
The minimum SDK bundle that supports PNaCl is ``pepper_31``.
Staying up-to-date and getting new versions
-------------------------------------------
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 are installed.
available bundles and verify which bundles you have installed.
On Mac/Linux::
......@@ -142,7 +190,7 @@ Staying up-to-date and getting new versions
> naclsdk list
Continuing with the earlier example, if you previously downloaded the
``pepper_30`` bundle, you should see output similar to this::
``pepper_31`` bundle, you should see output similar to this::
Bundles:
I: installed
......@@ -150,12 +198,12 @@ 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_30 (post_stable)
I pepper_31 (stable)
pepper_32 (beta)
pepper_canary (canary)
#. Running ``naclsdk`` with the "update" command again will verify that your
......@@ -172,7 +220,7 @@ Staying up-to-date and getting new versions
Continuing with the earlier example, you should see output similar to this::
pepper_30 is already up-to-date.
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::
......@@ -183,19 +231,19 @@ 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_30 (post_stable)
I* pepper_31 (stable)
pepper_32 (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::
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::
WARNING: pepper_30 already exists, but has an update available.
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.
......@@ -226,6 +274,6 @@ Next steps:
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>`.
: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>`.
.. _sdk-index:
#################
Native Client SDK
#################
To build Native Client modules, you must download and install the Native
Client Software Development Kit (SDK).
The 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
`Pepper API </overview.html#link_pepper>`_
(e.g., Pepper 30 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 30 platform will work in Chrome 30 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 Portable Native Client
(PNaCl) applications, one for compiling architecture-specific Native
Client applications with newlib, and a third native NaCl toolchain for
compiling with glibc. Newlib and glibc are two different implementations
of the C standard library. All toolchains contain Native Client-compatible
versions of standard compilers, linkers, and other tools.
See :doc:`this document </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, which you can use for
tasks such as validating Native Client modules and running modules
from the command line.
To download and install the SDK, follow the instructions on the
:ref:`Download <download>` page.
......@@ -12,7 +12,6 @@ Contents:
quick-start.rst
nacl-and-pnacl.rst
glossary.rst
sdk/index.rst
sdk/download.rst
sdk/examples.rst
sdk/release-notes.rst
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment