...
General Environment | |||
---|---|---|---|
Name | Default | Used to build... | Description |
ROOT_DIR | <Mandatory> | everything | The location of the build |
SED | sed | ZLIB | The location of the sed command |
PERL | perl | OpenSSL | The location of the perl command |
Zlib ENVIRONMENT | |||
Name | Default | Used to build... | Description |
ZLIB_DIR | zlib-1.2.11 | ZLIB, Shib DLLs, Installer | The name of the directory with the xlib sources |
ZLIB_IMPLIB | ZLIB | The name of the zlin library (hence zlib1.lib ) | |
ZLIB_MM_VERSION | 1.2.11 | Installers | The version given to the zlib MergeModule |
ZLIB_FILE_VERSION | 1_2_11 | Installlers | The garnish added to the DLL(hence zlib1_2_11.dll ). Changing this requires changes to versions.props |
Log4Shib ENVIRONMENT | |||
Name | Default | Used to build... | Description |
LOG4SHIB_DIR | cpp-log4shib | Log4Shib, Shib DLLs, Installers | The name of the directory with the log4shib sources. |
LOG4SHIB_FILE_VERSION | 1_0 | Installers | The garnish added to the DLL (hence log4shib1_0D.dll ). Changing this requires changes to versions.props |
LOG4SHIB_MM_VERSION | Installers | The version given to the Log4Shib MergeModule | |
OpenSLL ENVIRONMENT | |||
Name | Default | Used to build... | Description |
OPENSSL_DIR | openssl-1.1.0g | OpenSSL | The name of the directory with the OpenSSL sources. |
OPENSSL_FILE_VERSION | 1_1 | Installers | The garnish added to the OpenSSL DLLs (hence NOTE If this is changed then a different version of Santuario should be built (if it is not being independently revised). The version can be changed in |
OPENSSL_MM_VERSION | Installers | The version given to the OpenSSL MergeModule | |
Curl ENVIRONMENT | |||
LIBCURL_DIR | libcurl-7.57.0 | Curl, Shib DLLs | The name of the directory with the Curl sources |
LIBCURL_VERSION | 7.57.0 | Installers | The Version of Libcurl (used for paths and Merge Module Version) |
Xerces ENVIRONMENT | |||
XERCES_DIR | xerces-c-3.2.0 | Xerces, Shib DLLs | The name of the directory with the Santuario sources |
XERCES_MM_VERSION | 3.2.0 | Installers | The version of Xerces (used for Merge module version) |
XERCES_FILE_VERSION | 3_2 | Installers | The garnish on the DLL name. Hence xerces-3_2.dll . Changing this requires changes to
|
XmlSecurity (Santuario) ENVIRONMENT | |||
XSEC_DIR | xml-security-cpp | XmlSecurity | The name of the directory with the Santuario sources |
XSEC_MM_VERSION | 2.0.0 | Installers | The version of XML Security (used for Merge module version) |
XSEC_FILE_VERSION | 2_0 | Installers | The garnish on the DLL name. Hence xsec_2_0d.dll. Changing this requires changes to
|
Apache ENVIRONMENT | |||
Name | Default | Used to build... | Description |
APACHE_22_ROOT | mod_shib22.so | Location of 32 bit Apache 2.2 build tree as downloaded from ApacheLounge | |
APACHE_22_ROOT64 | mod_shib22.so | Location of 64 bit Apache 2.2 build tree as downloaded from ApacheLounge | |
APACHE_24_ROOT | mod_shib24.so | Location of 32 bit Apache 2.4 build tree as downloaded from ApacheLounge | |
APACHE_24_ROOT64 | mod_shib24.so | Location of 64 bit Apache 2.4 build tree as downloaded from ApacheLounge |
...
- Download sources as appropriate.
- Edit and execute the
dependencies\config.bat
file. This established the environment as detailed above. It is parameterized to allow for different directory layouts on different machines, while keeping the rest of the configuration common. - The OpenSSL build configure script requires changes to control the names of the output DLLS.
- To add the standard 'D' postfix to the Debug DLLs
- To uniquify the DLL names by subversion number (to protect again feature creep in subversions and thus "DLL hell" with multiple OpenSL distributions)
Configurations/10-main.conf
file- Go into the subdirectory
Configurations
- Edit the file
10-main.conf
...
- Download or build the depenencies as per above
- Set the Environmental variables described above.
The Shibboleth only "external" environment is defined in the
$(BuildRoot)
cpp-msbuild/versions.props
file. Create this and edit it appropriately based on this templateCode Block <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup Label="PathMacros"> <BuildRoot>h:\perforce\VS2017\</BuildRoot> <Apache22Root>$(BuildRoot)apache\VC10\Apache2</Apache22Root> <Apache22Root64>$(BuildRoot)apache\VC10\Apache22-64</Apache22Root64> <Apache24Root>$(BuildRoot)apache\VC15\Apache24-32\Apache24</Apache24Root> <Apache24Root64>$(BuildRoot)apache\VC15\Apache24-64\Apache24</Apache24Root64> </PropertyGroup> </Project>
Check the
Versions.props
files for any required changes. These will includechanges to GUIDs as
FILE_VERSIONS
changesBoost versions
and so forth.
As noted above, the installers will fail to build if the FILE_VERSION has been changed and appropriate changes have not been made in this file.
...