Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

General Environment
NameDefaultUsed to build...Description
ROOT_DIR<Mandatory>everythingThe location of the build
SEDsedZLIBThe location of the sed command
PERLperlOpenSSLThe location of the perl command
Zlib ENVIRONMENT


NameDefaultUsed to build...Description
ZLIB_DIRzlib-1.2.11

ZLIB, Shib DLLs, Installer

The name of the directory with the xlib sources
ZLIB_IMPLIB
ZLIBThe name of the zlin library (hence zlib1.lib)
ZLIB_MM_VERSION1.2.11InstallersThe version given to the zlib MergeModule
ZLIB_FILE_VERSION1_2_11InstalllersThe garnish added to the DLL(hence zlib1_2_11.dll). Changing this requires changes to versions.props
Log4Shib ENVIRONMENT


NameDefaultUsed to build...Description
LOG4SHIB_DIRcpp-log4shib

Log4Shib, Shib DLLs, Installers

The name of the directory with the log4shib sources.
LOG4SHIB_FILE_VERSION1_0InstallersThe 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
NameDefaultUsed to build...Description
OPENSSL_DIRopenssl-1.1.0g

OpenSSL
All Shib DLLs
Installers

The name of the directory with the OpenSSL sources.
OPENSSL_FILE_VERSION1_1Installers

The garnish added to the OpenSSL DLLs (hence libcrypto-1_1.dll). Changing this requires changes to versions.props

note


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 xsec\framework\version.rc  usually changing the fourth digit suffices.


OPENSSL_MM_VERSION

Installers

The version given to the OpenSSL MergeModule
Curl ENVIRONMENT
LIBCURL_DIRlibcurl-7.57.0

Curl, Shib DLLs
Installers

The name of the directory with the Curl sources
LIBCURL_VERSION7.57.0InstallersThe Version of Libcurl (used for paths and Merge Module Version)

Xerces ENVIRONMENT

XERCES_DIRxerces-c-3.2.0

Xerces, Shib DLLs
Installers

The name of the directory with the Santuario sources
XERCES_MM_VERSION3.2.0InstallersThe version of Xerces (used for Merge module version)
XERCES_FILE_VERSION3_2InstallersThe garnish on the DLL name. Hence xerces-3_2.dll. Changing this requires changes to versions.props

XmlSecurity (Santuario) ENVIRONMENT

XSEC_DIRxml-security-cpp

XmlSecurity
all Shib DLLs
Installers

The name of the directory with the Santuario sources
XSEC_MM_VERSION2.0.0InstallersThe version of XML Security (used for Merge module version)
XSEC_FILE_VERSION2_0InstallersThe garnish on the DLL name. Hence xsec_2_0d.dll. Changing this requires changes toversions.props
Apache ENVIRONMENT
NameDefaultUsed to build...Description
APACHE_13_ROOT
not usedLocation of Apache 1.3 build tree as downloaded from ApacheLounge
APACHE_20_ROOT
mod_shib20.soLocation of 32 bit Apache 2.0 build tree as downloaded from ApacheLounge
APACHE_22_ROOT
mod_shib22.soLocation of 32 bit Apache 2.2 build tree as downloaded from ApacheLounge
APACHE_22_ROOT64
mod_shib22.soLocation of 64 bit Apache 2.2 build tree as downloaded from ApacheLounge
APACHE_24_ROOT
mod_shib24.soLocation of 32 bit Apache 2.4 build tree as downloaded from ApacheLounge
APACHE_24_ROOT64
mod_shib24.soLocation 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)
    We do this by defining new targets in the 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 template

    Code 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 include 

    • changes to GUIDs as FILE_VERSIONS changes

    • Boost 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.

...