<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>AMCL: Windows</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">AMCL
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="PageDoc"><div class="header">
  <div class="headertitle">
<div class="title">Windows </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h2>Software dependencies</h2>
<p>Minimalist GNU for Windows <a href="http://www.mingw.org/">MinGW</a> provides the tool set used to build the library and should be installed. When the MinGW installer starts select the mingw32-base and mingw32-gcc-g++ components. From the menu select "Installation" -&gt; "Apply Changes", then click "Apply". Finally add C:\MinGW\bin to the PATH variable.</p>
<p>CMake is required to build the library and can be downloaded from www.cmake.org</p>
<p>In order to use the Python language wrapper install <a href="https://www.python.org">Python</a></p>
<p>The C Foreign Function Interface for Python <a href="https://cffi.readthedocs.org/en/latest/">CFFI</a> module is also required, if you wish to use the Python module.</p>
<ul type="disc">
<li>
pip install cffi </li>
</ul>
<p>In order to build the documentation <a href="http://www.stack.nl/~dimitri/doxygen/">doxygen</a> is required.</p>
<h2>Build Instructions</h2>
<p>Start a command prompt as an administrator</p>
<p>The default build is for 64 bit machines, Elliptic curve BN254CX and curve type Weierstrass</p>
<ol type="disc">
<li>
mkdir target\build </li>
<li>
cd target\build </li>
<li>
cmake -G "MinGW Makefiles" ..\.. </li>
<li>
mingw32-make </li>
<li>
mingw32-make test </li>
<li>
mingw32-make doc </li>
<li>
mingw32-make install </li>
</ol>
<p>Post install append the PATH system variable to point to the install ./lib.</p>
<p>My Computer -&gt; Properties -&gt; Advanced &gt; Environment Variables</p>
<p>The build can be configured using by setting flags on the command line i.e.</p>
<ol type="disc">
<li>
cmake -G "MinGW Makefiles" -DWORD_LENGTH=32 ../.. </li>
</ol>
<h2>Uninstall software</h2>
<ul type="disc">
<li>
mingw32-make uninstall </li>
</ul>
<h2>Building an installer</h2>
<p>After having built the libraries you can build a Windows installer using this command</p>
<ul type="disc">
<li>
sudo mingw32-make package </li>
</ul>
<p>In order for this to work <a href="http://nsis.sourceforge.net/Download">NSSI</a> has to have been installed</p>
</div></div><!-- PageDoc -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.15
</small></address>
</body>
</html>
