Today I worked from home. I was logged into Windows in an attempt to do the impossible: compile a Win32 mod_macro for Apache httpd 2.0.59. mod_macro only comes as a single 30KB C file. Compiling this on Unix with apxs is ridiculously easy and possibly simpler than even bothering to track down a binary. The problem is that our developers use Windows PCs and so run Apache installed from the 2.0.59 apache.org MSI. Which doesn't include apxs because it was almost impossible to construct it in a reliable manner for Win32. There is, however, a Win32 apxs bodge script done by an Apache contributor.
My day involved installing Visual C++ Express and Strawberry Perl (Cygwin Perl didn't work, the Win32 apxs bodge script demands a native Perl). Then attempting to get apxs to install at all. That done, trying to compile using it. Didn't work. Then to try to compile the project in VC++. Almost worked. Then to compile mod_macro in VC++. Didn't work. Tries to include something that includes something that doesn't exist. Because this is Unix software bodgily ported to Windows because IBM paid for it to be done for WebSphere, not because anyone thought it was a good idea to run Apache on Windows, 'cos it isn't.
Seven hours later, I'm currently compiling httpd 2.0.59 from source in Cygwin. If this works, I'll try using apxs to do mod_macro. If this works, I'll see about wrapping the whole thing up as a self-extracting zip file and handing it to our developers to see what they do with it.
The reason I'm bothering with all this is that if the developers run the httpd.conf files just as they are in source control, all is just that much more likely to be right with the world. If they don't, everything will be pain, angst and horror — mine, that is.
I'm tempted to work really hard on getting all our developers shifted to Linux. They're writing Java, after all. (Probability: negligible.)
I understand that, karmically, all this has earnt me the right to strangle several puppies without in any way reducing my chances of sainthood and Heaven. Really cute ones, with big brown loving eyes.
Update: Cygwin doesn't include a binary of 2.0 (current is 2.2 and they don't keep old binaries around, just the source in CVS), so I tried compiling from source. Should work, doesn't at all. The mod_macro.la I compiled with its apxs doesn't of course work in Win32 native Apache either. Has anyone, anywhere, successfully compiled their own modules to actually work with any Windows Apache 2.0? I see no evidence such has ever actually happened.
Update 2: And the co-worker I was doing all this for has shown far mightier Google-fu than me. The compiled mod_macro 1.1.7 for httpd 2.0.58 there appears to work perfectly. HALLELUJAH!