On 12/18/2012 02:45 PM, Gregg Smith wrote:
On 12/18/2012 9:00 AM, Yehuda Katz wrote:
On Tue, Dec 18, 2012 at 11:24 AM, Andy Wang <[email protected]
<mailto:[email protected]>> wrote:
This was brought up a while ago that the Apache 2.4.x and 2.2.23
builds were lacking the win32 source bundle. There was some
discussion about how to build these bundles:
http://mail-archives.apache.org/mod_mbox/httpd-dev/201209.mbox/%3C506243E0.3050108%40apache.org%3E
I see no discussion on the source bundles, just mention that I also
made them and where I store them.
I have to admit, I use the term discussion loosely. I took this comment:
This *really* seems like some tribal knowledge that more
people should have...
As "discussion" :)
The difference between the win32 and unix sources are the line endings
(Win's vs. Unix's) and the .mak & .dep files. These make & dependency
files have been exported from Visual C++ 6, which was the last version
that would export them.
For 2.2.23 you could take these files from the 2.2.22 win32 source,
nothing has changed that will affect the build. Unix sources do not
include apr-iconv so you could just drag the entire srclib\apr-iconv
folder from 2.2.22 into 2.2.23's srclib folder. apr-iconv has not
changed between the two Apache releases. At the command line run lineends
c:\httpd-2.2.23> perl srclib\apr\build\lineends.pl
Now you have a win32 source package of 2.2.23
For a Win32 IDE build, you can build straight from the Unix source
package. You just need to also download apr-iconv and run lineends on
entire unix source package.
I thought perhaps that was all that's necessary, so before your package
was made available I had tried. I grabbed apr-iconv to match up with
the older 2.2.22 win32 src bundle. I didn't use the lineends.pl command
(didn't see it there) but instead on the unix side unix2dos'ed all the
files. I tried to nmake using the Makefile.win file and it blew up
somewhere under pcre with an expat dependency problem. I wonder if the
.mak & .dep file step would have helped.
I think half the trouble was actually getting it to compile reliably
on Windows. (I have not tried too hard, but I know I have not been
able to do it.)
You can find instructions for x64 builds at
http://wiki.apache.org/httpd/Win64Compilation
I don't know how different the x86 build would be.
One extra step in x64 and different command line arguments for
building openssl & zlib.
Where the above linked build instructions talk about making a store.h
file for OpenSSL 1.0.0, that and one other is needed for OpenSSL
1.0.1. Neither are needed if built from the VC++ IDE.
There's a good set of x86 command line build instructions here:
http://wiki.apache.org/httpd/Win32VC9Build
There is also a section for building Apache in the forums at both
Apache Haus and Apache Lounge should one have problems.
I have actually never had any problems reliably building from the
command line using nmake and Visual C++ 6.0 and the Windows 2003 SP1 SDK
using the win32-src.zip packages that have been created in the past. I
also had no problems using my build process with the 2.2.23 win32-src
zip package you created. When I get a chance, I will try to repeat the
process you just laid out from the regular src tarball and see if it works.
Thanks,
Andy