Difference between revisions of "Hugin SDK (MSVC 2008)"

From PanoTools.org Wiki
Jump to navigation Jump to search
(How to build Hugin Software Development Kit with MSVC 2008)
 
(Add Compiling category)
 
(24 intermediate revisions by 7 users not shown)
Line 1: Line 1:
Hugin depends on different components like libraries and tools, which are not available on a common Windows system. All these components can be combined to a Hugin Software Developmant Kit (SDK). This article gives step-by-step instructions to build such SDK for Hugin using Microsoft Visual C++ 2008 (MSVC 2008) Express Edition and precompiled dependencies.
+
Hugin depends on different components like libraries and tools, which are not available on a common Windows system. All these components can be combined to a Hugin Software Development Kit (SDK). This article gives step-by-step instructions to build such SDK for Hugin using Microsoft Visual C++ 2008 (MSVC 2008) Express Edition and precompiled dependencies.
 +
 
 +
While this article is designed for developing a native 32-bit version, additional instructions are provided so that a 64-bit version of the Hugin SDK can be compiled. When appropriate, steps that only apply to the 32-bit or 64-bit versions will be noted as (32-bit) or (64-bit), and you can safely ignore them if you are not targeting that particular version. In order to compile a 64-bit version of the Hugin SDK, one does not need a 64-bit computer. However, if they wish to test or debug the binaries, or for some projects (such as OpenEXR) which execute compiled binaries as part of their build step, this will not necessarily be possible on Win32.
  
 
First of all an overview is given over the contents of the SDK and the tools that are necessary to build the SDK.
 
First of all an overview is given over the contents of the SDK and the tools that are necessary to build the SDK.
  
The build steps for each component are written like a walkthrough and annotated on the end of each section.
+
The build steps for each component are written like a walk-through and annotated on the end of each section.
  
 
Maybe some of the described tools and packages, especially those fetched from Subversion (SVN) repository, will change over time and/or become obsolete. Hence it is likely that some steps will become invalid or won't work any more.
 
Maybe some of the described tools and packages, especially those fetched from Subversion (SVN) repository, will change over time and/or become obsolete. Hence it is likely that some steps will become invalid or won't work any more.
  
The SDK is structured, that each component is located in its own sub-directory. This approach is different to other platforms like Linux, where some common directories are available to store include files, libraries and applications. The files of a component are spread over all these directories. Both approaches to structure the files in a file system have its assets and drawbacks.
+
The SDK is structured, that each component resides in its own subdirectory. This approach is different to other platforms like Linux, where some common directories are available to store include files, libraries and applications. The files of a component are spread over all these directories. Both approaches to structure the files in a file system have its assets and drawbacks.
  
The base directory of the SDK is denoted as <tt><SDKHOME></tt> in this article. Replace this by the directory where you store the SDK on your system. In the examples <tt><SDKHOME></tt> is replaced by the directory name <tt>D:\usr\src\SDK</tt>.
+
The base directory of the SDK is denoted as <tt><SDKHOME></tt> in this article. Replace <tt><SDKHOME></tt> by directory name where you store the SDK on your system. In the examples <tt><SDKHOME></tt> is replaced by the directory name <tt>D:\usr\src\SDK</tt>.
  
 
== Prerequisites ==
 
== Prerequisites ==
Line 15: Line 17:
 
To build the SDK some tools are required that are listed in the table below. Download the tools and install them. The destination directory of each tool is arbitrary. If you are uncertain, choose the default given in the setup dialog of each tool.
 
To build the SDK some tools are required that are listed in the table below. Download the tools and install them. The destination directory of each tool is arbitrary. If you are uncertain, choose the default given in the setup dialog of each tool.
  
{| class="wikitable"
+
{| class="wikitable" width="100%"
|-valign="top"
+
|- valign="top"
! Tool
+
! style="padding:5px; text-align:left" width="30%" | Tool
! Description
+
! style="padding:5px; text-align:left" | Description
|-valign="top"
+
|- valign="top"
| Microsoft Visual C++ 2008 Express Edition<br/>Visit [http://www.microsoft.com/express/vc/ Download page]
+
| style="padding:5px; text-align:left" | Microsoft Visual C++ 2008 Express Edition
| Compiler, Debugger and IDE
+
| style="padding:5px; text-align:left" | Compiler, Debugger and IDE<br/>Visit [http://www.microsoft.com/express/vc/ Download page] <br>If compiling for 64-bit, you will need to [http://jenshuebel.wordpress.com/2009/02/12/visual-c-2008-express-edition-and-64-bit-targets/ enable Express Edition to compile 64-bit projects].
|-valign="top"
+
|- valign="top"
| CMake 2.6.3 (2009-02-23)<br/>Visit [http://www.cmake.org/cmake/resources/software.html#latest Download page] or download [http://www.cmake.org/files/v2.6/cmake-2.6.3-win32-x86.exe cmake-2.6.3-win32-x86.exe]
+
| style="padding:5px; text-align:left" | (x64 Only) Microsoft Windows SDK for Windows Server 2008 and .NET Framework 3.5
| Generator of solution and project files for MSVC 2008
+
| style="padding:5px; text-align:left" | x64 Compiler, Libraries, and Headers<br/>Visit [http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF]<br> When installing, make sure to include the Visual C++ compilers for x64 (under Developer Tools) and the Header Files and x64 libraries (under Windows Headers and Libraries). Optionally consider installing all of the SDK, as it makes compiling generally easier.
|-valign="top"
+
|- valign="top"
| TortoiseSVN 1.5.8.15348 (2009-02-13)<br/>Visit [http://tortoisesvn.net/downloads Download page] or download [http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.5.8.15348-win32-svn-1.5.5.msi TortoiseSVN-1.5.8.15348-win32-svn-1.5.5.msi]
+
| style="padding:5px; text-align:left" | CMake 2.6.4 (2009-05-05)
| Tool to handle source codes in Subversion repositories
+
| style="padding:5px; text-align:left" | Generator of solution and project files for MSVC 2008<br/>Visit [http://www.cmake.org/cmake/resources/software.html#latest Download page] or download [http://www.cmake.org/files/v2.6/cmake-2.6.4-win32-x86.exe <tt>cmake-2.6.4-win32-x86.exe</tt>]
|-valign="top"
+
|- valign="top"
| 7-Zip 4.65 (2009-02-03)<br/>Visit [http://www.7-zip.org/download.html Download page] or download [http://downloads.sourceforge.net/sevenzip/7z465.exe 7z465.exe]
+
| style="padding:5px; text-align:left" | TortoiseSVN 1.6.1.16129 (2009-02-13)
| Tool to decompress the source packages
+
| style="padding:5px; text-align:left" | Tool to handle source codes in Subversion repositories<br/>Visit [http://tortoisesvn.net/downloads Download page] or download<br/> [http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.6.1.16129-win32-svn-1.6.1.msi <tt>TortoiseSVN-1.6.1.16129-win32-svn-1.6.1.msi (32-bit)</tt>] or<br/> [http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.6.1.16129-x64-svn-1.6.1.msi <tt>TortoiseSVN-1.6.1.16129-x64-svn-1.6.1.msi (64-bit)</tt>]
|-valign="top"
+
|- valign="top"
| Java SE Development Kit 6 Update 12<br/>Visit [http://java.sun.com/javase/downloads/index.jsp Download page]
+
| style="padding:5px; text-align:left" | TortoiseHg 1.0.4 (2010-06-11)
| Java Development Kit (JDK)
+
| style="padding:5px; text-align:left" | Tool to handle source codes in Mercurial repositories<br/>Visit [http://tortoisehg.bitbucket.org/ Download page]<br/>
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | 7-Zip 4.65 (2009-02-03)
 +
| style="padding:5px; text-align:left" | Tool to decompress the source packages<br/>Visit [http://www.7-zip.org/download.html Download page] or download [http://downloads.sourceforge.net/sevenzip/7z465.exe <tt>7z465.exe (32-bit)</tt>] or [http://downloads.sourceforge.net/sevenzip/7z465-x64.msi <tt>7z465-x64.msi (64-bit)</tt>]
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | Java SE Development Kit 6 Update 13
 +
| style="padding:5px; text-align:left" | Java Development Kit (JDK)<br/>Visit [http://java.sun.com/javase/downloads/index.jsp Download page]
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | Microsoft HTML Help Workshop
 +
| style="padding:5px; text-align:left" | HTML Help Compiler<br/>Visit [http://www.microsoft.com/downloads/en/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc Download page for htmlhelp.exe]
 
|}
 
|}
  
 
== Contents of the Hugin SDK ==
 
== Contents of the Hugin SDK ==
  
For those who want to avoid to build the whole SDK from scratch a precompiled SDK is available: [http://hugin.panotools.org/sdk/MSVC/Hugin-SDK-20090226-win32.exe Download Hugin SDK] (75 MiB, 2009-02-26)
+
=== Precompiled Version (32-bit only) ===
 +
 
 +
For those who want to avoid to build the whole SDK from scratch a precompiled SDK is available.
 +
 
 +
{| class="wikitable" width="100%"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" | Precompiled Hugin SDK (Win32)
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | [http://hugin.panotools.org/sdk/MSVC/Hugin-SDK-20090509-win32.exe <tt>Hugin-SDK-20090509-win32.exe </tt>] (76 MiB, 2009-05-09)
 +
|}
  
 +
=== Building from Source ===
 
The contents of the Hugin SDK is shown in the following table. Download the packages, except the packages fetched from Subversion repository.
 
The contents of the Hugin SDK is shown in the following table. Download the packages, except the packages fetched from Subversion repository.
  
 +
{| class="wikitable" width="100%"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" width="30%" | Directory
 +
! style="padding:5px; text-align:left" | Description (Website)<br/>Download package (Date of the package)
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <tt>autopano-sift-C</tt>
 +
| style="padding:5px; text-align:left" | Autopano-SIFT-C (http://hugin.sourceforge.net/)<br/>Subversion repository<br/><tt>https://hugin.svn.sourceforge.net/svnroot/hugin/autopano-sift-C/trunk</tt>
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <tt>boost_1_39_0</tt>
 +
| style="padding:5px; text-align:left" | Boost C++ libraries 1.39.0 (http://www.boost.org/)<br/>[http://downloads.sourceforge.net/boost/boost_1_39_0.7z <tt>boost_1_39_0.7z</tt>] (2009-02-09)<br/>[http://downloads.sourceforge.net/boost/boost-jam-3.1.17-1-ntx86.zip <tt>boost-jam-3.1.17-1-ntx86.zip</tt>] (2008-11-29)
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <tt>Deploy</tt><br/><tt>OpenEXR</tt>
 +
| style="padding:5px; text-align:left" | OpenEXR library 1.6.1 and IlmBase libraries 1.0.1 (http://www.openexr.com/)<br/>[http://download.savannah.nongnu.org/releases/openexr/ilmbase-1.0.1.tar.gz <tt>ilmbase-1.0.1.tar.gz</tt>] (2007-10-22)<br/>[http://download.savannah.nongnu.org/releases/openexr/openexr-1.6.1.tar.gz <tt>openexr-1.6.1.tar.gz</tt>] (2007-10-22)
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <tt>enblend-enfuse-3.2</tt>
 +
| style="padding:5px; text-align:left" | Enblend 3.2 and Enfuse 3.2 (http://enblend.sourceforge.net/)<br/>
 +
{| class="wikitable"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" | 32-Bit
 +
! style="padding:5px; text-align:left" | 64-Bit
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | [http://downloads.sourceforge.net/enblend/enblend-enfuse-3.2.zip <tt>enblend-enfuse-3.2.zip</tt>] (2008-09-09)
 +
| style="padding:5px; text-align:left" | [http://downloads.sourceforge.net/enblend/enblend-enfuse-3.2.tar.gz <tt>enblend-enfuse-3.2.tar.gz</tt>] (2008-09-09)
 +
|}
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <tt>exiftool</tt>
 +
| style="padding:5px; text-align:left" | ExifTool 7.74 (http://www.sno.phy.queensu.ca/~phil/exiftool)<br/>[http://www.sno.phy.queensu.ca/~phil/exiftool/exiftool-7.74.zip <tt>exiftool-7.74.zip</tt>] (2009-02-17)
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <tt>exiv2-0.18.1</tt>
 +
| style="padding:5px; text-align:left" | Exiv2 C++ library 0.18 (http://www.exiv2.org/)<br/>[http://www.exiv2.org/exiv2-0.18.1.tar.gz <tt>exiv2-0.18.1.tar.gz</tt>] (2009-04-06)
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <tt>expat-2.0.1</tt>
 +
| style="padding:5px; text-align:left" | Expat XML Parser library 2.0.1 (http://sourceforge.net/projects/expat/)<br/>[http://downloads.sourceforge.net/expat/expat-2.0.1.tar.gz <tt>expat-2.0.1.tar.gz</tt>] (2007-06-05)
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <tt>gettext</tt>
 +
| style="padding:5px; text-align:left" | GNU gettext 0.13.1 and iconv library 1.9.1 (http://www.gnu.org/)<br/>
 
{| class="wikitable"
 
{| class="wikitable"
|-valign="top" align="left"
+
|- valign="top"
! Directory
+
! style="padding:5px; text-align:left" | 32-Bit
! Description (Website)<br/>Download package (Date of the package)
+
! style="padding:5px; text-align:left" | 64-Bit
|-valign="top"
+
|- valign="top"
| <tt>autopano-sift-C</tt>
+
| style="padding:5px; text-align:left" | <ul><li>[http://ftp.gnu.org/gnu/gettext/gettext-runtime-0.13.1.bin.woe32.zip <tt>gettext-runtime-0.13.1.bin.woe32.zip</tt>] (2004-01-20)</li><li>[http://ftp.gnu.org/gnu/gettext/gettext-tools-0.13.1.bin.woe32.zip <tt>gettext-tools-0.13.1.bin.woe32.zip</tt>] (2004-01-20)</li><li>[http://ftp.gnu.org/gnu/libiconv/libiconv-1.9.1.bin.woe32.zip <tt>libiconv-1.9.1.bin.woe32.zip</tt>] (2004-01-20)</li></ul>
| Autopano-SIFT-C (http://hugin.sourceforge.net/)<br/>Subversion repository<br/>https://hugin.svn.sourceforge.net/svnroot/hugin/autopano-sift-C/trunk
+
| style="padding:5px; text-align:left" | <ul><li> [http://ftp.gnu.org/gnu/libiconv/libiconv-1.9.1.tar.gz libiconv-1.9.1.tar.gz] (2003-05-27)</li><li>[http://ftp.gnu.org/gnu/gettext/gettext-0.13.1.tar.gz gettext-0.13.1.tar.gz] (2003-12-17)</li></ul>
|-valign="top"
+
|}
| <tt>boost_1_38_0</tt>
+
|- valign="top"
| Boost C++ libraries 1.38.0 (http://www.boost.org/)<br/>[http://downloads.sourceforge.net/boost/boost_1_38_0.7z boost_1_38_0.7z] (2009-02-09)<br/>[http://downloads.sourceforge.net/boost/boost-jam-3.1.17-1-ntx86.zip boost-jam-3.1.17-1-ntx86.zip] (2008-11-29)
+
| style="padding:5px; text-align:left" | <tt>glew</tt>
|-valign="top"
+
| style="padding:5px; text-align:left" | OpenGL Extension Wrangler Library (GLEW) 1.5.1 (http://glew.sourceforge.net/)<br/>[http://downloads.sourceforge.net/glew/glew-1.5.1-src.zip <tt>glew-1.5.1-src.zip</tt>] (2008-11-03)
| <tt>Deploy</tt><br/><tt>OpenEXR</tt>
+
|- valign="top"
| OpenEXR library 1.6.1 and IlmBase libraries 1.0.1 (http://www.openexr.com/)<br/>[http://download.savannah.nongnu.org/releases/openexr/ilmbase-1.0.1.tar.gz ilmbase-1.0.1.tar.gz] (2007-10-22)<br/>[http://download.savannah.nongnu.org/releases/openexr/openexr-1.6.1.tar.gz openexr-1.6.1.tar.gz] (2007-10-22)
+
| style="padding:5px; text-align:left" | <tt>libpano\pano13</tt>
|-valign="top"
+
| style="padding:5px; text-align:left" | Panorama Tools and pano13 library (http://panotools.sourceforge.net/)<br/>Subversion repository<br/><tt>https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano</tt>
| <tt>enblend-enfuse-3.2</tt>  
+
|- valign="top"
| Enblend 3.2 and Enfuse 3.2 (http://enblend.sourceforge.net/)<br/>[http://downloads.sourceforge.net/enblend/enblend-enfuse-3.2.zip enblend-enfuse-3.2.zip] (2008-09-09)
+
| style="padding:5px; text-align:left" | <tt>libxml2-2.7.3</tt>
|-valign="top"
+
| style="padding:5px; text-align:left" | XML C parser and toolkit (http://www.xmlsoft.org/)<br/>[ftp://xmlsoft.org/libxml2/libxml2-sources-2.7.3.tar.gz <tt>libxml2-sources-2.7.3.tar.gz</tt>] (2009-01-18)
| <tt>exiftool</tt>
+
|- valign="top"
| ExifTool 7.69 (http://www.sno.phy.queensu.ca/~phil/exiftool)<br/>[http://www.sno.phy.queensu.ca/~phil/exiftool/exiftool-7.69.zip exiftool-7.69.zip] (2009-02-17)
+
| style="padding:5px; text-align:left" | <tt>UnxUtils</tt>
|-valign="top"
+
| style="padding:5px; text-align:left" | GNU utilities ported to win32 platform (http://sourceforge.net/projects/unxutils/)<br/>[http://downloads.sourceforge.net/unxutils/UnxUtils.zip <tt>UnxUtils.zip</tt>] (2007-03-01)
| <tt>exiv2-0.18</tt>
+
|- valign="top"
| Exiv2 C++ library 0.18 (http://www.exiv2.org/)<br/>[http://www.exiv2.org/exiv2-0.18.tar.gz exiv2-0.18.tar.gz] (2008-12-18)
+
| style="padding:5px; text-align:left" | <tt>wxWidgets-2.8.10</tt>
|-valign="top"
+
| style="padding:5px; text-align:left" | wxWidgets cross-platform GUI C++ framework 2.8.10 (http://www.wxwidgets.org/)<br/>[http://downloads.sourceforge.net/wxwindows/wxMSW-2.8.10.zip <tt>wxMSW-2.8.10.zip</tt>] (2009-03-17)
| <tt>expat-2.0.1</tt>
+
|- valign="top"
| Expat XML Parser library 2.0.1 (http://sourceforge.net/projects/expat/)<br/>[http://downloads.sourceforge.net/expat/expat-2.0.1.tar.gz expat-2.0.1.tar.gz] (2007-06-05)
+
! colspan="2" | Additional files only necessary for building a 64-bit SDK
|-valign="top"
+
|- valign="top"
| <tt>gettext</tt>
+
! style="padding:5px; text-align:left" width="30%" | Directory
| GNU gettext 0.13.1 and iconv library 1.9.1 (http://www.gnu.org/)<br/>[http://ftp.gnu.org/gnu/gettext/gettext-runtime-0.13.1.bin.woe32.zip gettext-runtime-0.13.1.bin.woe32.zip] (2004-01-20)<br/>[http://ftp.gnu.org/gnu/gettext/gettext-tools-0.13.1.bin.woe32.zip gettext-tools-0.13.1.bin.woe32.zip] (2004-01-20)<br/>[http://ftp.gnu.org/gnu/libiconv/libiconv-1.9.1.bin.woe32.zip libiconv/libiconv-1.9.1.bin.woe32.zip] (2004-01-20)
+
! style="padding:5px; text-align:left" | Description (Website)<br/>Download package (Date of the package)
|-valign="top"
+
|- valign="top"
| <tt>glew</tt>
+
| style="padding:5px; text-align:left" | <tt>(64-bit) libxmi-1.2-1</tt>  
| OpenGL Extension Wrangler Library (GLEW) 1.5.1 (http://glew.sourceforge.net/)<br/>[http://downloads.sourceforge.net/glew/glew-1.5.1-src.zip glew-1.5.1-src.zip] (2008-11-03)
+
| style="padding:5px; text-align:left" | GNU libxmi 2-D rasterization library (Win32 port) (http://gnuwin32.sourceforge.net)<br/> [http://downloads.sourceforge.net/gnuwin32/libxmi-1.2-1-src.zip <tt>libxmi-1.2-1-src.zip</tt>] (2004-04-16)<br/>
|-valign="top"
+
|- valign="top"
| <tt>libpano\pano13</tt>
+
| style="padding:5px; text-align:left" | <tt>(64-bit) STLport-5.2.1</tt>  
| pano13 library and applications of Panorama Tools (http://panotools.sourceforge.net/)<br/>Subversion repository<br/>https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano
+
| style="padding:5px; text-align:left" | STLport Standard Library (http://stlport.sourceforge.net/)<br/> [http://downloads.sourceforge.net/stlport/STLport-5.2.1.tar.gz <tt>STLport-5.2.1.tar.gz</tt>] (2008-12-10)<br/>
|-valign="top"
+
|- valign="top"
| <tt>libxml2-2.7.3</tt>
+
| style="padding:5px; text-align:left" | <tt>(64-bit) lcms-1.18a</tt>  
| XML C parser and toolkit (http://www.xmlsoft.org/)<br/>[ftp://xmlsoft.org/libxml2/libxml2-sources-2.7.3.tar.gz libxml2-sources-2.7.3.tar.gz] (2009-01-18)
+
| style="padding:5px; text-align:left" | LittleCms Color management library (http://www.littlecms.com)<br/> [http://www.littlecms.com/lcms-1.18a.zip <tt>lcms-1.18a.zip</tt>] (2009-04-19)<br/>
|-valign="top"
 
| <tt>UnxUtils</tt>
 
| GNU utilities ported to win32 platform (http://sourceforge.net/projects/unxutils/)<br/>[http://downloads.sourceforge.net/unxutils/UnxUtils.zip UnxUtils.zip] (2007-03-01)
 
|-valign="top"
 
| <tt>wxWidgets-2.8.9</tt>
 
| wxWidgets cross-platform GUI C++ framework 2.8.9 (http://www.wxwidgets.org/)<br/>[http://downloads.sourceforge.net/wxwindows/wxMSW-2.8.9.zip wxMSW-2.8.9.zip] (2008-09-22)
 
 
|}
 
|}
  
In the following subsections each component is discussed in detail. The order of the subsections seems random, but I applied the appraoch to describe the precompiled packages first, followed by the big packages, where some of the small packages depend on.
+
In the following subsections each component is discussed in detail. The order of the subsections seems random, but I applied the approach to describe the precompiled packages first, followed by the big packages, where some of the small packages depend on.
  
The decompress step of each component contains seemingly inconsistent namings of destination directories, because in components a subdirectory is specified as destination directory and in some steps only the base directory. This is due to the fact that some package archives contain a base  directory and some not. To check the right locations each result section of every component's description contains a summary of the expected files.  
+
The decompress step of each component contains seemingly inconsistent namings of destination directories, because in some components a subdirectory is specified as destination directory and in some steps only the base directory. This is due to the fact that some package archives contain a base  directory and some not. To check the right locations each result section of every component's description contains a summary of the expected files.  
  
=== Enblend and Enfuse ===
+
The SDK is currently outdated. The following changes are necessary to build Hugin:
 +
 
 +
{| class="wikitable" width="100%"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" width="30%" | Directory
 +
! style="padding:5px; text-align:left" | Description (Website)<br/>Download package
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <tt>freeglut_2.6.0</tt>
 +
| style="padding:5px; text-align:left" | Freeglut (http://freeglut.sourceforge.net/index.php)<br/> [http://prdownloads.sourceforge.net/freeglut/freeglut-2.6.0.tar.gz?download <tt>freeglut-2.6.0.tar.gz</tt>]
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <tt>make_3.81</tt>
 +
| style="padding:5px; text-align:left" | GNU make 3.81 (http://www.gnu.org/software/make/) <br/>[http://ftp.gnu.org/pub/gnu/make/make-3.81.tar.gz <tt>make-3.81.tar.gz</tt>] <br/> This package replaces UnxUtils.
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <tt>Templatized C++ Command Line Parser 1.2.0</tt>
 +
| style="padding:5px; text-align:left" | tclap (http://tclap.sourceforge.net/)<br/> [http://sourceforge.net/projects/tclap/files/tclap-1.2.0.tar.gz/download <tt>tclap-1.2.0.tar.gz</tt>]
 +
|}
 +
 
 +
 
 +
==== Diff Files ====
 +
In order to make compilation simple, a series of patch files are included below that contain all the necessary changes, not only to compile the SDK, but to optionally compile an x64 version of the SDK. When directed, you will need to apply the patch file specified. If you are compiling for x64, there may be additional patches you need to apply.
 +
 
 +
The download link for the patches is [https://bugs.launchpad.net/hugin/+bug/679695/+attachment/1741338/+files/hugin_patches.zip https://bugs.launchpad.net/hugin/+bug/679695/+attachment/1741338/+files/hugin_patches.zip]
 +
 
 +
In order to apply a patch, you will first have needed to follow directions for the [[#UnxUtils|UnxUtils]] step. You cannot apply any patches before that step. To apply a patch, follow these directions:
 +
<ol>
 +
<li>Start a Command Prompt by choosing Start -> Run and typing in "cmd.exe"</li>
 +
<li>On the Command Prompt, change directory to <tt><SDKHOME></tt><br/>
 +
'''Example'''
 +
<pre>
 +
C:\Program Files\Microsoft\Windows SDK\v6.1>d:
 +
 
 +
D:>cd \usr\src\SDK
 +
 
 +
D:\usr\src\SDK>
 +
</pre></li>
 +
<li>On the command prompt, enter the following commands without any line breaks and press the Return/Enter key, substituting <SDKHOME> where appropriate:<br/>
 +
<pre>
 +
set PATH=%PATH%;<SDKHOME>\UnxUtils\usr\local\wbin
 +
</pre>
 +
</li>
 +
<li>On the command prompt, enter the following commands without any line breaks and press the Return/Enter key, substituting <PATCHFILE> with the name of the patch file to apply:<br/>
 +
<pre>
 +
patch -p 0 -i <PATCHFILE>
 +
</pre>
 +
'''NOTE:''' On Vista and later systems, the filename "patch.exe" is a protected file name which will always result in a UAC prompt if the file does not include a manifest (which UnxUtils version does not). This can be worked around by copying the file <tt><SDKHOME>\UnxUtils\usr\local\wbin\patch.exe</tt> to another file not containing the name, such as <tt><SDKHOME>\UnxUtils\usr\local\wbin\apply_diff.exe</tt>. Then substitute the command <tt>'patch'</tt> in the above command with <tt>'apply_diff'</tt>
 +
</li>
 +
</ol>
 +
 
 +
'''Result'''
 +
 
 +
If everything worked, you should see a list of filenames that were patched.
 +
'''Example'''
 +
<pre>
 +
D:\usr\src\SDK>patch -p 0 -i libiconv-1.9.1.diff
 +
patching file 'libiconv-1.9.1/srclib/error.c'
 +
 
 +
D:\usr\src\SDK>
 +
</pre>
 +
 
 +
If there was an error, you may wish to consult the [[Hugin SDK (MSVC 2008) Patches]] page for instructions on what changes were contained in the patch.
 +
 
 +
=== UnxUtils ===
  
 
<ol>
 
<ol>
<li>Decompress the file <tt>enblend-enfuse-3.2.zip</tt> to directory <tt><SDKHOME></tt></li>
+
<li>Create the directory <tt><SDKHOME>\UnxUtils</tt></li>
 +
<li>Decompress the file <tt>UnxUtils.zip</tt> to created directory <tt><SDKHOME>\UnxUtils</tt></li>
 
</ol>
 
</ol>
  
 
'''Result'''
 
'''Result'''
  
The applications are stored in
+
The applications reside in
<tt><SDKHOME>\enblend-enfuse-3.2</tt>
+
<tt><SDKHOME>\UnxUtils\bin</tt> and
 +
<tt><SDKHOME>\UnxUtils\usr\local\wbin</tt>
  
 
=== ExifTool ===
 
=== ExifTool ===
Line 106: Line 220:
 
<ol>
 
<ol>
 
<li>Create the directory <tt><SDKHOME>\exiftool</tt></li>
 
<li>Create the directory <tt><SDKHOME>\exiftool</tt></li>
<li>Decompress the file <tt>exiftool-7.69.zip</tt> to <tt><SDKHOME>\exiftool</tt></li>
+
<li>Decompress the file <tt>exiftool-7.74.zip</tt> to <tt><SDKHOME>\exiftool</tt></li>
 
<li>Rename the file <tt>exiftool(-k).exe</tt> to <tt>exiftool.exe</tt></li>
 
<li>Rename the file <tt>exiftool(-k).exe</tt> to <tt>exiftool.exe</tt></li>
 
</ol>
 
</ol>
Line 112: Line 226:
 
'''Result'''
 
'''Result'''
  
The application is stored in
+
The application resides in
 
<tt><SDKHOME>\exiftool</tt>
 
<tt><SDKHOME>\exiftool</tt>
  
 
=== GetText ===
 
=== GetText ===
 
+
{| class="wikitable"
<ol>
+
|- valign="top"
 +
! style="padding:5px; text-align:left" | 32-Bit Directions
 +
! style="padding:5px; text-align:left" | 64-Bit Directions
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <ol>
 
<li>Create the directory <tt><SDKHOME>\gettext</tt></li>
 
<li>Create the directory <tt><SDKHOME>\gettext</tt></li>
 
<li>Decompress the following files to created directory <tt><SDKHOME>\gettext</tt>
 
<li>Decompress the following files to created directory <tt><SDKHOME>\gettext</tt>
Line 127: Line 245:
 
</li>
 
</li>
 
</ol>
 
</ol>
 +
| style="padding:5px; text-align:left" | <ol>
 +
<li>Create the directory <tt><SDKHOME>\gettext</tt></li>
 +
<li>Decompress the following files into the directory <tt><SDKHOME></tt>
 +
<ul>
 +
<li><tt>gettext-0.13.1.tar.gz</tt></li>
 +
<li><tt>libiconv-1.9.1.tar.gz</tt></li>
 +
</ul>
 +
After decompress, there should be two new folders in <tt><SDKHOME></tt>: <tt><SDKHOME>\gettext-0.13.1</tt> and <tt><SDKHOME>\libiconv-1.9.1</tt>
 +
</li>
 +
<li>Apply the <tt>libiconv-1.9.1.diff</tt> patch</li>
 +
<li>Apply the <tt>gettext-0.13.1.diff</tt> patch</li>
 +
<li>Open a Windows SDK prompt by choosing Start -> Programs -> Microsoft Windows SDK v6.1 -> CMD Shell</li>
 +
<li>On the command prompt, enter the following command without any line breaks and press the Return/Enter key:<br/>
 +
<pre>
 +
setenv /Release /x64 /xp
 +
</pre>
 +
It should now refresh and say
 +
<pre>
 +
Setting SDK environment relative to <path where you installed the SDK>
 +
Targeting Windows XP x64 RELEASE
 +
</pre></li>
 +
<li>On the command prompt, change directory to <SDKHOME>\libiconv-1.9.1<br/>
 +
'''Example'''
 +
<pre>
 +
C:\Program Files\Microsoft\Windows SDK\v6.1>d:
  
 +
D:>cd \usr\src\SDK\libiconv-1.9.1
 +
 +
D:\usr\src\SDK\libiconv-1.9.1>
 +
</pre></li>
 +
<li>On the command prompt, enter the following commands without any line breaks and press the Return/Enter key, substituting <SDKHOME> where appropriate:<br/>
 +
<pre>
 +
nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MT
 +
nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MT install PREFIX=<SDKHOME>\gettext
 +
cd ..\gettext-0.13.1
 +
nmake -f Makefile.msvc MFLAGS=-MT PREFIX=<SDKHOME>\gettext
 +
nmake -f Makefile.msvc MFLAGS=-MT install PREFIX=<SDKHOME>\gettext
 +
cd ..\libiconv-1.9.2-src
 +
nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MT distclean
 +
nmake -f Makefile.msvc MFLAGS=-MT PREFIX=<SDKHOME>\gettext
 +
nmake -f Makefile.msvc MFLAGS=-MT install PREFIX=<SDKHOME>\gettext
 +
</pre></li>
 +
<li>Close the Windows SDK command prompt window</li>
 +
</ol>
 +
|}
 
'''Result'''
 
'''Result'''
  
The applications are stored in
+
The applications reside in
 
<tt><SDKHOME>\gettext\bin</tt>
 
<tt><SDKHOME>\gettext\bin</tt>
  
The include files are stored in
+
The include files reside in
 
<tt><SDKHOME>\gettext\include</tt>
 
<tt><SDKHOME>\gettext\include</tt>
  
The libraries are stored in
+
The libraries reside in
 
<tt><SDKHOME>\gettext\lib</tt>
 
<tt><SDKHOME>\gettext\lib</tt>
 +
=== STLport (64-bit Only) ===
 +
<ol>
 +
<li>Decompress the file <tt>STLport-5.2.1.tar.gz</tt> to directory <tt><SDKHOME></tt></li>
 +
<li>Open a Windows SDK prompt by choosing Start -> Programs -> Microsoft Windows SDK v6.1 -> CMD Shell</li>
 +
<li>On the command prompt, enter the following command without any line breaks and press the Return/Enter key:<br/>
 +
<pre>
 +
setenv /Release /x64 /xp
 +
</pre>
 +
It should now refresh and say
 +
<pre>
 +
Setting SDK environment relative to <path where you installed the SDK>
 +
Targeting Windows XP x64 RELEASE
 +
</pre></li>
 +
<li>On the command prompt, change directory to <SDKHOME>\STLport-5.2.1<br/>
 +
'''Example'''
 +
<pre>
 +
C:\Program Files\Microsoft\Windows SDK\v6.1>d:
 +
 +
D:>cd \usr\src\SDK\STLport-5.2.1
 +
 +
D:\usr\src\SDK\STLport-5.2.1>
 +
</pre></li>
 +
<li>On the command prompt, enter the following commands without any line breaks and press the Return/Enter key:<br/>
 +
<pre>configure msvc9 --with-static-rtl
 +
cd build/lib
 +
nmake clean install</pre>
 +
</li>
 +
<li>Close the Windows SDK command prompt window</li>
 +
</ol>
  
=== UnxUtils ===
+
'''Result'''
 +
 
 +
The libraries reside in <tt><SDKHOME>\STLport-5.2.1\lib</tt>
  
 +
=== lcms-1.18 (64-bit Only) ===
 
<ol>
 
<ol>
<li>Create the directory <tt><SDKHOME>\UnxUtils</tt></li>
+
<li>Decompress the file <tt>lcms-1.18a.tar.gz</tt> to directory <tt><SDKHOME></tt></li>
<li>Decompress the file <tt>UnxUtils.zip</tt> to created directory <tt><SDKHOME>\UnxUtils</tt></li>
+
<li>Apply the <tt>lcms-1.18.diff</tt> patch</li>
 +
<li>Open the file <tt><SDKHOME>\lcms-1.18\Projects\VC2008\lcms.sln</tt></li>
 +
<li>Select "Release" in the Solution Configuration pull-down menu. Select "x64" in the Solution Platform pull-down menu</li>
 +
<li>Select project lcms in Solution Explorer, and then choose Build > Project Only > Build Only lcms</li>
 +
<li>Close Visual Studio C++ 2008 Express Edition</li>
 
</ol>
 
</ol>
  
 
'''Result'''
 
'''Result'''
  
The applications are stored in
+
The library resides in <tt><SDKHOME>\lcms-1.18\Lib\MS</tt>
<tt><SDKHOME>\UnxUtils\bin</tt> and
+
 
<tt><SDKHOME>\UnxUtils\usr\local\wbin</tt>
+
{| class="wikitable" width="100%"
 +
|-
 +
! style="padding:5px; text-align:left" | Note
 +
|-
 +
| style="padding:5px; text-align:left" | During build process temporary object files are stored in following directories
 +
<ul>
 +
<li><tt><SDKHOME>\lcms-1.18\Projects\VC2008\LibDebug</tt></li>
 +
<li><tt><SDKHOME>\lcms-1.18\Projects\VC2008\LibRelease</tt></li>
 +
</ul>
 +
Both directories may be deleted to save disk space.
 +
|}
 +
 
 +
=== libxmi-1.2.1 (64-bit Only) ===
 +
<ol>
 +
<li>Open the file <tt>libxmi-1.2-1.src.zip</tt> in 7-Zip</li>
 +
<li>Open the "src" folder by double-clicking</li>
 +
<li>Open the "libxmi" folder by double-clicking</li>
 +
<li>Open the "1.2" folder by double-clicking</li>
 +
<li>Extract "libxmi-1.2" to the directory <tt><SDKHOME></tt></li>
 +
<li>Apply the <tt>libxmi-1.2.diff</tt> patch</li>
 +
</ol>
 +
 
 +
'''Result'''
  
 +
The libxmi-1.2 sources now reside in <tt><SDKHOME>\libxmi-1.2</tt>
 
=== wxWidgets ===
 
=== wxWidgets ===
 
 
<ol>
 
<ol>
<li>Decompress the file <tt>wxMSW-2.8.9.zip</tt> to directory <tt><SDKHOME></tt></li>
+
<li>Decompress the file <tt>wxMSW-2.8.10.zip</tt> to directory <tt><SDKHOME></tt></li>
<li>Rename the directory <tt><SDKHOME>\wxMSW-2.8.9</tt> to <tt><SDKHOME>\wxWidgets-2.8.9</tt></li>
+
<li>Rename the directory <tt><SDKHOME>\wxMSW-2.8.10</tt> to <tt><SDKHOME>\wxWidgets-2.8.10</tt></li>
<li>Open the file <tt><SDKHOME>\wxWidgets-2.8.9\include\wx\msw\setup.h</tt></li>
+
<li>Apply the <tt>wxWidgets-2.8.10.diff</tt> patch [[Hugin SDK (MSVC 2008) Patches#wxWidgets]]</li>
<li>Search for following line
+
<li>
 +
{| class="wikitable" width="100%"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" width="50%" | 32-Bit Directions
 +
! style="padding:5px; text-align:left" | 64-Bit Directions
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | To open a Visual Studio command prompt choose Start > Programs > Microsoft Visual C++ 2008 Express Edition > Visual Studio Tools > Visual Studio 2008 Command Prompt
 +
| style="padding:5px; text-align:left" | <ol>
 +
<li>Open a Windows SDK prompt by choosing Start -> Programs -> Microsoft Windows SDK v6.1 -> CMD Shell</li>
 +
<li>On the command prompt, enter the following command without any line breaks and press the Return/Enter key:<br/>
 
<pre>
 
<pre>
#define wxUSE_GLCANVAS      0
+
setenv /Release /x64 /xp
 
</pre>
 
</pre>
and replace it by
+
It should now refresh and say
 
<pre>
 
<pre>
#define wxUSE_GLCANVAS      1
+
Setting SDK environment relative to <path where you installed the SDK>
</pre>
+
Targeting Windows XP x64 RELEASE
</li>
+
</pre></li>
<li>Save the file</li>
+
</ol>
<li>Open the file <tt><SDKHOME>\wxWidgets-2.8.9\src\jpeg\jpeglib.h</tt></li>
+
|}</li>
<li>Search for following line
+
 
<pre>
+
<li>On command prompt change directory to <tt><SDKHOME>\wxWidgets-2.8.10\build\msw</tt><br/>
#include "../src/jpeg/jconfig.h"
 
</pre>
 
and replace it by
 
<pre>
 
#include "jconfig.h"
 
</pre>
 
</li>
 
<li>Save the file</li>
 
<li>Open the file <tt><SDKHOME>\wxWidgets-2.8.9\src\tiff\tiffconf.h</tt></li>
 
<li>Search for following line
 
<pre>
 
#ifndef COMPRESSION_SUPPORT
 
</pre>
 
and extend it to
 
<pre>
 
#define TIF_PLATFORM_CONSOLE 1
 
#ifndef COMPRESSION_SUPPORT
 
#define ZIP_SUPPORT
 
</pre>
 
</li>
 
<li>Save the file</li>
 
<li>To open a Visual Studio command prompt choose Start > Programs > Microsoft Visual C++ 2008 Express Edition > Visual Studio Tools > Visual Studio 2008 Command Prompt</li>
 
<li>On command prompt change directory to <tt><SDKHOME>\wxWidgets-2.8.9\build\msw</tt><br/>
 
 
'''Example'''
 
'''Example'''
 
<pre>
 
<pre>
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
 
 
 
C:\Program Files\Microsoft Visual Studio 9.0\VC>d:
 
C:\Program Files\Microsoft Visual Studio 9.0\VC>d:
  
D:\>cd \usr\src\SDK\wxWidgets-2.8.9\build\msw
+
D:\>cd \usr\src\SDK\wxWidgets-2.8.10\build\msw
  
D:\usr\src\SDK\wxWidgets-2.8.9\build\msw>
+
D:\usr\src\SDK\wxWidgets-2.8.10\build\msw>
 
</pre>
 
</pre>
 
</li>
 
</li>
 
<li>Enter each of the following two commands without any line break and press the Return key
 
<li>Enter each of the following two commands without any line break and press the Return key
<pre>
+
{| class="wikitable"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" | 32-Bit Directions
 +
! style="padding:5px; text-align:left" | 64-Bit Directions
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <pre>
 
nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=0 USE_OPENGL=1 RUNTIME_LIBS=static
 
nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=0 USE_OPENGL=1 RUNTIME_LIBS=static
 
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=0 USE_OPENGL=1 RUNTIME_LIBS=static
 
nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=0 USE_OPENGL=1 RUNTIME_LIBS=static
 
</pre>
 
</pre>
 +
| style="padding:5px; text-align:left" | <pre>
 +
nmake -f makefile.vc BUILD=debug TARGET_CPU=AMD64 UNICODE=1 SHARED=0 USE_OPENGL=1 RUNTIME_LIBS=static
 +
nmake -f makefile.vc BUILD=release TARGET_CPU=AMD64 UNICODE=1 SHARED=0 USE_OPENGL=1 RUNTIME_LIBS=static
 +
</pre>
 +
|}
 
</li>
 
</li>
<li>Close the Visual Studio command prompt window</li>
+
<li>Close the Windows SDK command prompt window</li>
 +
<li>(64-bit Only)Rename the folder <tt><SDKHOME>wxWidgets-2.8.10\lib\vc_amd64_lib</tt> to <tt><SDKHOME>wxWidgets-2.8.10\lib\vc_lib</tt></li>
 
</ol>
 
</ol>
  
 
'''Result'''
 
'''Result'''
  
The include files are stored in
+
The include files reside in
<tt><SDKHOME>\wxWidgets-2.8.9\include</tt> and its sub-directories
+
<tt><SDKHOME>\wxWidgets-2.8.10\include</tt> and its subdirectories
  
 
Additional Hugin depends on following files
 
Additional Hugin depends on following files
 
<ul>
 
<ul>
<li><tt><SDKHOME>\wxWidgets-2.8.9\src\jpg\*.h</tt></li>
+
<li><tt><SDKHOME>\wxWidgets-2.8.10\src\jpg\*.h</tt></li>
<li><tt><SDKHOME>\wxWidgets-2.8.9\src\jpg\jconfig.vc</tt></li>
+
<li><tt><SDKHOME>\wxWidgets-2.8.10\src\jpg\jconfig.vc</tt></li>
<li><tt><SDKHOME>\wxWidgets-2.8.9\src\png\*.h</tt></li>
+
<li><tt><SDKHOME>\wxWidgets-2.8.10\src\png\*.h</tt></li>
<li><tt><SDKHOME>\wxWidgets-2.8.9\src\tiff\*.h</tt></li>
+
<li><tt><SDKHOME>\wxWidgets-2.8.10\src\tiff\*.h</tt></li>
<li><tt><SDKHOME>\wxWidgets-2.8.9\src\zlib\*.h</tt></li>
+
<li><tt><SDKHOME>\wxWidgets-2.8.10\src\zlib\*.h</tt></li>
 
</ul>
 
</ul>
  
The libraries are stored in
+
The libraries reside in
<tt><SDKHOME>\wxWidgets-2.8.9\lib\vc_lib</tt>
+
<tt><SDKHOME>\wxWidgets-2.8.10\lib\vc_lib</tt>
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Note
+
! style="padding:5px; text-align:left" | Note
|-valign="top" align="left"
+
|-
|<ul>
+
| style="padding:5px; text-align:left" | During build process temporary object files are stored in following directories
<li>During build process temporary object files are stored in following directories
+
{| class="wikitable" width="100%"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" | 32-Bit
 +
! style="padding:5px; text-align:left" | 64-Bit
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <ul>
 +
<li><tt><SDKHOME>\wxWidgets-2.8.10\build\msw\vc_mswu</tt></li>
 +
<li><tt><SDKHOME>\wxWidgets-2.8.10\build\msw\vc_mswud</tt></li>
 +
</ul>
 +
| style="padding:5px; text-align:left" |
 
<ul>
 
<ul>
<li><tt><SDKHOME>\wxWidgets-2.8.9\build\msw\vc_mswu</tt></li>
+
<li><tt><SDKHOME>\wxWidgets-2.8.10\build\msw\vc_mswu_amd64</tt></li>
<li><tt><SDKHOME>\wxWidgets-2.8.9\build\msw\vc_mswud</tt></li>
+
<li><tt><SDKHOME>\wxWidgets-2.8.10\build\msw\vc_mswud_amd64</tt></li>
</ul>
 
Both directories may be deleted to save disc space.</li>
 
 
</ul>
 
</ul>
 +
|}
 +
Both directories may be deleted to save disk space.
 
|}
 
|}
  
Line 248: Line 472:
  
 
<ol>
 
<ol>
<li>Decompress the file <tt>boost_1_38_0.7z</tt> to directory <tt><SDKHOME></tt></li>
+
<li>Decompress the file <tt>boost_1_39_0.7z</tt> to directory <tt><SDKHOME></tt></li>
<li>Decompress the file <tt>boost-jam-3.1.17-1-ntx86.zip</tt> to an arbitrary directory and copy the application <tt>bjam.exe</tt> to <tt><SDKHOME>\boost_1_38_0</tt></li>
+
<li>Decompress the file <tt>boost-jam-3.1.17-1-ntx86.zip</tt> to an arbitrary directory and copy the application <tt>bjam.exe</tt> to <tt><SDKHOME>\boost_1_39_0</tt></li>
 
<li>To open a Windows command prompt choose Start > Run, then enter <tt>cmd.exe</tt> and click OK.</li>
 
<li>To open a Windows command prompt choose Start > Run, then enter <tt>cmd.exe</tt> and click OK.</li>
<li>On command prompt change directory to <tt><SDKHOME>\boost_1_38_0</tt><br/>
+
<li>On command prompt change directory to <tt><SDKHOME>\boost_1_39_0</tt><br/>
 
'''Example'''
 
'''Example'''
 
<pre>
 
<pre>
Line 259: Line 483:
 
C:\Dokuments and Settings\Guido>d:
 
C:\Dokuments and Settings\Guido>d:
  
D:\>cd \usr\src\SDK\boost_1_38_0
+
D:\>cd \usr\src\SDK\boost_1_39_0
  
D:\usr\src\SDK\boost_1_38_0>
+
D:\usr\src\SDK\boost_1_39_0>
 
</pre>
 
</pre>
 
</li>
 
</li>
<li>Enter the following command without line breaks and press Return key
+
<li>Enter the following command without line breaks and press Return key<br/>
<pre>
+
{| class="wikitable"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" | 32-Bit Directions
 +
! style="padding:5px; text-align:left" | 64-Bit Directions
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <pre>
 
bjam --with-date_time --with-thread toolset=msvc variant=debug variant=release link=static threading=multi runtime-link=static stage
 
bjam --with-date_time --with-thread toolset=msvc variant=debug variant=release link=static threading=multi runtime-link=static stage
 
</pre>
 
</pre>
Line 272: Line 501:
 
...updated 56 targets...
 
...updated 56 targets...
  
d:\usr\src\SDK\boost_1_38_0>
+
d:\usr\src\SDK\boost_1_39_0>
 +
</pre>
 +
 
 +
Since September 2010 Hugin requieres also the boost libraries regex, filesystem, iostream and system, since November 2010 also the boost library signals. If you want to compile this version you need to compile Boost lib with
 +
<pre>
 +
bjam --with-date_time --with-thread --with-regex --with-filesystem --with-iostreams --with-system --with-signals toolset=msvc variant=debug variant=release link=static threading=multi runtime-link=static stage
 +
</pre>
 +
 
 +
| style="padding:5px; text-align:left" | <pre>
 +
bjam --with-date_time --with-thread toolset=msvc variant=debug variant=release link=static threading=multi runtime-link=static address-model=64 stage
 +
</pre>
 +
After <tt>bjam.exe</tt> finished a statement like the following should be printed in the command prompt window
 +
<pre>
 +
...updated 26 targets...
 
</pre>
 
</pre>
</li>
+
|}</li>
 +
 
 
<li>Close the Windows command prompt window</li>
 
<li>Close the Windows command prompt window</li>
 
</ol>
 
</ol>
Line 280: Line 523:
 
'''Result'''
 
'''Result'''
  
The include files are stored in
+
The include files reside in
<tt><SDKHOME>\boost_1_38_0</tt> and its sub-directory <tt>boost</tt>
+
<tt><SDKHOME>\boost_1_39_0</tt> and its subdirectory <tt>boost</tt>
  
The libraries are stored in
+
The libraries reside in
<tt><SDKHOME>\boost_1_38_0\stage\lib</tt>
+
<tt><SDKHOME>\boost_1_39_0\stage\lib</tt>
  
{| class="wikitable"
+
{| class="wikitable" width="100%"
|-valign="top"
+
|-
! Notes
+
! style="padding:5px; text-align:left" | Notes
 
|-
 
|-
 
|<ul>
 
|<ul>
<li>During build process temporary files are stored in <tt><SDKHOME>\boost_1_38_0\bin.v2</tt>. This directory may be deleted.
+
<li>During build process temporary files are generated in <tt><SDKHOME>\boost_1_39_0\bin.v2</tt>. This directory may be deleted to save disk space.
 
</li>
 
</li>
 
<li>Hugin needs only the two Boost libraries <tt>date_time</tt> and <tt>thread</tt>, thus only these two libraries have to be built.<br/>
 
<li>Hugin needs only the two Boost libraries <tt>date_time</tt> and <tt>thread</tt>, thus only these two libraries have to be built.<br/>
Line 300: Line 543:
 
There are about 7GB disc space needed during build of all libraries (3.5GB for libraries and the same amount for the temporary files).
 
There are about 7GB disc space needed during build of all libraries (3.5GB for libraries and the same amount for the temporary files).
 
</li>
 
</li>
<li>The Boost include files are often included by a statement like<br/>
+
<li>The Boost include files are typically included by a statement like<br/>
 
<tt>#include "boost/whatever.hpp"</tt><br/>
 
<tt>#include "boost/whatever.hpp"</tt><br/>
Therefore the base directory of the Boost include files is <tt><SDKHOME>\boost_1_38_0</tt>
+
Therefore the base directory of the Boost include files is <tt><SDKHOME>\boost_1_39_0</tt>
 
</li>
 
</li>
 
<li>Only the following libraries are needed to build a release version of Hugin:
 
<li>Only the following libraries are needed to build a release version of Hugin:
 
<ul>
 
<ul>
<li><tt>libboost_date_time-vc90-mt-s-1_38.lib</tt></li>
+
<li><tt>libboost_date_time-vc90-mt-s-1_39.lib</tt></li>
<li><tt>libboost_thread-vc90-mt-s-1_38.lib</tt></li>
+
<li><tt>libboost_thread-vc90-mt-s-1_39.lib</tt></li>
 
</ul>
 
</ul>
The files with "<tt>gd</tt>" in the filename, e.g. <tt>libboost_thread-vc90-mt-sgd-1_38.lib</tt>, are the debug libraries.
+
The files with "<tt>gd</tt>" in the filename, e.g. <tt>libboost_thread-vc90-mt-sgd-1_39.lib</tt>, are the debug libraries.
The library files without "<tt>-1_38</tt>" suffix are automatically generated copies of the libraries with version suffix. They are used by CMake to detect the library directory.
+
The library files without "<tt>-1_39</tt>" suffix are automatically generated copies of the libraries with version suffix. They are used by CMake to detect the library directory.
 
</li>
 
</li>
 
</ul>
 
</ul>
Line 328: Line 571:
 
<li>Decompress the file <tt>openexr-1.6.1.tar.gz</tt> to the same directory <tt><SDKHOME>\OpenEXR</tt><br/>
 
<li>Decompress the file <tt>openexr-1.6.1.tar.gz</tt> to the same directory <tt><SDKHOME>\OpenEXR</tt><br/>
 
After decompress there should only exist the two directories <tt>ilmbase-1.0.1</tt> and <tt>openexr-1.6.1</tt> in <tt><SDKHOME>\OpenEXR</tt></li>
 
After decompress there should only exist the two directories <tt>ilmbase-1.0.1</tt> and <tt>openexr-1.6.1</tt> in <tt><SDKHOME>\OpenEXR</tt></li>
<li>Open solution file <tt><SDKHOME>\OpenEXR\ilmbase-1.0.1\vc\vc8\IlmBase\IlmBase.sln</tt><br/>
+
<li>Apply the <tt>OpenEXR.diff</tt> patch [[Hugin SDK (MSVC 2008) Patches#OpenEXR]]</li>
The Visual Studio Conversion Wizard dialog appears. Click Next, select option No, click Next and Finish. Unselect the option "Show the conversion log when the wizard is closed" and click Close</li>
+
<li>Open solution file <tt><SDKHOME>\OpenEXR\ilmbase-1.0.1\vc\vc8\IlmBase\IlmBase.sln</tt></li>
<li>Due to the fact that the Visual Studio solutions of OpenEXR are configured to build dynamic libraries, some modifications are necessary to build the required static libraries:<br/>
 
 
 
For each project in Solution Explorer open the Property Pages dialog by choosing Project > Properties. Process the following steps for Debug and Release configuration. Some of the properties are not avaliable in every project, thus continue with next step.
 
 
 
<ul>
 
<li>Choose Configuration Properties > General. For Configuration Type property choose Static Library (.lib) if Dynamic Library (.dll) was selected.
 
</li>
 
<li>Choose Configuration Properties > C/C++ > Preprocessor. In the Preprocessor Definitions entry remove defines <tt>OPENEXR_DLL</tt>, <tt>_USRDLL</tt> and <tt>*_EXPORTS</tt> (all with suffix <tt>_EXPORTS</tt>).
 
</li>
 
<li>Choose Configuration Properties > C/C++ > Code Generation. For Runtime Library property choose Multithreaded-Debug (/MTd) in Debug configuration and Multithreaded (/MT) in Release configuration.
 
</li>
 
<li>Choose Configuration Properties > C/C++ > Code Generation. For Enable Enhanced Instruction Set property choose Not Set.
 
</li>
 
<li>Choose Configuration Properties > Build Events > Post-Build Event. In Command Line entry remove the <tt>createDLL</tt> command, but keep the <tt>install*.cmd</tt> command. For example in createDLL project only the statement "<tt>..\..\..\installCreateDLL.cmd $(IntDir)</tt>" should remain, in Half project only "<tt>..\..\..\installHalf.cmd $(IntDir)</tt>" etc.
 
</li>
 
</ul>
 
</li>
 
<li>Close Property Pages dialog</li>
 
 
<li>Select Debug in Solutions Configuration pull-down menu, and then choose Build > Build Solution</li>
 
<li>Select Debug in Solutions Configuration pull-down menu, and then choose Build > Build Solution</li>
 
<li>Select Release in Solutions Configuration pull-down menu, and then choose Build > Build Solution</li>
 
<li>Select Release in Solutions Configuration pull-down menu, and then choose Build > Build Solution</li>
<li>Open solution file <tt><SDKHOME>\OpenEXR\openexr-1.6.1\vc\vc8\OpenEXR\OpenEXR.sln</tt><br/>
+
<li>Open solution file <tt><SDKHOME>\OpenEXR\openexr-1.6.1\vc\vc8\OpenEXR\OpenEXR.sln</tt></li>
The Visual Studio Conversion Wizard dialog appears. Click Next, select option No, click Next and Finish. Unselect the option "Show the conversion log when the wizard is closed" and click Close</li>
 
<li>For project IlmImf do the same configuration property changes as in IlmBase solution described above</li>
 
<li>Right-click IlmImf in Solution Explorer, and then choose Properties from shortcut menu</li>
 
<li>In the Property Pages dialog do the following for Debug and Release configuration:
 
<ul>
 
<li>
 
Choose Configuration Properties > C/C++ > General. In Additional Include Directory entry enter following additional include directory:
 
<pre>
 
..\..\..\..\..\..\wxWidgets-2.8.9\src\zlib
 
</pre>
 
</li>
 
</ul>
 
 
<li>Choose Build > Batch Build</li>
 
<li>Choose Build > Batch Build</li>
<li>Select Build for Project IlmImf with Solution Config "Debug|Win32" and "Release|Win32"</li>
+
<li>Select Build for Project IlmImf with Solution Config <br/>
 +
{| class="wikitable"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" | 32-Bit
 +
! style="padding:5px; text-align:left" | 64-Bit
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | Solution Config: "Debug" with Platform: "Win32"<br/>
 +
Solution Config: "Release" with Platform: "Win32"
 +
| style="padding:5px; text-align:left" | Solution Config: "Debug" with Platform: "x64"<br/>
 +
Solution Config: "Release" with Platform: "x64"
 +
|}</li>
 
<li>Click Build</li>
 
<li>Click Build</li>
 
<li>Close Visual C++ 2008 Express Edition</li>
 
<li>Close Visual C++ 2008 Express Edition</li>
Line 371: Line 594:
 
'''Result'''
 
'''Result'''
  
The include files are stored in
+
The include files reside in
 
<tt><SDKHOME>\Deploy\include</tt>
 
<tt><SDKHOME>\Deploy\include</tt>
  
The libraries are stored in
+
The libraries reside in
 
<tt><SDKHOME>\Deploy\lib\Debug</tt> and
 
<tt><SDKHOME>\Deploy\lib\Debug</tt> and
 
<tt><SDKHOME>\Deploy\lib\Release</tt>
 
<tt><SDKHOME>\Deploy\lib\Release</tt>
 +
 +
=== Enblend and Enfuse ===
 +
{| class="wikitable"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" | 32-Bit Directions
 +
! style="padding:5px; text-align:left" | 64-Bit Directions
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <ol>
 +
<li>Decompress the file <tt>enblend-enfuse-3.2.zip</tt> to directory <tt><SDKHOME></tt></li>
 +
</ol>
 +
| style="padding:5px; text-align:left" | Enblend & Enfuse depend on the following SDK components:
 +
<ul>
 +
<li>wxWidgets</li>
 +
<li>OpenEXR</li>
 +
<li>lcms</li>
 +
<li>STLport</li>
 +
<li>boost</li>
 +
<li>libxmi</li>
 +
</ul>
 +
Prepare these components before Enblend & Enfuse.
 +
 +
<ol>
 +
<li>Decompress the file <tt>enblend-enfuse-3.2.tar.gz</tt> to directory <tt><SDKHOME></tt><br/>
 +
After decompression, you should now have a folder <tt><SDKHOME>\enblend-enfuse-3.2</tt></li>
 +
<li>Apply the <tt>enblend-enfuse-3.2.diff</tt> patch [[Hugin SDK (MSVC 2008) Patches#Enblend/Enfuse/libxmi]]</li>
 +
<li>Open the file <tt><SDKHOME>\enblend-enfuse-3.2\enblend_msvc2008.sln</tt></li>
 +
<li>Select Release in Solutions Configuration pull-down menu, choose x64 in the Solutions Platform pull-down menu, and then choose Build > Build Solution</li>
 +
<li>Close Visual C++ 2008 Express Edition</li>
 +
</ol>
 +
|}
 +
'''Result'''
 +
 +
The applications reside in <tt><SDKHOME>\enblend-enfuse-3.2</tt>
  
 
=== Expat ===
 
=== Expat ===
Line 382: Line 638:
 
<ol>
 
<ol>
 
<li>Decompress the file <tt>expat-2.0.1.tar.gz</tt> to directory <tt><SDKHOME></tt></li>
 
<li>Decompress the file <tt>expat-2.0.1.tar.gz</tt> to directory <tt><SDKHOME></tt></li>
<li>Open the file <tt><SDKHOME>\expat-2.0.1\Source\expat.dsw</tt><br/>
+
<li>Apply the <tt>expat-2.0.1.diff</tt> patch [[Hugin SDK (MSVC 2008) Patches#expat]]</li>
A  Visual C++ Project conversion dialog appears. Click "Yes To All".</li>
+
<li>Open the file <tt><SDKHOME>\expat-2.0.1\Source\expat.sln</tt></li>
 
<li>Choose Build > Batch Build</li>
 
<li>Choose Build > Batch Build</li>
<li>Select Build for Project expat_static with Solution Config "Debug|Win32" and "Release|Win32"</li>
+
<li>Select Build for Project expat_static with <br/>
 +
{| class="wikitable"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" | 32-Bit
 +
! style="padding:5px; text-align:left" | 64-Bit
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | Solution Config: "Debug" with Platform: "Win32"<br/>
 +
Solution Config: "Release" with Platform: "Win32"
 +
| style="padding:5px; text-align:left" | Solution Config: "Debug" with Platform: "x64"<br/>
 +
Solution Config: "Release" with Platform: "x64"
 +
|}</li>
 
<li>Click Build</li>
 
<li>Click Build</li>
 
<li>Close Visual C++ 2008 Express Edition</li>
 
<li>Close Visual C++ 2008 Express Edition</li>
Line 392: Line 658:
 
'''Result'''
 
'''Result'''
  
The include files are stored in
+
The include files reside in
 
<tt><SDKHOME>\expat-2.0.1\lib</tt>
 
<tt><SDKHOME>\expat-2.0.1\lib</tt>
  
The libraries are stored in
+
The libraries reside in
 
<tt><SDKHOME>\expat-2.0.1\win32\bin\Debug</tt> and
 
<tt><SDKHOME>\expat-2.0.1\win32\bin\Debug</tt> and
 
<tt><SDKHOME>\expat-2.0.1\win32\bin\Release</tt>
 
<tt><SDKHOME>\expat-2.0.1\win32\bin\Release</tt>
Line 410: Line 676:
  
 
<ol>
 
<ol>
<li>Decompress the file <tt>exiv2-0.18.tar.gz</tt> to directory <tt><SDKHOME></tt></li>
+
<li>Decompress the file <tt>exiv2-0.18.1.tar.gz</tt> to directory <tt><SDKHOME></tt></li>
<li>Open the file <tt><SDKHOME>\exiv2-0.18\src\exv_msvc.h</tt></li>
+
<li>Apply the <tt>exiv2-0.18.1.diff</tt> patch [[Hugin SDK (MSVC 2008) Patches#exiv2]]</li>
<li>Delete the following lines
+
<li>(64-bit Only)Apply the <tt>exiv2-0.18.1.x64.diff</tt> patch</li>
 
+
<li>Open solution file <tt><SDKHOME>\exiv2-0.18.1\msvc\exiv2.sln</tt></li>
<pre>
+
<li>In the Solution Explorer, select "exiv2lib"</li>
#if HAVE_LIBZ
+
<li>Select Debug in Solutions Configuration pull-down menu and your platform in the Solution Platform pull-down menu, and then choose Build > Build exiv2lib</li>
  #define EXV_HAVE_LIBZ
+
<li>Select Release in Solutions Configuration pull-down menu and your platform in the Solution Platform pull-down menu, and then choose Build > Build exiv2lib</li>
  #if    EXV_HAVE_DLL
 
    #ifdef  _DEBUG
 
      #pragma comment(lib,"../../../zlib-1.2.3/projects/visualc6/Win32_DLL_Debug/zlib1d.lib")
 
    #else
 
      #pragma comment(lib,"../../../zlib-1.2.3/projects/visualc6/Win32_DLL_Release/zlib1.lib")
 
    #endif
 
  #else
 
    #ifdef  _DEBUG
 
      #pragma comment(lib,"../../../zlib-1.2.3/projects/visualc6/Win32_LIB_Debug/zlibd.lib")
 
    #else
 
      #pragma comment(lib,"../../../zlib-1.2.3/projects/visualc6/Win32_LIB_Release/zlib.lib")
 
    #endif
 
  #endif
 
  #define EXV_HAVE_LIBZ
 
  // assist VC7.1 to compile vsnprintf
 
  #if (_MSC_VER < 1400) && !defined(vsnprintf)
 
  #define vsnprintf _vsnprintf
 
  #endif
 
#endif
 
</pre>
 
</li>
 
<li>Save the file</li>
 
<li>Open solution file <tt><SDKHOME>\exiv2-0.18\msvc\exiv2.sln</tt><br/>
 
The Visual Studio Conversion Wizard dialog appears. Click Next, select option No, click Next and Finish. Unselect the option "Show the conversion log when the wizard is closed" and click Close</li>
 
 
 
<li>Right-click exiv2lib in Solution Explorer, and then choose Properties from the shortcut menu</li>
 
 
 
<li>In the Property Pages dialog do the following for Debug and Release configuration:
 
<ul>
 
<li>Choose Configuration Properties > C/C++ > General. In Additional Include Directories entry replace
 
<pre>
 
../../../zlib-1.2.3
 
</pre>
 
by
 
<pre>
 
../../../wxWidgets-2.8.9/src/zlib
 
</pre>
 
</li>
 
</ul>
 
</li>
 
<li>Close Property Pages dialog</li>
 
<li>Choose Build > Batch Build</li>
 
<li>Select Build for Project exiv2lib with Solution Config "Debug|Win32" and "Release|Win32"</li>
 
<li>Click Build</li>
 
 
<li>Close Visual C++ 2008 Express Edition</li>
 
<li>Close Visual C++ 2008 Express Edition</li>
<li>Create the directory <tt><SDKHOME>\exiv2-0.18\msvc\lib</tt></li>
+
<li>Create the directory <tt><SDKHOME>\exiv2-0.18.1\msvc\lib</tt></li>
 
<li>Copy the following files to this directory and rename them as specified in Destination column.
 
<li>Copy the following files to this directory and rename them as specified in Destination column.
  
 
{| class="wikitable"
 
{| class="wikitable"
|-valign="top" align="left"
+
|- valign="top"
! Source
+
! style="padding:5px; text-align:left" | Source
! Destination
+
! style="padding:5px; text-align:left" | Destination
 
|-
 
|-
| <SDKHOME>\exiv2-0.18\msvc\bin\Debug\exiv2.lib
+
| style="padding:5px; text-align:left" | <tt><SDKHOME>\exiv2-0.18.1\msvc\bin\Debug\exiv2.lib</tt>
| <SDKHOME>\exiv2-0.18\msvc\lib\exiv2d.lib
+
| style="padding:5px; text-align:left" | <tt><SDKHOME>\exiv2-0.18.1\msvc\lib\''exiv2d''.lib</tt>
 
|-
 
|-
| <SDKHOME>\exiv2-0.18\msvc\bin\Release\exiv2.lib
+
| style="padding:5px; text-align:left" | <tt><SDKHOME>\exiv2-0.18.1\msvc\bin\Release\exiv2.lib</tt>
| <SDKHOME>\exiv2-0.18\msvc\lib\exiv2.lib
+
| style="padding:5px; text-align:left" | <tt><SDKHOME>\exiv2-0.18.1\msvc\lib\exiv2.lib</tt>
 
|-
 
|-
| <SDKHOME>\expat-2.0.1\win32\bin\Debug\libexpatMT.lib
+
| style="padding:5px; text-align:left" | <tt><SDKHOME>\expat-2.0.1\win32\bin\Debug\libexpatMT.lib</tt>
| <SDKHOME>\exiv2-0.18\msvc\lib\libexpatd.lib
+
| style="padding:5px; text-align:left" | <tt><SDKHOME>\exiv2-0.18.1\msvc\lib\''libexpatd''.lib</tt>
 
|-
 
|-
| <SDKHOME>\expat-2.0.1\win32\bin\Release\libexpatMT.lib
+
| style="padding:5px; text-align:left" | <tt><SDKHOME>\expat-2.0.1\win32\bin\Release\libexpatMT.lib</tt>
| <SDKHOME>\exiv2-0.18\msvc\lib\libexpat.lib
+
| style="padding:5px; text-align:left" | <tt><SDKHOME>\exiv2-0.18.1\msvc\lib\''libexpat''.lib</tt>
 
|}
 
|}
 
</li>
 
</li>
 
</ol>
 
</ol>
  
'''Result'''
+
'''Comment'''
 
 
The include files are stored in
 
<tt><SDKHOME>\exiv2-0.18\msvc\include</tt>
 
  
The libraries are stored in
+
When using exiv2 0.19 (which works better with bigger files), copy and rename also the following files:
<tt><SDKHOME>\exiv2-0.18\msvc\lib</tt>
 
  
 
{| class="wikitable"
 
{| class="wikitable"
|-valign="top" align="left"
+
|- valign="top"
! Note
+
! style="padding:5px; text-align:left" | Source
 +
! style="padding:5px; text-align:left" | Destination
 +
|-
 +
| style="padding:5px; text-align:left" | <tt><SDKHOME>\exiv2-0.19\msvc\xmpsdk\Debug\xmpsdk.lib</tt>
 +
| style="padding:5px; text-align:left" | <tt><SDKHOME>\exiv2-0.19\msvc\lib\''xmpsdkd''.lib</tt>
 
|-
 
|-
|<ul>
+
| style="padding:5px; text-align:left" | <tt><SDKHOME>\exiv2-0.19\msvc\xmpsdk\Release\xmpsdk.lib</tt>
<li>The code pattern in <tt>exv_msvc.h</tt> must be deleted to disable auto-linking of zlib library, because the compression library wxzlib of wxWidgets is used here.</li>
+
| style="padding:5px; text-align:left" | <tt><SDKHOME>\exiv2-0.19\msvc\lib\xmpsdk.lib</tt>
</ul>
 
 
|}
 
|}
 +
 +
'''Result'''
 +
 +
The include files reside in
 +
<tt><SDKHOME>\exiv2-0.18.1\msvc\include</tt>
 +
 +
The libraries reside in
 +
<tt><SDKHOME>\exiv2-0.18.1\msvc\lib</tt>
  
 
=== GLEW ===
 
=== GLEW ===
Line 506: Line 735:
 
<ol>
 
<ol>
 
<li>Decompress the file <tt>glew-1.5.1-src.zip</tt> to directory <tt><SDKHOME></tt></li>
 
<li>Decompress the file <tt>glew-1.5.1-src.zip</tt> to directory <tt><SDKHOME></tt></li>
<li>Open the file <tt><SDKHOME>\glew\build\vc6\glew.dsw</tt><br/>
+
<li>Apply the <tt>glew.diff</tt> patch [[Hugin SDK (MSVC 2008) Patches#glew]]</li>
A Visual C++ Project conversion dialog appears. Click "Yes To All".</li>
+
<li>Open the file <tt><SDKHOME>\glew\build\vc6\glew.sln</tt></li>
 
<li>Choose Build > Batch Build</li>
 
<li>Choose Build > Batch Build</li>
<li>Select Build for Project glew_static with Solution Config "Debug|Win32" and "Release|Win32"</li>
+
<li>Select Build for Project glew_static with Solution Config <br/>
 +
{| class="wikitable"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" | 32-Bit
 +
! style="padding:5px; text-align:left" | 64-Bit
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | Solution Config: "Debug" with Platform: "Win32"<br/>
 +
Solution Config: "Release" with Platform: "Win32"
 +
| style="padding:5px; text-align:left" | Solution Config: "Debug" with Platform: "x64"<br/>
 +
Solution Config: "Release" with Platform: "x64"
 +
|}</li>
 
<li>Click Build</li>
 
<li>Click Build</li>
 
<li>Close Visual C++ 2008 Express Edition</li>
 
<li>Close Visual C++ 2008 Express Edition</li>
Line 516: Line 755:
 
'''Result'''
 
'''Result'''
  
The include files are stored in
+
The include files reside in
 
<tt><SDKHOME>\glew\include</tt>
 
<tt><SDKHOME>\glew\include</tt>
  
The libraries are stored in
+
The libraries reside in
 
<tt><SDKHOME>\glew\lib</tt>
 
<tt><SDKHOME>\glew\lib</tt>
  
{| class="wikitable"
+
{| class="wikitable" width="100%"
|-valign="top" align="left"
+
|-
! Note
+
! style="padding:5px; text-align:left" | Note
 
|-
 
|-
|<ul>
+
| style="padding:5px; text-align:left" | The GLEW include files are typically included by a statement like<br/><tt>#include "GL/glew.h"</tt><br/>Therefore the base directory of the GLEW include files is <tt><SDKHOME>\glew\include</tt>
<li>The GLEW include files are typically included by a statement like<br/>
 
<tt>#include "GL/glew.h"</tt><br/>
 
therefore the base directory of the GLEW include files is <tt><SDKHOME>\glew\include</tt>
 
</li>
 
</ul>
 
 
|}
 
|}
  
Line 545: Line 779:
 
<li>Set two windows environment variables:
 
<li>Set two windows environment variables:
 
<ul>
 
<ul>
<li>Set variable <tt>WXWIDGETS_HOME</tt> to wxWidgets base folder <tt><SDKHOME>\wxWindgets-2.8.9</tt></li>
+
<li>Set variable <tt>WXWIDGETS_HOME</tt> to wxWidgets base folder <tt><SDKHOME>\wxWidgets-2.8.10</tt></li>
<li>Set variable <tt>JDK_HOME</tt> to Java SE Development Kit's destination directory name. This directory name was shown during the setup, e.g. <tt>C:\Program Files\Java\jdk1.6.0_12</tt></li>
+
<li>Set variable <tt>JDK_HOME</tt> to Java SE Development Kit's destination directory name. This directory name was shown during the setup, e.g. <tt>C:\Program Files\Java\jdk1.6.0_13</tt></li>
 
</ul>
 
</ul>
 
To take effect on changes of environment variables you may have to logout and login.
 
To take effect on changes of environment variables you may have to logout and login.
 
</li>
 
</li>
 
<li>Create the directory <tt><SDKHOME>\libpano\pano13</tt></li>
 
<li>Create the directory <tt><SDKHOME>\libpano\pano13</tt></li>
<li>In explorer right-click on the created directory, and then choose SVN Checkout from the shortcut menu. The Checkout dialog appears.</li>
+
<li>In explorer right-click on created directory <tt><SDKHOME>\libpano\pano13</tt></li>, and then choose SVN Checkout from the shortcut menu. The Checkout dialog appears.</li>
<li>In text feld "URL of repository" enter following address:
+
<li>In "URL of repository" field enter following address:
 
<pre>
 
<pre>
 
https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano
 
https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano
Line 559: Line 793:
 
<li>Click OK</li>
 
<li>Click OK</li>
 
<li>After checkout has finished click OK</li>
 
<li>After checkout has finished click OK</li>
<li>Open solution file <tt><SDKHOME>\libpano\pano13\libpano.sln</tt><br/>
+
<li>Apply the <tt>libpano.diff</tt> patch [[Hugin SDK (MSVC 2008) Patches#Panorama Tools]]</li>
The Visual Studio Conversion Wizard dialog appears. Click Next, select option No, click Next and Finish. Unselect the option "Show the conversion log when the wizard is closed." and click Close</li>
+
<li>Open solution file <tt><SDKHOME>\libpano\pano13\libpano.sln</tt></li>
 +
<li>Select your platform in the Solution Platform pull-down menu</li>
 
<li>Select "Debug LIB CMD" in Solution Configuration pull-down menu</li>
 
<li>Select "Debug LIB CMD" in Solution Configuration pull-down menu</li>
 
<li>Select project pano13 in Solution Explorer, and then choose Build > Project Only > Build Only pano13</li>
 
<li>Select project pano13 in Solution Explorer, and then choose Build > Project Only > Build Only pano13</li>
Line 569: Line 804:
 
'''Result'''
 
'''Result'''
  
The applications are stored in
+
The applications reside in
 
<tt><SDKHOME>\libpano\pano13\tools\Release</tt>
 
<tt><SDKHOME>\libpano\pano13\tools\Release</tt>
  
The include files are stored in
+
The include files reside in
 
<tt><SDKHOME>\libpano\pano13</tt>
 
<tt><SDKHOME>\libpano\pano13</tt>
  
The libraries are stored in
+
The libraries reside in
 
"<tt><SDKHOME>\libpano\pano13\Debug LIB CMD</tt>" and  
 
"<tt><SDKHOME>\libpano\pano13\Debug LIB CMD</tt>" and  
 
"<tt><SDKHOME>\libpano\pano13\Release LIB CMD</tt>"
 
"<tt><SDKHOME>\libpano\pano13\Release LIB CMD</tt>"
  
{| class="wikitable"
+
{| class="wikitable" width="100%"
|-valigen="top" align="left"
+
|- valign="top"
! Note
+
! style="padding:5px; text-align:left" | Note
|-
+
|- valign="top"
|<ul>
+
| style="padding:5px; text-align:left" | The applications have to be built in release version only. Therefore only pano13 library has to be built in Debug configuration.
<li>The applications have to be build in release version only. Therefore only pano13 library is built in Debug configuration</li>
 
</ul>
 
 
|}
 
|}
  
Line 592: Line 825:
 
<ol>
 
<ol>
 
<li>Decompress the file <tt>libxml2-sources-2.7.3.tar.gz</tt> to directory <tt><SDKHOME></tt></li>
 
<li>Decompress the file <tt>libxml2-sources-2.7.3.tar.gz</tt> to directory <tt><SDKHOME></tt></li>
<li>To open a Visual Studio command prompt choose Start > Programs > Microsoft Visual C++ 2008 Express Edition > Visual Studio Tools > Visual Studio 2008 Command Prompt</li>
+
<li>
 +
{| class="wikitable"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" | 32-Bit Directions
 +
! style="padding:5px; text-align:left" | 64-Bit Directions
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | <ol><li>To open a Visual Studio command prompt choose Start > Programs > Microsoft Visual C++ 2008 Express Edition > Visual Studio Tools > Visual Studio 2008 Command Prompt</li></ol>
 +
| style="padding: 5px; text-align:left" | <ol>
 +
<li>Open a Windows SDK prompt by choosing Start -> Programs -> Microsoft Windows SDK v6.1 -> CMD Shell</li>
 +
<li>On the command prompt, enter the following command without any line breaks and press the Return/Enter key:<br/>
 +
<pre>
 +
setenv /Release /x64 /xp
 +
</pre>
 +
It should now refresh and say
 +
<pre>
 +
Setting SDK environment relative to <path where you installed the SDK>
 +
Targeting Windows XP x64 RELEASE
 +
</pre></li>
 +
</ol>
 +
|}
 +
</li>
 +
 
 
<li>On command prompt change directory to <tt><SDKHOME>\libxml2-2.7.3\win32</tt><br/>
 
<li>On command prompt change directory to <tt><SDKHOME>\libxml2-2.7.3\win32</tt><br/>
 
'''Example'''
 
'''Example'''
Line 605: Line 859:
 
</pre>
 
</pre>
  
Enter each of the following two commands without any line break and press the Return key.
+
<li>Enter each of the following two commands without any line break and press the Return key.
 
 
 
<pre>
 
<pre>
 
cscript configure.js ftp=no http=no iconv=no cruntime=/MT
 
cscript configure.js ftp=no http=no iconv=no cruntime=/MT
Line 616: Line 869:
 
'''Result'''
 
'''Result'''
  
The include files are stored in
+
The include files reside in
<tt><SDKHOME>\SDK\libxml2-2.7.3\include</tt>
+
<tt><SDKHOME>\libxml2-2.7.3\include</tt>
  
The libraries are stored in
+
The libraries reside in
 
<tt><SDKHOME>\libxml2-2.7.3\win32\bin.msvc</tt>
 
<tt><SDKHOME>\libxml2-2.7.3\win32\bin.msvc</tt>
  
{| class="wikitable"
+
{| class="wikitable" width="100%"
|-valign="top" align="left"
+
|-
! Note
+
! style="padding:5px; text-align:left" | Notes
 
|-
 
|-
|<ul>
+
|  style="padding:5px; text-align:left" | <ul>
<li>During build process temporary object files are stored in the directory
+
<li>During build process temporary object files are generated in directory
 
<tt><SDKHOME>\libxml2-2.7.3\win32\int.a.msvc</tt>.
 
<tt><SDKHOME>\libxml2-2.7.3\win32\int.a.msvc</tt>.
 
This directories may be deleted to save disc space.</li>
 
This directories may be deleted to save disc space.</li>
<li>Hugin does not depend on this library, but autopano-sift-C. Therefore it is included in this SDK</li>
+
<li>Hugin does not depend on libxml2 library, but autopano-sift-C. Therefore it is included in this SDK.</li>
 
</ul>
 
</ul>
 
|}
 
|}
Line 639: Line 892:
 
<ul>
 
<ul>
 
<li>libxml2</li>
 
<li>libxml2</li>
<li>Panoramo Tools pano13 library</li>
+
<li>Panorama Tool's pano13 library</li>
 
<li>wxWidgets</li>
 
<li>wxWidgets</li>
 
</ul>
 
</ul>
Line 646: Line 899:
 
<ol>
 
<ol>
 
<li>Create the directory <tt><SDKHOME>\autopano-sift-C-trunk</tt></li>
 
<li>Create the directory <tt><SDKHOME>\autopano-sift-C-trunk</tt></li>
<li>In explorer right-click on the created directory, and then choose SVN Checkout from the shortcut menu. The Checkout dialog appears.</li>
+
<li>In explorer right-click on created directory <tt><SDKHOME>\autopano-sift-C-trunk</tt>, and then choose SVN Checkout from the shortcut menu. The Checkout dialog appears.</li>
<li>In text field "URL of repository" enter following address:
+
<li>In "URL of repository" field enter following address:
 
<pre>
 
<pre>
 
https://hugin.svn.sourceforge.net/svnroot/hugin/autopano-sift-C/trunk
 
https://hugin.svn.sourceforge.net/svnroot/hugin/autopano-sift-C/trunk
Line 655: Line 908:
 
<li>After checkout has finished click OK</li>
 
<li>After checkout has finished click OK</li>
 
<li>Start CMake (cmake-gui). The CMake dialog appears.</li>
 
<li>Start CMake (cmake-gui). The CMake dialog appears.</li>
<li>In text field "Where is the source code" enter
+
<li>In "Where is the source code" field enter
 
<pre>
 
<pre>
 
<SDKHOME>\autopano-sift-C-trunk
 
<SDKHOME>\autopano-sift-C-trunk
 
</pre>
 
</pre>
 
Alternatively click Browse Source to point to this directory</li>
 
Alternatively click Browse Source to point to this directory</li>
<li>In text field "Where to build the binaries" enter
+
<li>In "Where to build the binaries" field enter
 
<pre>
 
<pre>
 
<SDKHOME>\autopano-sift-C
 
<SDKHOME>\autopano-sift-C
Line 668: Line 921:
 
If a dialog appears, which asks to create the build directoy, click Yes.<br/>
 
If a dialog appears, which asks to create the build directoy, click Yes.<br/>
 
A dialog appears, where you can specify the generator for the project.</li>
 
A dialog appears, where you can specify the generator for the project.</li>
<li>Select "Visual Studio 9 2008" and select option "Use default native compilers"</li>
+
<li>
 +
{| class="wikitable"
 +
|- valign="top"
 +
! style="padding:5px; text-align:left" | 32-Bit Directions
 +
! style="padding:5px; text-align:left" | 64-Bit Directions
 +
|- valign="top"
 +
| style="padding:5px; text-align:left" | Select "Visual Studio 9 2008" and select option "Use default native compilers"
 +
| style="padding:5px; text-align:left" | Select "Visual Studio 9 2008 Win64" and select option "Use default native compilers"
 +
|}</li>
 
<li>Click Finish<br/>
 
<li>Click Finish<br/>
 
In the Name and Value list the entries are shown with red background.</li>
 
In the Name and Value list the entries are shown with red background.</li>
Line 684: Line 945:
 
'''Result'''
 
'''Result'''
  
The applications are stored in
+
The applications reside in
 
<tt><SDKHOME>\autopano-sift-C\bin</tt>
 
<tt><SDKHOME>\autopano-sift-C\bin</tt>
  
The manual pages are stored in
+
The manual pages reside in
 
<tt><SDKHOME>\autopano-sift-C\shared</tt>
 
<tt><SDKHOME>\autopano-sift-C\shared</tt>
  
{| class="wikitable"
+
{| class="wikitable" width="100%"
|-valign="top" align="left"
+
|- valign="top"
! Note
+
!  style="padding:5px; text-align:left" | Note
|-
+
|- valign="top"
|<ul>
+
| style="padding:5px; text-align:left" | To save disk space you may delete all files and directories in <tt><SDKHOME>\autopano-sift-C</tt>, except the subdirectories <tt>bin</tt> and <tt>shared</tt>.
<li>To save disc space you may delete all files and directories in <tt><SDKHOME>\autopano-sift-C</tt>, except the sub-directories <tt>bin</tt> and <tt>shared</tt>.</li>
 
</ul>
 
 
|}
 
|}
  
[[User:Guido|Guido]] 01:31, 28 February 2009 (CET)
+
=== Freeglut ===
 +
<ol>
 +
<li>Decompress the file <tt>freeglut-2.6.0.tar.gz</tt> to directory <tt><SDKHOME></tt></li>
 +
<li>Open the file <tt><SDKHOME>\freeglut-2.6.0\VisualStudio2008Static\freeglut.sln</tt></li>
 +
<li>Select "Debug" in the Solution Configuration pull-down menu. </li>
 +
<li>Select project freeglut in Solution Explorer, and then choose Build > Project Only > Build Only freeglut</li>
 +
<li>Select "Release" in the Solution Configuration pull-down menu. </li>
 +
<li>Select project freeglut in Solution Explorer, and then choose Build > Project Only > Build Only freeglut</li>
 +
<li>Close Visual Studio C++ 2008 Express Edition</li>
 +
</ol>
 +
 
 +
'''Result'''
 +
 
 +
The library resides in <tt><SDKHOME>\freeglut-2.6.0\VisualStudio2008Static\Debug</tt> and <tt><SDKHOME>\freeglut-2.6.0\VisualStudio2008Static\Release</tt>
 +
 
 +
=== GNU Make ===
 +
<ol>
 +
<li>Decompress the file <tt>make-3.81.tar.gz</tt> to directory <tt><SDKHOME></tt></li>
 +
<li>Open the file <tt><SDKHOME>\make-3.81\make_msvc_net2003.sln</tt> (Confirm convertion.)</li>
 +
<li>Select "Release" in the Solution Configuration pull-down menu. </li>
 +
<li>Select project make_msvc.net2003 Solution Explorer, and then choose Build > Project</li>
 +
<li>Close Visual Studio C++ 2008 Express Edition</li>
 +
<li>Rename the file <tt><SDKHOME>\make-3.81\Release\make_msvc.net2003.exe</tt> to <tt><SDKHOME>\make-3.81\Release\make.exe</tt>
 +
</ol>
 +
 
 +
'''Result'''
 +
 
 +
The executable make.exe resides in <tt><SDKHOME>\make-3.81\Release\</tt>
 +
 
 +
(All other files in this directory can be deleted to save space.)
 +
 
 +
=== Templatized C++ Command Line Parser Library (tclap) ===
 +
 
 +
<ol>
 +
<li>Decompress the file <tt>tclap-1.2.0.tar.gz</tt> to directory <tt><SDKHOME>\tclap-1.2.0</tt></li>
 +
</ol>
 +
 
 +
'''Result'''
 +
 
 +
The include files reside in
 +
<tt><SDKHOME>\tclap-1.2.0\include\tclap</tt>
 +
 
 +
 
 +
[[User:Ryansleevi|Ryan Sleevi]] 17:00, 9 May 2009 (UTC)
  
 
[[Category:Software:Hugin]]
 
[[Category:Software:Hugin]]
 +
[[Category:Software:Hugin:Compiling]]
 
[[Category:Software:Platform:Windows]]
 
[[Category:Software:Platform:Windows]]

Latest revision as of 01:30, 17 July 2011

Hugin depends on different components like libraries and tools, which are not available on a common Windows system. All these components can be combined to a Hugin Software Development Kit (SDK). This article gives step-by-step instructions to build such SDK for Hugin using Microsoft Visual C++ 2008 (MSVC 2008) Express Edition and precompiled dependencies.

While this article is designed for developing a native 32-bit version, additional instructions are provided so that a 64-bit version of the Hugin SDK can be compiled. When appropriate, steps that only apply to the 32-bit or 64-bit versions will be noted as (32-bit) or (64-bit), and you can safely ignore them if you are not targeting that particular version. In order to compile a 64-bit version of the Hugin SDK, one does not need a 64-bit computer. However, if they wish to test or debug the binaries, or for some projects (such as OpenEXR) which execute compiled binaries as part of their build step, this will not necessarily be possible on Win32.

First of all an overview is given over the contents of the SDK and the tools that are necessary to build the SDK.

The build steps for each component are written like a walk-through and annotated on the end of each section.

Maybe some of the described tools and packages, especially those fetched from Subversion (SVN) repository, will change over time and/or become obsolete. Hence it is likely that some steps will become invalid or won't work any more.

The SDK is structured, that each component resides in its own subdirectory. This approach is different to other platforms like Linux, where some common directories are available to store include files, libraries and applications. The files of a component are spread over all these directories. Both approaches to structure the files in a file system have its assets and drawbacks.

The base directory of the SDK is denoted as <SDKHOME> in this article. Replace <SDKHOME> by directory name where you store the SDK on your system. In the examples <SDKHOME> is replaced by the directory name D:\usr\src\SDK.

Prerequisites

To build the SDK some tools are required that are listed in the table below. Download the tools and install them. The destination directory of each tool is arbitrary. If you are uncertain, choose the default given in the setup dialog of each tool.

Tool Description
Microsoft Visual C++ 2008 Express Edition Compiler, Debugger and IDE
Visit Download page
If compiling for 64-bit, you will need to enable Express Edition to compile 64-bit projects.
(x64 Only) Microsoft Windows SDK for Windows Server 2008 and .NET Framework 3.5 x64 Compiler, Libraries, and Headers
Visit [1]
When installing, make sure to include the Visual C++ compilers for x64 (under Developer Tools) and the Header Files and x64 libraries (under Windows Headers and Libraries). Optionally consider installing all of the SDK, as it makes compiling generally easier.
CMake 2.6.4 (2009-05-05) Generator of solution and project files for MSVC 2008
Visit Download page or download cmake-2.6.4-win32-x86.exe
TortoiseSVN 1.6.1.16129 (2009-02-13) Tool to handle source codes in Subversion repositories
Visit Download page or download
TortoiseSVN-1.6.1.16129-win32-svn-1.6.1.msi (32-bit) or
TortoiseSVN-1.6.1.16129-x64-svn-1.6.1.msi (64-bit)
TortoiseHg 1.0.4 (2010-06-11) Tool to handle source codes in Mercurial repositories
Visit Download page
7-Zip 4.65 (2009-02-03) Tool to decompress the source packages
Visit Download page or download 7z465.exe (32-bit) or 7z465-x64.msi (64-bit)
Java SE Development Kit 6 Update 13 Java Development Kit (JDK)
Visit Download page
Microsoft HTML Help Workshop HTML Help Compiler
Visit Download page for htmlhelp.exe

Contents of the Hugin SDK

Precompiled Version (32-bit only)

For those who want to avoid to build the whole SDK from scratch a precompiled SDK is available.

Precompiled Hugin SDK (Win32)
Hugin-SDK-20090509-win32.exe (76 MiB, 2009-05-09)

Building from Source

The contents of the Hugin SDK is shown in the following table. Download the packages, except the packages fetched from Subversion repository.

Directory Description (Website)
Download package (Date of the package)
autopano-sift-C Autopano-SIFT-C (http://hugin.sourceforge.net/)
Subversion repository
https://hugin.svn.sourceforge.net/svnroot/hugin/autopano-sift-C/trunk
boost_1_39_0 Boost C++ libraries 1.39.0 (http://www.boost.org/)
boost_1_39_0.7z (2009-02-09)
boost-jam-3.1.17-1-ntx86.zip (2008-11-29)
Deploy
OpenEXR
OpenEXR library 1.6.1 and IlmBase libraries 1.0.1 (http://www.openexr.com/)
ilmbase-1.0.1.tar.gz (2007-10-22)
openexr-1.6.1.tar.gz (2007-10-22)
enblend-enfuse-3.2 Enblend 3.2 and Enfuse 3.2 (http://enblend.sourceforge.net/)
32-Bit 64-Bit
enblend-enfuse-3.2.zip (2008-09-09) enblend-enfuse-3.2.tar.gz (2008-09-09)
exiftool ExifTool 7.74 (http://www.sno.phy.queensu.ca/~phil/exiftool)
exiftool-7.74.zip (2009-02-17)
exiv2-0.18.1 Exiv2 C++ library 0.18 (http://www.exiv2.org/)
exiv2-0.18.1.tar.gz (2009-04-06)
expat-2.0.1 Expat XML Parser library 2.0.1 (http://sourceforge.net/projects/expat/)
expat-2.0.1.tar.gz (2007-06-05)
gettext GNU gettext 0.13.1 and iconv library 1.9.1 (http://www.gnu.org/)
32-Bit 64-Bit
glew OpenGL Extension Wrangler Library (GLEW) 1.5.1 (http://glew.sourceforge.net/)
glew-1.5.1-src.zip (2008-11-03)
libpano\pano13 Panorama Tools and pano13 library (http://panotools.sourceforge.net/)
Subversion repository
https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano
libxml2-2.7.3 XML C parser and toolkit (http://www.xmlsoft.org/)
libxml2-sources-2.7.3.tar.gz (2009-01-18)
UnxUtils GNU utilities ported to win32 platform (http://sourceforge.net/projects/unxutils/)
UnxUtils.zip (2007-03-01)
wxWidgets-2.8.10 wxWidgets cross-platform GUI C++ framework 2.8.10 (http://www.wxwidgets.org/)
wxMSW-2.8.10.zip (2009-03-17)
Additional files only necessary for building a 64-bit SDK
Directory Description (Website)
Download package (Date of the package)
(64-bit) libxmi-1.2-1 GNU libxmi 2-D rasterization library (Win32 port) (http://gnuwin32.sourceforge.net)
libxmi-1.2-1-src.zip (2004-04-16)
(64-bit) STLport-5.2.1 STLport Standard Library (http://stlport.sourceforge.net/)
STLport-5.2.1.tar.gz (2008-12-10)
(64-bit) lcms-1.18a LittleCms Color management library (http://www.littlecms.com)
lcms-1.18a.zip (2009-04-19)

In the following subsections each component is discussed in detail. The order of the subsections seems random, but I applied the approach to describe the precompiled packages first, followed by the big packages, where some of the small packages depend on.

The decompress step of each component contains seemingly inconsistent namings of destination directories, because in some components a subdirectory is specified as destination directory and in some steps only the base directory. This is due to the fact that some package archives contain a base directory and some not. To check the right locations each result section of every component's description contains a summary of the expected files.

The SDK is currently outdated. The following changes are necessary to build Hugin:

Directory Description (Website)
Download package
freeglut_2.6.0 Freeglut (http://freeglut.sourceforge.net/index.php)
freeglut-2.6.0.tar.gz
make_3.81 GNU make 3.81 (http://www.gnu.org/software/make/)
make-3.81.tar.gz
This package replaces UnxUtils.
Templatized C++ Command Line Parser 1.2.0 tclap (http://tclap.sourceforge.net/)
tclap-1.2.0.tar.gz


Diff Files

In order to make compilation simple, a series of patch files are included below that contain all the necessary changes, not only to compile the SDK, but to optionally compile an x64 version of the SDK. When directed, you will need to apply the patch file specified. If you are compiling for x64, there may be additional patches you need to apply.

The download link for the patches is https://bugs.launchpad.net/hugin/+bug/679695/+attachment/1741338/+files/hugin_patches.zip

In order to apply a patch, you will first have needed to follow directions for the UnxUtils step. You cannot apply any patches before that step. To apply a patch, follow these directions:

  1. Start a Command Prompt by choosing Start -> Run and typing in "cmd.exe"
  2. On the Command Prompt, change directory to <SDKHOME>
    Example
    C:\Program Files\Microsoft\Windows SDK\v6.1>d:
    
    D:>cd \usr\src\SDK
    
    D:\usr\src\SDK>
    
  3. On the command prompt, enter the following commands without any line breaks and press the Return/Enter key, substituting <SDKHOME> where appropriate:
    set PATH=%PATH%;<SDKHOME>\UnxUtils\usr\local\wbin
    
  4. On the command prompt, enter the following commands without any line breaks and press the Return/Enter key, substituting <PATCHFILE> with the name of the patch file to apply:
    patch -p 0 -i <PATCHFILE>
    

    NOTE: On Vista and later systems, the filename "patch.exe" is a protected file name which will always result in a UAC prompt if the file does not include a manifest (which UnxUtils version does not). This can be worked around by copying the file <SDKHOME>\UnxUtils\usr\local\wbin\patch.exe to another file not containing the name, such as <SDKHOME>\UnxUtils\usr\local\wbin\apply_diff.exe. Then substitute the command 'patch' in the above command with 'apply_diff'

Result

If everything worked, you should see a list of filenames that were patched. Example

D:\usr\src\SDK>patch -p 0 -i libiconv-1.9.1.diff
patching file 'libiconv-1.9.1/srclib/error.c'

D:\usr\src\SDK>

If there was an error, you may wish to consult the Hugin SDK (MSVC 2008) Patches page for instructions on what changes were contained in the patch.

UnxUtils

  1. Create the directory <SDKHOME>\UnxUtils
  2. Decompress the file UnxUtils.zip to created directory <SDKHOME>\UnxUtils

Result

The applications reside in <SDKHOME>\UnxUtils\bin and <SDKHOME>\UnxUtils\usr\local\wbin

ExifTool

  1. Create the directory <SDKHOME>\exiftool
  2. Decompress the file exiftool-7.74.zip to <SDKHOME>\exiftool
  3. Rename the file exiftool(-k).exe to exiftool.exe

Result

The application resides in <SDKHOME>\exiftool

GetText

32-Bit Directions 64-Bit Directions
  1. Create the directory <SDKHOME>\gettext
  2. Decompress the following files to created directory <SDKHOME>\gettext
    • gettext-runtime-0.13.1.bin.woe32.zip
    • gettext-tools-0.13.1.bin.woe32.zip
    • libiconv-1.9.1.bin.woe32.zip
  1. Create the directory <SDKHOME>\gettext
  2. Decompress the following files into the directory <SDKHOME>
    • gettext-0.13.1.tar.gz
    • libiconv-1.9.1.tar.gz

    After decompress, there should be two new folders in <SDKHOME>: <SDKHOME>\gettext-0.13.1 and <SDKHOME>\libiconv-1.9.1

  3. Apply the libiconv-1.9.1.diff patch
  4. Apply the gettext-0.13.1.diff patch
  5. Open a Windows SDK prompt by choosing Start -> Programs -> Microsoft Windows SDK v6.1 -> CMD Shell
  6. On the command prompt, enter the following command without any line breaks and press the Return/Enter key:
    setenv /Release /x64 /xp
    

    It should now refresh and say

    Setting SDK environment relative to <path where you installed the SDK>
    Targeting Windows XP x64 RELEASE
    
  7. On the command prompt, change directory to <SDKHOME>\libiconv-1.9.1
    Example
    C:\Program Files\Microsoft\Windows SDK\v6.1>d:
    
    D:>cd \usr\src\SDK\libiconv-1.9.1
    
    D:\usr\src\SDK\libiconv-1.9.1>
    
  8. On the command prompt, enter the following commands without any line breaks and press the Return/Enter key, substituting <SDKHOME> where appropriate:
    nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MT
    nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MT install PREFIX=<SDKHOME>\gettext
    cd ..\gettext-0.13.1
    nmake -f Makefile.msvc MFLAGS=-MT PREFIX=<SDKHOME>\gettext
    nmake -f Makefile.msvc MFLAGS=-MT install PREFIX=<SDKHOME>\gettext
    cd ..\libiconv-1.9.2-src
    nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MT distclean
    nmake -f Makefile.msvc MFLAGS=-MT PREFIX=<SDKHOME>\gettext
    nmake -f Makefile.msvc MFLAGS=-MT install PREFIX=<SDKHOME>\gettext
    
  9. Close the Windows SDK command prompt window

Result

The applications reside in <SDKHOME>\gettext\bin

The include files reside in <SDKHOME>\gettext\include

The libraries reside in <SDKHOME>\gettext\lib

STLport (64-bit Only)

  1. Decompress the file STLport-5.2.1.tar.gz to directory <SDKHOME>
  2. Open a Windows SDK prompt by choosing Start -> Programs -> Microsoft Windows SDK v6.1 -> CMD Shell
  3. On the command prompt, enter the following command without any line breaks and press the Return/Enter key:
    setenv /Release /x64 /xp
    

    It should now refresh and say

    Setting SDK environment relative to <path where you installed the SDK>
    Targeting Windows XP x64 RELEASE
    
  4. On the command prompt, change directory to <SDKHOME>\STLport-5.2.1
    Example
    C:\Program Files\Microsoft\Windows SDK\v6.1>d:
    
    D:>cd \usr\src\SDK\STLport-5.2.1
    
    D:\usr\src\SDK\STLport-5.2.1>
    
  5. On the command prompt, enter the following commands without any line breaks and press the Return/Enter key:
    configure msvc9 --with-static-rtl
    cd build/lib
    nmake clean install
  6. Close the Windows SDK command prompt window

Result

The libraries reside in <SDKHOME>\STLport-5.2.1\lib

lcms-1.18 (64-bit Only)

  1. Decompress the file lcms-1.18a.tar.gz to directory <SDKHOME>
  2. Apply the lcms-1.18.diff patch
  3. Open the file <SDKHOME>\lcms-1.18\Projects\VC2008\lcms.sln
  4. Select "Release" in the Solution Configuration pull-down menu. Select "x64" in the Solution Platform pull-down menu
  5. Select project lcms in Solution Explorer, and then choose Build > Project Only > Build Only lcms
  6. Close Visual Studio C++ 2008 Express Edition

Result

The library resides in <SDKHOME>\lcms-1.18\Lib\MS

Note
During build process temporary object files are stored in following directories
  • <SDKHOME>\lcms-1.18\Projects\VC2008\LibDebug
  • <SDKHOME>\lcms-1.18\Projects\VC2008\LibRelease

Both directories may be deleted to save disk space.

libxmi-1.2.1 (64-bit Only)

  1. Open the file libxmi-1.2-1.src.zip in 7-Zip
  2. Open the "src" folder by double-clicking
  3. Open the "libxmi" folder by double-clicking
  4. Open the "1.2" folder by double-clicking
  5. Extract "libxmi-1.2" to the directory <SDKHOME>
  6. Apply the libxmi-1.2.diff patch

Result

The libxmi-1.2 sources now reside in <SDKHOME>\libxmi-1.2

wxWidgets

  1. Decompress the file wxMSW-2.8.10.zip to directory <SDKHOME>
  2. Rename the directory <SDKHOME>\wxMSW-2.8.10 to <SDKHOME>\wxWidgets-2.8.10
  3. Apply the wxWidgets-2.8.10.diff patch Hugin SDK (MSVC 2008) Patches#wxWidgets
  4. 32-Bit Directions 64-Bit Directions
    To open a Visual Studio command prompt choose Start > Programs > Microsoft Visual C++ 2008 Express Edition > Visual Studio Tools > Visual Studio 2008 Command Prompt
    1. Open a Windows SDK prompt by choosing Start -> Programs -> Microsoft Windows SDK v6.1 -> CMD Shell
    2. On the command prompt, enter the following command without any line breaks and press the Return/Enter key:
      setenv /Release /x64 /xp
      

      It should now refresh and say

      Setting SDK environment relative to <path where you installed the SDK>
      Targeting Windows XP x64 RELEASE
      
  5. On command prompt change directory to <SDKHOME>\wxWidgets-2.8.10\build\msw
    Example
    C:\Program Files\Microsoft Visual Studio 9.0\VC>d:
    
    D:\>cd \usr\src\SDK\wxWidgets-2.8.10\build\msw
    
    D:\usr\src\SDK\wxWidgets-2.8.10\build\msw>
    
  6. Enter each of the following two commands without any line break and press the Return key
    32-Bit Directions 64-Bit Directions
    nmake -f makefile.vc BUILD=debug UNICODE=1 SHARED=0 USE_OPENGL=1 RUNTIME_LIBS=static
    nmake -f makefile.vc BUILD=release UNICODE=1 SHARED=0 USE_OPENGL=1 RUNTIME_LIBS=static
    
    nmake -f makefile.vc BUILD=debug TARGET_CPU=AMD64 UNICODE=1 SHARED=0 USE_OPENGL=1 RUNTIME_LIBS=static
    nmake -f makefile.vc BUILD=release TARGET_CPU=AMD64 UNICODE=1 SHARED=0 USE_OPENGL=1 RUNTIME_LIBS=static
    
  7. Close the Windows SDK command prompt window
  8. (64-bit Only)Rename the folder <SDKHOME>wxWidgets-2.8.10\lib\vc_amd64_lib to <SDKHOME>wxWidgets-2.8.10\lib\vc_lib

Result

The include files reside in <SDKHOME>\wxWidgets-2.8.10\include and its subdirectories

Additional Hugin depends on following files

  • <SDKHOME>\wxWidgets-2.8.10\src\jpg\*.h
  • <SDKHOME>\wxWidgets-2.8.10\src\jpg\jconfig.vc
  • <SDKHOME>\wxWidgets-2.8.10\src\png\*.h
  • <SDKHOME>\wxWidgets-2.8.10\src\tiff\*.h
  • <SDKHOME>\wxWidgets-2.8.10\src\zlib\*.h

The libraries reside in <SDKHOME>\wxWidgets-2.8.10\lib\vc_lib

Note
During build process temporary object files are stored in following directories
32-Bit 64-Bit
  • <SDKHOME>\wxWidgets-2.8.10\build\msw\vc_mswu
  • <SDKHOME>\wxWidgets-2.8.10\build\msw\vc_mswud
  • <SDKHOME>\wxWidgets-2.8.10\build\msw\vc_mswu_amd64
  • <SDKHOME>\wxWidgets-2.8.10\build\msw\vc_mswud_amd64

Both directories may be deleted to save disk space.

Boost

  1. Decompress the file boost_1_39_0.7z to directory <SDKHOME>
  2. Decompress the file boost-jam-3.1.17-1-ntx86.zip to an arbitrary directory and copy the application bjam.exe to <SDKHOME>\boost_1_39_0
  3. To open a Windows command prompt choose Start > Run, then enter cmd.exe and click OK.
  4. On command prompt change directory to <SDKHOME>\boost_1_39_0
    Example
    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.
    
    C:\Dokuments and Settings\Guido>d:
    
    D:\>cd \usr\src\SDK\boost_1_39_0
    
    D:\usr\src\SDK\boost_1_39_0>
    
  5. Enter the following command without line breaks and press Return key
    32-Bit Directions 64-Bit Directions
    bjam --with-date_time --with-thread toolset=msvc variant=debug variant=release link=static threading=multi runtime-link=static stage
    

    After bjam.exe finished a statement like the following should be printed in the command prompt window

    ...updated 56 targets...
    
    d:\usr\src\SDK\boost_1_39_0>
    

    Since September 2010 Hugin requieres also the boost libraries regex, filesystem, iostream and system, since November 2010 also the boost library signals. If you want to compile this version you need to compile Boost lib with

    bjam --with-date_time --with-thread --with-regex --with-filesystem --with-iostreams --with-system --with-signals toolset=msvc variant=debug variant=release link=static threading=multi runtime-link=static stage
    
    bjam --with-date_time --with-thread toolset=msvc variant=debug variant=release link=static threading=multi runtime-link=static address-model=64 stage
    

    After bjam.exe finished a statement like the following should be printed in the command prompt window

    ...updated 26 targets...
    
  6. Close the Windows command prompt window

Result

The include files reside in <SDKHOME>\boost_1_39_0 and its subdirectory boost

The libraries reside in <SDKHOME>\boost_1_39_0\stage\lib

Notes
  • During build process temporary files are generated in <SDKHOME>\boost_1_39_0\bin.v2. This directory may be deleted to save disk space.
  • Hugin needs only the two Boost libraries date_time and thread, thus only these two libraries have to be built.
    If you want to build all Boost libraries enter following command on the Windows command prompt instead of the command described above and press Return key.
    bjam -–build-type=complete toolset=msvc stage
    

    There are about 7GB disc space needed during build of all libraries (3.5GB for libraries and the same amount for the temporary files).

  • The Boost include files are typically included by a statement like
    #include "boost/whatever.hpp"
    Therefore the base directory of the Boost include files is <SDKHOME>\boost_1_39_0
  • Only the following libraries are needed to build a release version of Hugin:
    • libboost_date_time-vc90-mt-s-1_39.lib
    • libboost_thread-vc90-mt-s-1_39.lib

    The files with "gd" in the filename, e.g. libboost_thread-vc90-mt-sgd-1_39.lib, are the debug libraries. The library files without "-1_39" suffix are automatically generated copies of the libraries with version suffix. They are used by CMake to detect the library directory.

OpenEXR

OpenEXR depends on following SDK component:

  • wxWidgets

Prepare this component before OpenEXR.

  1. Create the directory <SDKHOME>\OpenEXR
  2. Decompress the file ilmbase-1.0.1.tar.gz to created directory <SDKHOME>\OpenEXR
  3. Decompress the file openexr-1.6.1.tar.gz to the same directory <SDKHOME>\OpenEXR
    After decompress there should only exist the two directories ilmbase-1.0.1 and openexr-1.6.1 in <SDKHOME>\OpenEXR
  4. Apply the OpenEXR.diff patch Hugin SDK (MSVC 2008) Patches#OpenEXR
  5. Open solution file <SDKHOME>\OpenEXR\ilmbase-1.0.1\vc\vc8\IlmBase\IlmBase.sln
  6. Select Debug in Solutions Configuration pull-down menu, and then choose Build > Build Solution
  7. Select Release in Solutions Configuration pull-down menu, and then choose Build > Build Solution
  8. Open solution file <SDKHOME>\OpenEXR\openexr-1.6.1\vc\vc8\OpenEXR\OpenEXR.sln
  9. Choose Build > Batch Build
  10. Select Build for Project IlmImf with Solution Config
    32-Bit 64-Bit
    Solution Config: "Debug" with Platform: "Win32"

    Solution Config: "Release" with Platform: "Win32"

    Solution Config: "Debug" with Platform: "x64"

    Solution Config: "Release" with Platform: "x64"

  11. Click Build
  12. Close Visual C++ 2008 Express Edition

Result

The include files reside in <SDKHOME>\Deploy\include

The libraries reside in <SDKHOME>\Deploy\lib\Debug and <SDKHOME>\Deploy\lib\Release

Enblend and Enfuse

32-Bit Directions 64-Bit Directions
  1. Decompress the file enblend-enfuse-3.2.zip to directory <SDKHOME>
Enblend & Enfuse depend on the following SDK components:
  • wxWidgets
  • OpenEXR
  • lcms
  • STLport
  • boost
  • libxmi

Prepare these components before Enblend & Enfuse.

  1. Decompress the file enblend-enfuse-3.2.tar.gz to directory <SDKHOME>
    After decompression, you should now have a folder <SDKHOME>\enblend-enfuse-3.2
  2. Apply the enblend-enfuse-3.2.diff patch Hugin SDK (MSVC 2008) Patches#Enblend/Enfuse/libxmi
  3. Open the file <SDKHOME>\enblend-enfuse-3.2\enblend_msvc2008.sln
  4. Select Release in Solutions Configuration pull-down menu, choose x64 in the Solutions Platform pull-down menu, and then choose Build > Build Solution
  5. Close Visual C++ 2008 Express Edition

Result

The applications reside in <SDKHOME>\enblend-enfuse-3.2

Expat

  1. Decompress the file expat-2.0.1.tar.gz to directory <SDKHOME>
  2. Apply the expat-2.0.1.diff patch Hugin SDK (MSVC 2008) Patches#expat
  3. Open the file <SDKHOME>\expat-2.0.1\Source\expat.sln
  4. Choose Build > Batch Build
  5. Select Build for Project expat_static with
    32-Bit 64-Bit
    Solution Config: "Debug" with Platform: "Win32"

    Solution Config: "Release" with Platform: "Win32"

    Solution Config: "Debug" with Platform: "x64"

    Solution Config: "Release" with Platform: "x64"

  6. Click Build
  7. Close Visual C++ 2008 Express Edition

Result

The include files reside in <SDKHOME>\expat-2.0.1\lib

The libraries reside in <SDKHOME>\expat-2.0.1\win32\bin\Debug and <SDKHOME>\expat-2.0.1\win32\bin\Release

Exiv2

Exiv2 depends on following SDK components:

  • wxWidgets
  • GetText
  • Expat

Prepare these components before Exiv2.

  1. Decompress the file exiv2-0.18.1.tar.gz to directory <SDKHOME>
  2. Apply the exiv2-0.18.1.diff patch Hugin SDK (MSVC 2008) Patches#exiv2
  3. (64-bit Only)Apply the exiv2-0.18.1.x64.diff patch
  4. Open solution file <SDKHOME>\exiv2-0.18.1\msvc\exiv2.sln
  5. In the Solution Explorer, select "exiv2lib"
  6. Select Debug in Solutions Configuration pull-down menu and your platform in the Solution Platform pull-down menu, and then choose Build > Build exiv2lib
  7. Select Release in Solutions Configuration pull-down menu and your platform in the Solution Platform pull-down menu, and then choose Build > Build exiv2lib
  8. Close Visual C++ 2008 Express Edition
  9. Create the directory <SDKHOME>\exiv2-0.18.1\msvc\lib
  10. Copy the following files to this directory and rename them as specified in Destination column.
    Source Destination
    <SDKHOME>\exiv2-0.18.1\msvc\bin\Debug\exiv2.lib <SDKHOME>\exiv2-0.18.1\msvc\lib\exiv2d.lib
    <SDKHOME>\exiv2-0.18.1\msvc\bin\Release\exiv2.lib <SDKHOME>\exiv2-0.18.1\msvc\lib\exiv2.lib
    <SDKHOME>\expat-2.0.1\win32\bin\Debug\libexpatMT.lib <SDKHOME>\exiv2-0.18.1\msvc\lib\libexpatd.lib
    <SDKHOME>\expat-2.0.1\win32\bin\Release\libexpatMT.lib <SDKHOME>\exiv2-0.18.1\msvc\lib\libexpat.lib

Comment

When using exiv2 0.19 (which works better with bigger files), copy and rename also the following files:

Source Destination
<SDKHOME>\exiv2-0.19\msvc\xmpsdk\Debug\xmpsdk.lib <SDKHOME>\exiv2-0.19\msvc\lib\xmpsdkd.lib
<SDKHOME>\exiv2-0.19\msvc\xmpsdk\Release\xmpsdk.lib <SDKHOME>\exiv2-0.19\msvc\lib\xmpsdk.lib

Result

The include files reside in <SDKHOME>\exiv2-0.18.1\msvc\include

The libraries reside in <SDKHOME>\exiv2-0.18.1\msvc\lib

GLEW

  1. Decompress the file glew-1.5.1-src.zip to directory <SDKHOME>
  2. Apply the glew.diff patch Hugin SDK (MSVC 2008) Patches#glew
  3. Open the file <SDKHOME>\glew\build\vc6\glew.sln
  4. Choose Build > Batch Build
  5. Select Build for Project glew_static with Solution Config
    32-Bit 64-Bit
    Solution Config: "Debug" with Platform: "Win32"

    Solution Config: "Release" with Platform: "Win32"

    Solution Config: "Debug" with Platform: "x64"

    Solution Config: "Release" with Platform: "x64"

  6. Click Build
  7. Close Visual C++ 2008 Express Edition

Result

The include files reside in <SDKHOME>\glew\include

The libraries reside in <SDKHOME>\glew\lib

Note
The GLEW include files are typically included by a statement like
#include "GL/glew.h"
Therefore the base directory of the GLEW include files is <SDKHOME>\glew\include

Panorama Tools

Panorama Tools depends on following SDK component:

  • wxWidgets

Prepare this component before Panoroma Tools.

  1. Set two windows environment variables:
    • Set variable WXWIDGETS_HOME to wxWidgets base folder <SDKHOME>\wxWidgets-2.8.10
    • Set variable JDK_HOME to Java SE Development Kit's destination directory name. This directory name was shown during the setup, e.g. C:\Program Files\Java\jdk1.6.0_13

    To take effect on changes of environment variables you may have to logout and login.

  2. Create the directory <SDKHOME>\libpano\pano13
  3. In explorer right-click on created directory <SDKHOME>\libpano\pano13
  4. , and then choose SVN Checkout from the shortcut menu. The Checkout dialog appears.
  5. In "URL of repository" field enter following address:
    https://panotools.svn.sourceforge.net/svnroot/panotools/trunk/libpano
    
  6. Click OK
  7. After checkout has finished click OK
  8. Apply the libpano.diff patch Hugin SDK (MSVC 2008) Patches#Panorama Tools
  9. Open solution file <SDKHOME>\libpano\pano13\libpano.sln
  10. Select your platform in the Solution Platform pull-down menu
  11. Select "Debug LIB CMD" in Solution Configuration pull-down menu
  12. Select project pano13 in Solution Explorer, and then choose Build > Project Only > Build Only pano13
  13. Select "Release LIB CMD" in Solution Configuration pull-down menu, and then choose Build > Build Solution
  14. Close Visual C++ 2008 Express Edition

Result

The applications reside in <SDKHOME>\libpano\pano13\tools\Release

The include files reside in <SDKHOME>\libpano\pano13

The libraries reside in "<SDKHOME>\libpano\pano13\Debug LIB CMD" and "<SDKHOME>\libpano\pano13\Release LIB CMD"

Note
The applications have to be built in release version only. Therefore only pano13 library has to be built in Debug configuration.

libxml2

  1. Decompress the file libxml2-sources-2.7.3.tar.gz to directory <SDKHOME>
  2. 32-Bit Directions 64-Bit Directions
    1. To open a Visual Studio command prompt choose Start > Programs > Microsoft Visual C++ 2008 Express Edition > Visual Studio Tools > Visual Studio 2008 Command Prompt
    1. Open a Windows SDK prompt by choosing Start -> Programs -> Microsoft Windows SDK v6.1 -> CMD Shell
    2. On the command prompt, enter the following command without any line breaks and press the Return/Enter key:
      setenv /Release /x64 /xp
      

      It should now refresh and say

      Setting SDK environment relative to <path where you installed the SDK>
      Targeting Windows XP x64 RELEASE
      
  3. On command prompt change directory to <SDKHOME>\libxml2-2.7.3\win32
    Example
    Setting environment for using Microsoft Visual Studio 2008 x86 tools.
    
    C:\Program Files\Microsoft Visual Studio 9.0\VC>d:
    
    D:\>cd \usr\src\SDK\libxml2-2.7.3\win32 
    
    D:\usr\src\SDK\libxml2-2.7.3\win32>
    
  4. Enter each of the following two commands without any line break and press the Return key.
    cscript configure.js ftp=no http=no iconv=no cruntime=/MT
    nmake -f makefile.msvc libxmla
    

Result

The include files reside in <SDKHOME>\libxml2-2.7.3\include

The libraries reside in <SDKHOME>\libxml2-2.7.3\win32\bin.msvc

Notes
  • During build process temporary object files are generated in directory <SDKHOME>\libxml2-2.7.3\win32\int.a.msvc. This directories may be deleted to save disc space.
  • Hugin does not depend on libxml2 library, but autopano-sift-C. Therefore it is included in this SDK.

autopano-sift-C

Autopano-SIFT-C depends on following SDK components:

  • libxml2
  • Panorama Tool's pano13 library
  • wxWidgets

Prepare these components before Autopano-SIFT-C.

  1. Create the directory <SDKHOME>\autopano-sift-C-trunk
  2. In explorer right-click on created directory <SDKHOME>\autopano-sift-C-trunk, and then choose SVN Checkout from the shortcut menu. The Checkout dialog appears.
  3. In "URL of repository" field enter following address:
    https://hugin.svn.sourceforge.net/svnroot/hugin/autopano-sift-C/trunk
    
  4. Click OK
  5. After checkout has finished click OK
  6. Start CMake (cmake-gui). The CMake dialog appears.
  7. In "Where is the source code" field enter
    <SDKHOME>\autopano-sift-C-trunk
    
    Alternatively click Browse Source to point to this directory
  8. In "Where to build the binaries" field enter
    <SDKHOME>\autopano-sift-C
    
  9. Click Configure
    If a dialog appears, which asks to create the build directoy, click Yes.
    A dialog appears, where you can specify the generator for the project.
  10. 32-Bit Directions 64-Bit Directions
    Select "Visual Studio 9 2008" and select option "Use default native compilers" Select "Visual Studio 9 2008 Win64" and select option "Use default native compilers"
  11. Click Finish
    In the Name and Value list the entries are shown with red background.
  12. Click Configure
  13. Click Generate
  14. Close CMake
  15. Open solution file <SDKHOME>\autopano-sift-C\autopano-sift-C.sln
  16. Select Release in Solution Configuration pull-down menu, and then choose Build > Build Solution
  17. Select project INSTALL in Solution Explorer, and then choose Build > Project Only > Build Only INSTALL
  18. Close Visual C++ 2008 Express Edition
  19. Copy the directories bin and shared from <SDKHOME>\autopano-sift-C\INSTALL\FILES to <SDKHOME>\autopano-sift-C

Result

The applications reside in <SDKHOME>\autopano-sift-C\bin

The manual pages reside in <SDKHOME>\autopano-sift-C\shared

Note
To save disk space you may delete all files and directories in <SDKHOME>\autopano-sift-C, except the subdirectories bin and shared.

Freeglut

  1. Decompress the file freeglut-2.6.0.tar.gz to directory <SDKHOME>
  2. Open the file <SDKHOME>\freeglut-2.6.0\VisualStudio2008Static\freeglut.sln
  3. Select "Debug" in the Solution Configuration pull-down menu.
  4. Select project freeglut in Solution Explorer, and then choose Build > Project Only > Build Only freeglut
  5. Select "Release" in the Solution Configuration pull-down menu.
  6. Select project freeglut in Solution Explorer, and then choose Build > Project Only > Build Only freeglut
  7. Close Visual Studio C++ 2008 Express Edition

Result

The library resides in <SDKHOME>\freeglut-2.6.0\VisualStudio2008Static\Debug and <SDKHOME>\freeglut-2.6.0\VisualStudio2008Static\Release

GNU Make

  1. Decompress the file make-3.81.tar.gz to directory <SDKHOME>
  2. Open the file <SDKHOME>\make-3.81\make_msvc_net2003.sln (Confirm convertion.)
  3. Select "Release" in the Solution Configuration pull-down menu.
  4. Select project make_msvc.net2003 Solution Explorer, and then choose Build > Project
  5. Close Visual Studio C++ 2008 Express Edition
  6. Rename the file <SDKHOME>\make-3.81\Release\make_msvc.net2003.exe to <SDKHOME>\make-3.81\Release\make.exe

Result

The executable make.exe resides in <SDKHOME>\make-3.81\Release\

(All other files in this directory can be deleted to save space.)

Templatized C++ Command Line Parser Library (tclap)

  1. Decompress the file tclap-1.2.0.tar.gz to directory <SDKHOME>\tclap-1.2.0

Result

The include files reside in <SDKHOME>\tclap-1.2.0\include\tclap


Ryan Sleevi 17:00, 9 May 2009 (UTC)