BuildingSdk.html 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <!-- HTML header for doxygen 1.8.10-->
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  6. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  7. <meta name="generator" content="Doxygen 1.8.11"/>
  8. <title>Intel&reg; Enhanced Privacy ID SDK: Building From Source</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="resize.js"></script>
  14. <script type="text/javascript" src="navtreedata.js"></script>
  15. <script type="text/javascript" src="navtree.js"></script>
  16. <script type="text/javascript">
  17. $(document).ready(initResizable);
  18. $(window).load(resizeHeight);
  19. </script>
  20. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  21. <link href="epidstyle.css" rel="stylesheet" type="text/css"/>
  22. </head>
  23. <body>
  24. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  25. <div id="titlearea">
  26. <table cellspacing="0" cellpadding="0">
  27. <tbody>
  28. <tr style="height: 56px;">
  29. <td id="projectalign" style="padding-left: 0.5em;">
  30. <div id="projectname"><a
  31. onclick="storeLink('index.html')"
  32. id="projectlink"
  33. class="index.html"
  34. href="index.html">Intel&reg; Enhanced Privacy ID SDK</a>
  35. &#160;<span id="projectnumber">2.0.0</span>
  36. </div>
  37. </td>
  38. </tr>
  39. </tbody>
  40. </table>
  41. </div>
  42. <!-- end header part -->
  43. <!-- Generated by Doxygen 1.8.11 -->
  44. </div><!-- top -->
  45. <div id="side-nav" class="ui-resizable side-nav-resizable">
  46. <div id="nav-tree">
  47. <div id="nav-tree-contents">
  48. <div id="nav-sync" class="sync"></div>
  49. </div>
  50. </div>
  51. <div id="splitbar" style="-moz-user-select:none;"
  52. class="ui-resizable-handle">
  53. </div>
  54. </div>
  55. <script type="text/javascript">
  56. $(document).ready(function(){initNavTree('BuildingSdk.html','');});
  57. </script>
  58. <div id="doc-content">
  59. <div class="header">
  60. <div class="headertitle">
  61. <div class="title">Building From Source </div> </div>
  62. </div><!--header-->
  63. <div class="contents">
  64. <div class="toc"><h3>Table of Contents</h3>
  65. <ul><li class="level1"><a href="#BuildingSdk_Prerequisites">Prerequisites</a></li>
  66. <li class="level1"><a href="#BuildingSdk_Building">Building</a></li>
  67. <li class="level1"><a href="#BuildingSdk_Examples">Example Programs</a></li>
  68. <li class="level1"><a href="#BuildingSdk_PortingBuildSystem">Building with Other Build Systems</a></li>
  69. </ul>
  70. </div>
  71. <div class="textblock"><p>To use the SDK in a project, the code from the SDK must be included in that project. The easiest way to do this is to link to static libraries. The SDK comes with build scripts to build static libraries for common environments.</p>
  72. <h1><a class="anchor" id="BuildingSdk_Prerequisites"></a>
  73. Prerequisites</h1>
  74. <p>Building SDK code out of the box requires a number of tools. This section lists the tools used to build the SDK.</p>
  75. <table class="doxtable">
  76. <tr>
  77. <th>Prerequisite </th><th>Notes </th></tr>
  78. <tr>
  79. <td>A C/C++ compiler </td><td>Core code in C. Unit tests need C++11 support. </td></tr>
  80. <tr>
  81. <td><a href="http://www.python.org">Python</a> </td><td>Validated with v2.7.10 </td></tr>
  82. <tr>
  83. <td><a href="http://www.scons.org">SCons</a> </td><td>Validated with v2.4.1 </td></tr>
  84. <tr>
  85. <td><a href="https://bitbucket.org/sconsparts/parts">Parts</a> </td><td>0.10.9.2 or later </td></tr>
  86. </table>
  87. <h1><a class="anchor" id="BuildingSdk_Building"></a>
  88. Building</h1>
  89. <p>To use the SDK, you need to build it to generate libraries compatible with your build environment.</p>
  90. <p>To build based on the default SConstruct file in the root directory of the SDK, invoke scons with no arguments. </p><pre class="fragment">cd &lt;path/to/sdk-root&gt;
  91. scons
  92. </pre><p>By default, this performs a 64 bit release build.</p>
  93. <p>Potentially useful command line options:</p>
  94. <table class="doxtable">
  95. <tr>
  96. <th>Option </th><th>Action </th></tr>
  97. <tr>
  98. <td><code>--cfg=debug</code> </td><td>Build in debug mode </td></tr>
  99. <tr>
  100. <td><code>--cfg=release</code> </td><td>Build in release mode </td></tr>
  101. <tr>
  102. <td><code>--target=x86</code> </td><td>Target x86 </td></tr>
  103. <tr>
  104. <td><code>--target=x86_64</code> </td><td>Target x86_64 </td></tr>
  105. <tr>
  106. <td><code>--tc=cl</code> </td><td>Use msvc to compile </td></tr>
  107. <tr>
  108. <td><code>--tc=gcc</code> </td><td>Use gcc to compile </td></tr>
  109. <tr>
  110. <td><code>--tc=icl,mstools</code> </td><td>Use intelc to compile </td></tr>
  111. <tr>
  112. <td><code>build::</code> </td><td>Build the SDK (does not build unit tests) </td></tr>
  113. <tr>
  114. <td><code>utest::</code> </td><td>Build unit tests </td></tr>
  115. <tr>
  116. <td><code>run_utest::</code> </td><td>Run unit tests (builds tests if needed) </td></tr>
  117. <tr>
  118. <td><code>-c</code> </td><td>Clean the build </td></tr>
  119. </table>
  120. <p>Built components appear in the <code>_install</code> directory of the SDK root.</p>
  121. <h1><a class="anchor" id="BuildingSdk_Examples"></a>
  122. Example Programs</h1>
  123. <p>The SDK includes several examples that show you different aspects of how the Intel&reg; EPID scheme works. In the SDK build, these examples are located in <code>_install/epid-sdk/example</code>.</p>
  124. <table class="doxtable">
  125. <tr>
  126. <th>Name </th><th>Description </th></tr>
  127. <tr>
  128. <td><code>signmsg</code> </td><td>Create Intel&reg; EPID signature of message </td></tr>
  129. <tr>
  130. <td><code>verifysig</code> </td><td>Verify signature is from a group member in good standing </td></tr>
  131. </table>
  132. <h1><a class="anchor" id="BuildingSdk_PortingBuildSystem"></a>
  133. Building with Other Build Systems</h1>
  134. <p>It is relatively straightforward to port the SDK to your build system of choice. The following dependency diagram shows the relationship between components and the sources used to build them.</p>
  135. <div class="image">
  136. <img src="basicdoc.png" alt="basicdoc.png"/>
  137. </div>
  138. </div></div><!-- contents -->
  139. </div><!-- doc-content -->
  140. <!-- HTML footer for doxygen 1.8.10-->
  141. <!-- start footer part -->
  142. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  143. <ul>
  144. <li class="footer">
  145. &copy; 2016 Intel Corporation
  146. </li>
  147. </ul>
  148. </div>
  149. </body>
  150. </html>