Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: native_client_sdk/doc_generated/sdk/examples.html

Issue 476793002: Per P0 reqs add launch pts + make download obvious. Also misc cpy edits. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 {{+bindTo:partials.standard_nacl_article}} 1 {{+bindTo:partials.standard_nacl_article}}
2 2
3 <section id="running-the-sdk-examples"> 3 <section id="running-the-sdk-examples">
4 <span id="sdk-examples-2"></span><h1 id="running-the-sdk-examples"><span id="sdk -examples-2"></span>Running the SDK Examples</h1> 4 <span id="sdk-examples-2"></span><h1 id="running-the-sdk-examples"><span id="sdk -examples-2"></span>Running the SDK Examples</h1>
5 <p>Every Native Client SDK bundle comes with a folder of example applications. 5 <p>Every Native Client SDK bundle comes with a folder of example applications.
6 Each example demonstrates one or two key Native Client programming concepts. 6 Each example demonstrates one or two key Native Client programming concepts.
7 After you&#8217;ve <a class="reference internal" href="/native-client/sdk/downlo ad.html"><em>downloaded the SDK</em></a>, follow the instructions 7 After you&#8217;ve <a class="reference internal" href="/native-client/sdk/downlo ad.html"><em>downloaded the SDK</em></a>, follow the instructions
8 on this page to build and run the examples.</p> 8 on this page to build and run the examples.</p>
9 <section id="configure-the-google-chrome-browser"> 9 <p>Your version of Chrome must be equal to or greater than the version of your S DK
10 <h2 id="configure-the-google-chrome-browser">Configure the Google Chrome Browser </h2> 10 bundle. For example, if you&#8217;re developing with the <code>pepper_31</code> bundle, you
11 must use Google Chrome version 31 or greater. To find out what version of Chrome
12 you&#8217;re using, type <code>about:chrome</code> or <code>about:version</code> in the Chrome address
13 bar.</p>
14 <section id="enable-native-client">
15 <h2 id="enable-native-client">Enable Native Client</h2>
16 <aside class="note">
17 If you are using Chrome 31 or later, you can skip this section.
18 </aside>
19 <p>To run Portable Native Client applications you must specifically enable Nativ e
20 Client in Chrome:</p>
11 <ol class="arabic"> 21 <ol class="arabic">
12 <li><p class="first">Your version of Chrome must be equal to or greater than the version of 22 <li><p class="first">Type <code>about:flags</code> in the Chrome address bar and scroll down to &#8220;Native
13 your SDK bundle. For example, if you&#8217;re developing with the <code>pepper_3 1</code> 23 Client&#8221;.</p>
14 bundle, you must use Google Chrome version 31 or greater. To find out what
15 version of Chrome you&#8217;re using, type <code>about:chrome</code> or <code>ab out:version</code>
16 in the Chrome address bar.</p>
17 </li>
18 <li><p class="first">For Portable Native Client, no extra Chrome flags are neede d as of
19 Chrome version 31.</p>
20 <p>For other Native Client applications, or to <strong>debug</strong> Portable N ative
21 Client applications by translating the <strong>pexe</strong> to a <strong>nexe</ strong> ahead of
22 time, enable the Native Client flag. Native Client is enabled by default
23 only for applications distributed through the Chrome Web Store. To run
24 Native Client applications that are not distributed through the Chrome
25 Web Store, like the SDK examples, you must specifically enable the Native
26 Client flag in Chrome:</p>
27 <ul class="small-gap"> 24 <ul class="small-gap">
28 <li><p class="first">Type <code>about:flags</code> in the Chrome address bar and scroll down to
29 &#8220;Native Client&#8221;.</p>
30 </li>
31 <li><p class="first">If the link below &#8220;Native Client&#8221; says &#8220;D isable&#8221;, then Native Client is 25 <li><p class="first">If the link below &#8220;Native Client&#8221; says &#8220;D isable&#8221;, then Native Client is
32 already enabled and you don&#8217;t need to do anything else.</p> 26 already enabled and you don&#8217;t need to do anything else.</p>
33 </li> 27 </li>
28 </ul>
29 <ul class="small-gap">
34 <li><p class="first">If the link below &#8220;Native Client&#8221; says &#8220;E nable&#8221;, click the &#8220;Enable&#8221; 30 <li><p class="first">If the link below &#8220;Native Client&#8221; says &#8220;E nable&#8221;, click the &#8220;Enable&#8221;
35 link, scroll down to the bottom of the page, and click the &#8220;Relaunch 31 link.</p>
36 Now&#8221; button. All browser windows will restart when you relaunch Chrome.</p >
37 </li> 32 </li>
38 </ul> 33 </ul>
39 </li> 34 </li>
40 <li><p class="first">Disable the Chrome cache. Chrome caches resources aggressiv ely; when you 35 <li><p class="first">Scroll down to the bottom of the page, and click &#8220;Rel aunch Now&#8221;. All browser
41 are building a Native Client application you should disable the cache to 36 windows will restart when you relaunch Chrome.</p>
42 make sure that Chrome loads the latest version:</p>
43 <ul class="small-gap">
44 <li><p class="first">Open Chrome&#8217;s developer tools by clicking the menu ic on <img alt="menu-icon" src="/native-client/images/menu-icon.png" /> and
45 choosing Tools &gt; Developer tools.</p>
46 </li> 37 </li>
47 <li><p class="first">Click the gear icon <img alt="gear-icon" src="/native-clien t/images/gear-icon.png" /> in the bottom right corner of the 38 </ol>
48 Chrome window.</p> 39 </section><section id="disable-the-chrome-cache">
49 </li> 40 <h2 id="disable-the-chrome-cache">Disable the Chrome cache</h2>
50 <li><p class="first">Under the &#8220;General&#8221; settings, check the box nex t to &#8220;Disable cache&#8221;.</p> 41 <p>Chrome caches resources aggressively. When you are building a Native Client
51 </li> 42 application you should disable the cache to make sure that Chrome loads the
52 </ul> 43 latest version.</p>
53 </li> 44 <ol class="arabic simple">
45 <li>Open Chrome&#8217;s developer tools by clicking the menu icon <img alt="menu -icon" src="/native-client/images/menu-icon.png" /> and
46 choosing Tools &gt; Developer tools.</li>
47 <li>Click the gear icon <img alt="gear-icon" src="/native-client/images/gear-ico n.png" /> in the bottom right corner of the Chrome
48 window.</li>
49 <li>Under the &#8220;General&#8221; settings, check the box next to &#8220;Disab le cache&#8221;.</li>
54 </ol> 50 </ol>
55 </section><section id="build-the-sdk-examples"> 51 </section><section id="build-the-sdk-examples">
56 <h2 id="build-the-sdk-examples">Build the SDK examples</h2> 52 <h2 id="build-the-sdk-examples">Build the SDK examples</h2>
57 <p>Starting with the <code>pepper_24</code> bundle, the Makefile scripts for the SDK 53 <p>The Makefile scripts for the SDK examples build multiple versions of the
58 examples build multiple versions of the examples using all three SDK 54 examples using all three SDK toolchains (newlib, glibc, and PNaCl) and in both
59 toolchains (newlib, glibc, and PNaCl) and in both release and debug 55 release and debug configurations. (Note that some examples build only with
60 configurations. (Note that some examples build only with the particular 56 particular toolchains).</p>
61 toolchains).</p> 57 <section id="build-all-examples">
58 <h3 id="build-all-examples">Build all examples</h3>
62 <p>To build all the examples, go to the examples directory in a specific SDK 59 <p>To build all the examples, go to the examples directory in a specific SDK
63 bundle and run <code>make</code>:</p> 60 bundle and run <code>make</code>:</p>
64 <pre class="prettyprint"> 61 <pre class="prettyprint">
65 $ cd pepper_31/examples 62 $ cd pepper_31/examples
66 $ make 63 $ make
67 make -C api all 64 make -C api all
68 make[1]: Entering directory `pepper_31/examples/api' 65 make[1]: Entering directory `pepper_31/examples/api'
69 make -C audio all 66 make -C audio all
70 make[2]: Entering directory `pepper_31/examples/api/audio' 67 make[2]: Entering directory `pepper_31/examples/api/audio'
71 CXX newlib/Debug/audio_x86_32.o 68 CXX newlib/Debug/audio_x86_32.o
72 LINK newlib/Debug/audio_x86_32.nexe 69 LINK newlib/Debug/audio_x86_32.nexe
73 CXX newlib/Debug/audio_x86_64.o 70 CXX newlib/Debug/audio_x86_64.o
74 LINK newlib/Debug/audio_x86_64.nexe 71 LINK newlib/Debug/audio_x86_64.nexe
75 CXX newlib/Debug/audio_arm.o 72 CXX newlib/Debug/audio_arm.o
76 LINK newlib/Debug/audio_arm.nexe 73 LINK newlib/Debug/audio_arm.nexe
77 CREATE_NMF newlib/Debug/audio.nmf 74 CREATE_NMF newlib/Debug/audio.nmf
78 make[2]: Leaving directory `pepper_31/examples/api/audio' 75 make[2]: Leaving directory `pepper_31/examples/api/audio'
79 make -C url_loader all 76 make -C url_loader all
80 make[2]: Entering directory `pepper_31/examples/api/url_loader' 77 make[2]: Entering directory `pepper_31/examples/api/url_loader'
81 CXX newlib/Debug/url_loader_x86_32.o 78 CXX newlib/Debug/url_loader_x86_32.o
82 ... 79 ...
83 </pre> 80 </pre>
81 </section><section id="build-a-single-example">
82 <h3 id="build-a-single-example">Build a single example</h3>
84 <p>Calling <code>make</code> from inside a particular example&#8217;s directory will build only 83 <p>Calling <code>make</code> from inside a particular example&#8217;s directory will build only
85 that example:</p> 84 that example:</p>
86 <pre class="prettyprint"> 85 <pre class="prettyprint">
87 $ cd pepper_31/examples/api/core 86 $ cd pepper_31/examples/api/core
88 $ make 87 $ make
89 CXX newlib/Debug/core_x86_32.o 88 CXX newlib/Debug/core_x86_32.o
90 LINK newlib/Debug/core_x86_32.nexe 89 LINK newlib/Debug/core_x86_32.nexe
91 CXX newlib/Debug/core_x86_64.o 90 CXX newlib/Debug/core_x86_64.o
92 LINK newlib/Debug/core_x86_64.nexe 91 LINK newlib/Debug/core_x86_64.nexe
93 CXX newlib/Debug/core_arm.o 92 CXX newlib/Debug/core_arm.o
94 LINK newlib/Debug/core_arm.nexe 93 LINK newlib/Debug/core_arm.nexe
95 CREATE_NMF newlib/Debug/core.nmf 94 CREATE_NMF newlib/Debug/core.nmf
96 </pre> 95 </pre>
96 </section><section id="override-defaults">
97 <h3 id="override-defaults">Override defaults</h3>
97 <p>You can call <code>make</code> with the <code>TOOLCHAIN</code> and <code>CONF IG</code> parameters to 98 <p>You can call <code>make</code> with the <code>TOOLCHAIN</code> and <code>CONF IG</code> parameters to
98 override the defaults:</p> 99 override the defaults:</p>
99 <pre class="prettyprint"> 100 <pre class="prettyprint">
100 $ make TOOLCHAIN=pnacl CONFIG=Release 101 $ make TOOLCHAIN=pnacl CONFIG=Release
101 CXX pnacl/Release/core_pnacl.o 102 CXX pnacl/Release/core_pnacl.o
102 LINK pnacl/Release/core.bc 103 LINK pnacl/Release/core.bc
103 FINALIZE pnacl/Release/core.pexe 104 FINALIZE pnacl/Release/core.pexe
104 CREATE_NMF pnacl/Release/core.nmf 105 CREATE_NMF pnacl/Release/core.nmf
105 </pre> 106 </pre>
106 <p>You can also set <code>TOOLCHAIN</code> to &#8220;all&#8221; to build one or more examples with 107 <p>You can also set <code>TOOLCHAIN</code> to &#8220;all&#8221; to build one or more examples with
(...skipping 24 matching lines...) Expand all
131 LINK pnacl/Debug/core_unstripped.bc 132 LINK pnacl/Debug/core_unstripped.bc
132 FINALIZE pnacl/Debug/core_unstripped.pexe 133 FINALIZE pnacl/Debug/core_unstripped.pexe
133 CREATE_NMF pnacl/Debug/core.nmf 134 CREATE_NMF pnacl/Debug/core.nmf
134 make[1]: Leaving directory `pepper_31/examples/api/core' 135 make[1]: Leaving directory `pepper_31/examples/api/core'
135 make TOOLCHAIN=linux 136 make TOOLCHAIN=linux
136 make[1]: Entering directory `pepper_31/examples/api/core' 137 make[1]: Entering directory `pepper_31/examples/api/core'
137 CXX linux/Debug/core.o 138 CXX linux/Debug/core.o
138 LINK linux/Debug/core.so 139 LINK linux/Debug/core.so
139 make[1]: Leaving directory `pepper_31/examples/api/core' 140 make[1]: Leaving directory `pepper_31/examples/api/core'
140 </pre> 141 </pre>
142 </section></section><section id="build-results">
143 <h2 id="build-results">Build results</h2>
141 <p>After running <code>make</code>, each example directory will contain one or m ore of 144 <p>After running <code>make</code>, each example directory will contain one or m ore of
142 the following subdirectories:</p> 145 the following subdirectories:</p>
143 <ul class="small-gap"> 146 <ul class="small-gap">
144 <li>a <code>newlib</code> directory with subdirectories <code>Debug</code> and < code>Release</code>;</li> 147 <li><code>newlib</code> with subdirectories <code>Debug</code> and <code>Release </code>;</li>
145 <li>a <code>glibc</code> directory with subdirectories <code>Debug</code> and <c ode>Release</code>;</li> 148 <li><code>glibc</code> with subdirectories <code>Debug</code> and <code>Release< /code>;</li>
146 <li>a <code>pnacl</code> directory with subdirectories <code>Debug</code> and <c ode>Release</code>;</li> 149 <li><code>pnacl</code> with subdirectories <code>Debug</code> and <code>Release< /code>;</li>
147 </ul> 150 </ul>
148 <p>For the newlib and glibc toolchains the Debug and Release subdirectories 151 <p>For the newlib and glibc toolchains the Debug and Release subdirectories
149 contain .nexe files for all target architectures. For the PNaCl toolchain 152 contain .nexe files for all target architectures. For the PNaCl toolchain
150 they contain a single .pexe file. PNaCl debug also produces pre-translated 153 they contain a single .pexe file. PNaCl debug also produces pre-translated
151 .nexe files, for ease of debugging. All Debug and Release directories contain 154 .nexe files, for ease of debugging. All Debug and Release directories contain
152 a manifest (.nmf) file that references the associated .nexe or .pexe files. 155 a manifest (.nmf) file that references the associated .nexe or .pexe files.
153 For information about Native Client manifest files, see the <a class="reference internal" href="/native-client/overview.html"><em>Technical 156 For information about Native Client manifest files, see the <a class="reference internal" href="/native-client/overview.html"><em>Technical
154 Overview</em></a>.</p> 157 Overview</em></a>.</p>
155 <p>For details on how to use <code>make</code>, see the <a class="reference exte rnal" href="http://www.gnu.org/software/make/manual/make.html">GNU &#8216;make&# 8217; Manual</a>. For details on how to 158 <p>For details on how to use <code>make</code>, see the <a class="reference exte rnal" href="http://www.gnu.org/software/make/manual/make.html">GNU &#8216;make&# 8217; Manual</a>. For details on how to
156 use the SDK toolchain itself, see <a class="reference internal" href="/native-cl ient/devguide/devcycle/building.html"><em>Building Native Client Modules</em></a >.</p> 159 use the SDK toolchain itself, see <a class="reference internal" href="/native-cl ient/devguide/devcycle/building.html"><em>Building Native Client Modules</em></a >.</p>
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 Remote debugging using :4014 245 Remote debugging using :4014
243 0x000000000fa00080 in ?? () 246 0x000000000fa00080 in ?? ()
244 </pre> 247 </pre>
245 <p>At this point, you can use the standard GDB commands to debug your NaCl modul e. 248 <p>At this point, you can use the standard GDB commands to debug your NaCl modul e.
246 The most common commands you will use to debug are <code>continue</code>, <code> step</code>, 249 The most common commands you will use to debug are <code>continue</code>, <code> step</code>,
247 <code>next</code>, <code>break</code> and <code>backtrace</code>. See <a class=" reference internal" href="/native-client/devguide/devcycle/debugging.html"><em>D ebugging</em></a> for more information about debugging a Native Client 250 <code>next</code>, <code>break</code> and <code>backtrace</code>. See <a class=" reference internal" href="/native-client/devguide/devcycle/debugging.html"><em>D ebugging</em></a> for more information about debugging a Native Client
248 application.</p> 251 application.</p>
249 </section></section> 252 </section></section>
250 253
251 {{/partials.standard_nacl_article}} 254 {{/partials.standard_nacl_article}}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698