Compilando a partir dos fontes

Antes de começar, vale a pena responder a pergunta: "Por que é tão difícil compilar no Windows?" Duas razões principais:

  1. Windows não disfruta (ainda) de uma grande comunidade de desenvolvedores que estão dispostos de compartilhar livremente os seus fontes. Como resultado direto disso, o investimento necessário em infra-estrutura requerida para suportar tal desenvolvimento não foi feito. A maioria do que está disponível foi possível pela alteração das ferramentas necessárias do Unix. Não se surpreenda se algo dessa herança se mostre de tempo em tempo.

  2. Quase todas as instruções a seguir são do tipo "configurar e esquecer". Então se acomode e tente seguir as instruções abaixo o quão fielmente você conseguir.

Dependências

Para compilar e montar o PHP, você precisa de um Microsoft Development Environment. Microsoft Visual C++ 6.0 é recomendado. Para extrair os arquivos baixados, você precisa de uma ferramenta de extração (ex.: Winzip). Se você não tiver uma ferramente unzip, você pode pegar uma versão grátis de InfoZip.

Antes de você começar, você tem que baixar...

Finalmente, você precisará dos fontes do PHP. Você pode pegar a verão mais recente de desenvolvimento usando login anônimo ao CVS, um snapshot ou o release mais novo dos fontes.

Juntanto tudo

Depois de baixar os pacotes necessários, você tem que extrair eles em um lugar apropriado.

Seguindo esses passos a sua estrutura de diretório parecerá com isso:

+--c:\work
|  |
|  +--bindlib_w32
|  |  |
|  |  +--arpa
|  |  |
|  |  +--conf
|  |  |
|  |  +--...
|  |
|  +--php-4.x.x
|  |  |
|  |  +--build
|  |  |
|  |  +--...
|  |  |
|  |  +--win32
|  |  |
|  |  +--...
|  |
|  +--win32build
|  |  |
|  |  +--bin
|  |  |
|  |  +--include
|  |  |
|  |  +--lib

Cria os diretórios c:\usr\local\lib. Copie bison.simple de c:\work\win32build\bin para c:\usr\local\lib.

Nota: Usuários do Cygwin podem pular o passo anterior. Um ambiente Cygwin devidamente instalado provê os arquivos bison.simple e bison.exe.

Configure o MVC ++

O próximo passo é configura o MVC ++ para prepará-lo para compilar. Rode o Microsoft Visual C++, e do menu selecione Tools => Options. No diálogo que aparecerá, selecione o tab de diretórios. Depois, mude o dropdown para arquivos Executables, Includes, e Library. Suas configurações devem parecer com isso:

Montando resolv.lib

Você deve montar a biblioteca resolv.lib. Decida se você quer ter símbolos de depuração disponíveis (bindlib - Win32 Debug) ou não (bindlib - Win32 Release). Monte a configuração apropriada:

Nesse ponto, você deve ter a biblioteca resolv.lib pronta para ser usada ou no subdiretório c:\work\bindlib_w32\Debug ou em Release. Copie esse arquivo para o seu diretório c:\work\win32build\lib e sobrescreva o arquivo com o mesmo nome que está aqui.

Compilando

A melhor maneira de começar é compilando a versão CGI.

É possível fazer algumas personalizações mínimas para o processo de compilação editando o arquivo main/config.win32.h. Por exemplo, você pode muda a localização padrão do arquivo php.ini, as extensões integradas, e a localização padrão para suas extensões.

Depois, você pode querer montar a versão CLI que é feita para usar o PHP da linha de comando. Os passos são o mesmos para compilar a versão CGI, exceto que você tem que selecionar o arquivo de projeto php4ts_cli - Win32 Debug_TS ou php4ts_cli - Win32 Release_TS. Depois de uma compilação sucedida você encontrará o arquivo php.exe ou no diretório Release_TS\cli\ ou Debug_TS\cli\.

Nota: Se você quiser usar PEAR e o confortável instalador de linha de comando, CLI-SAPI é obrigatório. Para mais informações sobre PEAR e o instalador leia a documentação no website do PEAR.

Para montar o módulo SAPI (php4isapi.dll) para integrar o PHP com o Microsoft IIS, modifique o seu arquivo de configuração para php4isapi-whatever-config e construa a dll desejada.