Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:6026 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 26777 invoked by uid 1010); 2 Dec 2003 23:41:07 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 26743 invoked from network); 2 Dec 2003 23:41:07 -0000 Received: from unknown (HELO mx.thebrainroom.net) (65.200.24.98) by pb1.pair.com with SMTP; 2 Dec 2003 23:41:07 -0000 Received: by mx.thebrainroom.net (Postfix, from userid 517) id 529501488089; Tue, 2 Dec 2003 15:40:20 -0800 (PST) Received: from obsidian (zaneeb.thebrainroom.net [82.133.1.138]) by mx.thebrainroom.net (Postfix) with ESMTP id B5D1F1488087 for ; Tue, 2 Dec 2003 15:40:17 -0800 (PST) Message-ID: <09a401c3b92d$a5d03b20$8802a8c0@obsidian> To: Date: Tue, 2 Dec 2003 23:40:18 -0000 Organization: The Brain Room Ltd. MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-Spam-Status: No, hits=-0.7 required=5.0 tests=AWL,BAYES_30 version=2.55 X-Spam-Level: X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) X-TBR-Filter: Virus scanned and defanged Subject: New win32 build system From: wez@thebrainroom.com ("Wez Furlong") I've committed the build infrastructure for the "real programmers don't need an IDE" build system for win32. Why? - It's frustrating to have to use VC6 to work on PHP if you have a newer version that has incompatible project files. - It's annoying to mess around with libxml2 stuff until it stabilizes :-) and a pain to have to remember to edit the config.w32.h header each time, and a pain to have to avoid accidentally committing those changes each time. - It's difficult to set up a fully working build environment for PHP without installing everything. - It's difficult for people without VC6 to create a win32 project file for their extensions. Requirements: You need windows script host (cscript.exe) and JScript installed. This should be a standard config on windows machines since win98 (perhaps optional under win98). You also need the Microsoft build tools (cl.exe, link.exe and nmake.exe). These are freely available as part of the Platform SDK, but also come with VC++/Visual Studio. Finally, you need the php_build dir that contains all the headers and libraries for the things that php is linked against; see [1] for details. Usage: Check out PHP 5 and run buildconf.bat from the root of the php source. This script is roughly equivalent to the unix buildconf in that it scans ext/* and sapi/* for config.w32 files describing optional build components and generates a configure script named configure.js Now run "cscript configure.js --help" to get a list of configure options; enable and disable stuff as appropriate. Then type nmake to build the things you configured. You will find the various .exe and .dll files in the build dir that configure selects for you based on debug and zts settings; it will be one of the usual Debug_TS, Release_TS, Debug or Release dirs found under the source root. You can also run the test suite by running "nmake test". [we have some issues under win32 with current CVS!] TODO: - Write config.w32 files for more extensions and sapis. They're quite easy (just a couple of javascript function calls) and can be put together almost without thinking by copying the guts of the config.m4 file from the same extension. - add those .rc files with version info the generated .dll's and .exe's - Test if it actually works under win98 (Steph?) There are only two places that I suspect might have difficulty under win98. [1] http://www.php.net/manual/en/install.windows.php#install.windows.build