<html>
<head>
    <base href="https://wiki.asterisk.org/wiki">
            <link rel="stylesheet" href="/wiki/s/2042/1/7/_/styles/combined.css?spaceKey=TOP&amp;forWysiwyg=true" type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://wiki.asterisk.org/wiki/display/TOP/Building+-+Windows+%28WIP%29">Building - Windows (WIP)</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://wiki.asterisk.org/wiki/display/~kpfleming">Kevin P. Fleming</a>
    </h4>
        <div id="versionComment">
        <b>Comment:</b>
        add a note about debug/release builds of Ice<br />
    </div>
        <br/>
                         <h4>Changes (1)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >nmake -f Makefile.mak install <br>{noformat} <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{note} <br>By default, the Ice build produces &#39;debug&#39; libraries and binaries. This means that you will only be able to produce &#39;debug&#39; components during the Asterisk SCF build process, as the library type (release or debug) must match. If you wish to be able to produce &#39;release&#39; components of Asterisk SCF, then you&#39;ll also need to produce a &#39;release&#39; build of Ice; you can do that by editing the ice\cpp\config\Make.rules.mak file and uncommenting the line that disables optimization (&quot;OPTIMIZE = yes&quot;). <br>{note} <br></td></tr>
            <tr><td class="diff-unchanged" >* h6. Digium&#39;s Slice Translator Plugins <br>{noformat} <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h2><a name="Building-Windows%28WIP%29-Preface"></a>Preface</h2>

<p>These instructions explain how to build Asterisk SCF on a clean, updated, basic Windows installation. This process is for building native (unmanaged) C+&#43; components.</p>

<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/wiki/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>All Asterisk SCF core components are implemented in C++. For developers who wish to build components in .NET languages, read <a href="/wiki/display/TOP/Building+.NET+Components+for+Asterisk+SCF" title="Building .NET Components for Asterisk SCF">Building .NET Components for Asterisk SCF</a>.</td></tr></table></div>


<h2><a name="Building-Windows%28WIP%29-SoftwareRequirements"></a>Software Requirements</h2>

<ul>
        <li>Git for Windows - <a href="http://code.google.com/p/msysgit/" class="external-link" rel="nofollow">http://code.google.com/p/msysgit/</a>&nbsp;&#45; Don't download mSysGit; that is an environment for building Git from source.</li>
        <li>CMake - <a href="http://www.cmake.org/cmake/resources/software.html" class="external-link" rel="nofollow">http://www.cmake.org/cmake/resources/software.html</a></li>
        <li>LUA - <a href="http://code.google.com/p/luaforwindows/" class="external-link" rel="nofollow">http://code.google.com/p/luaforwindows/</a></li>
        <li>DirectX SDK - <a href="http://msdn.microsoft.com/en-us/directx/aa937788.aspx" class="external-link" rel="nofollow">http://msdn.microsoft.com/en-us/directx/aa937788.aspx</a></li>
        <li>BoostPro Libraries - <a href="http://www.boostpro.com/download/" class="external-link" rel="nofollow">http://www.boostpro.com/download/</a></li>
        <li>Ice Third Party Libraries - <a href="http://www.zeroc.com/download.html" class="external-link" rel="nofollow">http://www.zeroc.com/download.html</a></li>
        <li>Visual Studio C+&#43; 2010 Express &#45;&nbsp;<a href="http://www.microsoft.com/express/Downloads/" class="external-link" rel="nofollow">http://www.microsoft.com/express/Downloads/</a> or Visual Studio 2010 Professional</li>
</ul>


<h2><a name="Building-Windows%28WIP%29-32bitInstallation"></a>32-bit Installation</h2>

<ul>
        <li><h6><a name="Building-Windows%28WIP%29-GitforWindows"></a>Git for Windows</h6>
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/wiki/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>For convenience, enable the 'Windows Explorer integration' option; this will allow you to easily open a bash shell in any folder you can navigate to.&nbsp;<br class="atl-forced-newline" />
Select the 'Run Git from the Windows Command Prompt' option so that Git will be in your PATH.</td></tr></table></div></li>
        <li><h6><a name="Building-Windows%28WIP%29-CMake"></a>CMake</h6>
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/wiki/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>By default, you will be able to run CMake as a GUI application from the Start menu. If you'd also like to be able to run CMake from the command line, select either 'Add CMake to the system PATH for all users' or 'Add CMake to the system PATH for the current user', depending on your preference.</td></tr></table></div></li>
        <li><h6><a name="Building-Windows%28WIP%29-LUA"></a>LUA</h6></li>
        <li><h6><a name="Building-Windows%28WIP%29-DirectXSDK"></a>DirectX SDK</h6></li>
        <li><h6><a name="Building-Windows%28WIP%29-BoostProLibraries"></a>BoostPro Libraries</h6>
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/wiki/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Select 'Visual C++ 10.0 (Visual Studio 2010)' as the compiler and the 'Multithreaded'  and 'Multithreaded debug' variants to install. On the 'Components' page, deselect 'Source and Documentation' to save some download time and disk space (the source is not necessary, and the complete documentation is available online).</td></tr></table></div></li>
        <li><h6><a name="Building-Windows%28WIP%29-IceThirdPartyLibraries"></a>Ice Third Party Libraries</h6></li>
        <li><h6><a name="Building-Windows%28WIP%29-Digium%27sIceDistribution"></a>Digium's Ice Distribution</h6>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>cd &lt;YOURBUILDDIR&gt;
git clone git://git.asterisk.org/asterisk-scf/release/ice
set CPP_COMPILER=VC100_EXPRESS (if you are using VS2010 Express)
set CPP_COMPILER=VC100 (if you are using VS2010 Professional)
cd ice\cpp
nmake -f Makefile.mak
</pre>
</div></div>
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/wiki/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>If you do not have Microsoft's Foundation Class library installed (which is not included in Visual Studio C+&#43; 2008 Express), you'll get an error at the end of the make process about not being able to build 'HelloClient'.<br/>
You can safely disregard this error message and continue with the build instructions.</td></tr></table></div>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>nmake -f Makefile.mak install
</pre>
</div></div>
<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/wiki/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>By default, the Ice build produces 'debug' libraries and binaries. This means that you will only be able to produce 'debug' components during the Asterisk SCF build process, as the library type (release or debug) must match. If you wish to be able to produce 'release' components of Asterisk SCF, then you'll also need to produce a 'release' build of Ice; you can do that by editing the ice\cpp\config\Make.rules.mak file and uncommenting the line that disables optimization ("OPTIMIZE = yes").</td></tr></table></div></li>
        <li><h6><a name="Building-Windows%28WIP%29-Digium%27sSliceTranslatorPlugins"></a>Digium's Slice Translator Plugins</h6>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>cd &lt;YOURBUILDDIR&gt;
git clone git://git.asterisk.org/asterisk-scf/release/slice-plugins
cd slice-plugins
cmake -G "NMake Makefiles" .
nmake
nmake install
</pre>
</div></div></li>
        <li><h6><a name="Building-Windows%28WIP%29-AsteriskSCF"></a>Asterisk SCF</h6>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>cd &lt;YOURBUILDDIR&gt;
git clone git://git.asterisk.org/asterisk-scf/integration/gitall
cd gitall
bash ./gitall-asterisk-scf.sh
bash ./cmake/init-cmake.sh
</pre>
</div></div>
<p>Now open Visual Studio and open the "Asterisk SCF" solution file generated by CMake in the 'build' subdirectory of the 'gitall' directory. You may seem some warnings about project files needing to be upgraded; if you do, let Visual Studio perform the upgrades. Once the solution is open, choose "Build Solution" from the "Build" menu, and the entire Asterisk SCF build will proceed.</p></li>
</ul>


<h2><a name="Building-Windows%28WIP%29-64bitInstallation"></a>64-bit Installation</h2>
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/wiki/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Forthcoming</td></tr></table></div>
    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://wiki.asterisk.org/wiki/users/viewnotifications.action" class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://wiki.asterisk.org/wiki/display/TOP/Building+-+Windows+%28WIP%29">View Online</a>
        |
        <a href="https://wiki.asterisk.org/wiki/pages/diffpagesbyversion.action?pageId=6586426&revisedVersion=31&originalVersion=30">View Changes</a>
                |
        <a href="https://wiki.asterisk.org/wiki/display/TOP/Building+-+Windows+%28WIP%29?showComments=true&amp;showCommentArea=true#addcomment">Add Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>