Next revision | Previous revision |
internals:windows:pgobuild [2009/06/22 21:28] – created garretts | internals:windows:pgobuild [2017/09/22 13:28] (current) – external edit 127.0.0.1 |
---|
- **MySQL** In order to run thru the PGO training scenarios, you will need MySQL (either 64 bit or 32 bit should be fine) MySQL Can be found [[http://dev.mysql.com/downloads/mysql/5.1.html#win32|here]]. You can grab either the .zip file or the installer. If you download the installer, read the notes in the Setup section below. | - **MySQL** In order to run thru the PGO training scenarios, you will need MySQL (either 64 bit or 32 bit should be fine) MySQL Can be found [[http://dev.mysql.com/downloads/mysql/5.1.html#win32|here]]. You can grab either the .zip file or the installer. If you download the installer, read the notes in the Setup section below. |
- **ActivePerl** OpenSSL requires [[http://www.activestate.com/activeperl/|ActivePerl]] to handle part of it’s compilation process. | - **ActivePerl** OpenSSL requires [[http://www.activestate.com/activeperl/|ActivePerl]] to handle part of it’s compilation process. |
- **PHP Binary tools** a collection of open source utilities needed to build PHP. The tools can be found [[http://pecl2.php.net/downloads/php-windows-builds/php-libs/binary-tools.zip|here]] | - **PHP Binary tools** a collection of open source utilities needed to build PHP. The tools can be found [[http://windows.php.net/downloads/php-sdk/|here]] |
- **Optional:** [[http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html|Oracle SDK]] (10.2 and/or 11.1) – Only needed if you want to build the Oracle database extensions. At the time of writing, the following were the files used: ''instantclient-sdk-win32-10.2.0.3-20061115.zip'' and ''instantclient-sdk-win32-11.1.0.7.0.zip'' | - **Optional:** [[http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html|Oracle SDK]] (10.2 and/or 11.1) – Only needed if you want to build the Oracle database extensions. At the time of writing, the following were the files used: ''instantclient-sdk-win32-10.2.0.3-20061115.zip'' and ''instantclient-sdk-win32-11.1.0.7.0.zip'' |
- **PHP PGO Kit and Dependency Source Libraries** the source code for all the dependencies libraries that are needed to build PHP. | - **PHP PGO Kit and Dependency Source Libraries** the source code for all the dependencies libraries that are needed to build PHP. |
// For those interested, the source code for the PGOKit utilities can be found on CodePlex : http://gsToolkit.codeplex.com // | // For those interested, the source code for the PGOKit utilities can be found on CodePlex : http://gsToolkit.codeplex.com // |
| |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/SpecialCases.zip|SpecialCases.zip]] - sources for a few special cases. | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/SpecialCases.zip|SpecialCases.zip]] - sources for a few special cases. |
| |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/bindlib.zip|bindlib.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/bindlib.zip|bindlib.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/bzip2.zip|bzip2.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/bzip2.zip|bzip2.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/curl.zip|curl.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/curl.zip|curl.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/dirent.zip|dirent.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/dirent.zip|dirent.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/freetype.zip|freetype.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/freetype.zip|freetype.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/hunspell.zip|hunspell.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/hunspell.zip|hunspell.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/imap.zip|imap.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/imap.zip|imap.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/jpeg.zip|jpeg.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/jpeg.zip|jpeg.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/libiconv.zip|libiconv.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/libiconv.zip|libiconv.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/libintl.zip|libintl.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/libintl.zip|libintl.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/libmcrypt.zip|libmcrypt.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/libmcrypt.zip|libmcrypt.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/libssh.zip|libssh.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/libssh.zip|libssh.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/libxml2.zip|libxml.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/libxml2.zip|libxml.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/libXpm.zip|libXpm.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/libXpm.zip|libXpm.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/libxslt.zip|libxslt.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/libxslt.zip|libxslt.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/lpng.zip|lpng.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/lpng.zip|lpng.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/openldap.zip|openldap.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/openldap.zip|openldap.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/openssl.zip|openssl.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/openssl.zip|openssl.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/postgresql.zip|postgresql.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/postgresql.zip|postgresql.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/qdbm.zip|qdbm.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/qdbm.zip|qdbm.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/tidy.zip|tidy.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/tidy.zip|tidy.zip]] |
* [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/source/zlib.zip|zlib.zip]] | * [[http://pecl2.php.net/downloads/php-windows-builds/pgo-build/sources/zlib.zip|zlib.zip]] |
| |
| ===== Setup ===== |
| |
| - Install Visual Studio and any available service packs. |
| - Install the Windows SDK. |
| - Install MySQL—Ideally this should be set to ''c:\program files\MySQL'' . You **DO NOT** need to run it as a service, the PGO build script can start and stop MySQL as needed. If you download the zip file, unpack it into ''c:\program files'' and rename the directory to ''MySQL'' (it will by default have the version number in the directory name). |
| - Run the installer for ActivePerl. Accepting the defaults works pretty good, and yes you want it in the PATH. |
| - Unpack the PHP binary tools into a directory, and add that directory into the PATH. It is suggested that this be ''c:\php-sdk'' |
| - Create a Work Directory where you want to do all the work. In this walkthrough, we’ll use ''c:\UnifiedBuild'' |
| - In the Work Directory, unpack the all the zip files that were downloaded (from step #7 in the requirements) |
| - Copy (not unpack) the Oracle SDK zip files into the ''Libraries\SpecialCases\binaries'' directory |
| |
| C:\UnifiedBuild\Libraries\SpecialCases\binaries\instantclient-sdk-win32-10.2.0.3-20061115.zip |
| C:\UnifiedBuild\Libraries\SpecialCases\binaries\instantclient-sdk-win32-11.1.0.7.0.zip |
| |
| ===== Running the Build ===== |
| |
| |
| === Start a command shell using the shortcut in the start menu: === |
| |
| Microsoft Windows SDK v6.1\CMD Shell |
| |
| At the command line type: |
| |
| === Set the SDK prompt to X86/Release: === |
| |
| c:\> setenv /x86 /release |
| |
| Setting SDK environment relative to C:\Program Files\Microsoft SDKs\Windows\v6.1. |
| Targeting Windows Server 2008 x86 RELEASE |
| |
| c:\> |
| |
| |
| The **''OptimizedBuild.js''** script handles the entire build process end-to-end. |
| |
| From the SDK shell, you can switch into your work directory and just type |
| |
| OptimizedBuild.js |
| |
| from the command line, and it will build the whole thing. |
| |
| ===== Advanced/Alternative OptimizedBuild script usage ===== |
| |
| For additional functionality of the optimized build script, see [[optimizedbuild.js|optimized build script]] |
| |
===== Setup ===== | ===== Setup ===== |
| |