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


Reply via email to