Dear Wiki user, You have subscribed to a wiki page or wiki category on "Httpd Wiki" for change notification.
The "Win64Compilation" page has been changed by PontusCarlsson. http://wiki.apache.org/httpd/Win64Compilation?action=diff&rev1=3&rev2=4 -------------------------------------------------- {{attachment:sdk_installation.png}} Next of you'll need a Perl distribution, ActiveState or strawberry works about the same although I prefer strawberry perl which can be found [[http://strawberryperl.com/|here]]. + - You'll also need a Windows port of awk, GnuWin32 has an excellent package for this located [[http://sourceforge.net/projects/gnuwin32/files/gawk/|here]]. + . You'll also need a Windows port of awk, GnuWin32 has an excellent package for this located [[http://sourceforge.net/projects/gnuwin32/files/gawk/|here]]. Perl will set up your PATH environment variable correctly, GnuWin32 however will not. If you're familiar with Windows it'll be no task to append the correct path to awk.exe to your PATH, + - if you're not however familiar with Windows it'll just suffice by running + . if you're not however familiar with Windows it'll just suffice by running {{{ set PATH="C:\Program Files (x86)\GnuWin32\bin;%PATH%" @@ -26, +28 @@ Replace C:\Program Files (x86)\GnuWin32\ with the installation path you provided during the installation, this is however default so if you didn't chacnge anything this'll work just fine for you. = Obtaining the sources = - Lastly we (of course) need the sources. The sources we're required to have are for HTTPd, Zlib and OpenSSL. @@ -43, +44 @@ Let's just assume for now that you extracted the sources to C:\, leaving the source tree in C:\httpd-2.2.17. - Next you'll want to extract the zlib archive to C:\httpd-2.2.17\srclib and strip the version number from the output folder, leaving just C:\httpd-2.2.17\srclib\zlib. - And do the same procedure for the openssl archive in the same directory, leaving that source tree in C:\httpd-2.2.17\srclib\openssl. + Next you'll want to extract the zlib archive to C:\httpd-2.2.17\srclib and strip the version number from the output folder, leaving just C:\httpd-2.2.17\srclib\zlib. And do the same procedure for the openssl archive in the same directory, leaving that source tree in C:\httpd-2.2.17\srclib\openssl. + + So now you should have a source hierarchy looking like : + + * C:\httpd-2.2.17\srclib + + . * zlib + * openssl = Step by Step = + First of all we need to compile Zlib and OpenSSL since these are dependencies for mod_ssl and mod_deflate, if you don't desire these modules then you can just skip this (I believe but are not sure). + In C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin there's shortcut named "Visual Studio 2008 x64 Win64 Command Prompt", enter this and you should appear in a command prompt, now + + {{{ + cd C:\httpd-2.2.17 + }}} + You're now inside the source tree of httpd, let's begin compiling Zlib shall we! + + == Zlib == + + {{{ + cd srclib\zlib + nmake -f win32\Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj" + }}} + AS=ml64 tells nmake to use ml64 (Macro Assembler x64) as our assembler, -DASMV and -DASMINF are both defines in inffas8664.c which I'm not sure what they actually do. + + If you encounter something like + + {{{ + infback.obj : error LNK2019: unresolved external symbol inflate_fast referenced + in function inflateBack + inflate.obj : error LNK2001: unresolved external symbol inflate_fast + }}} + This means you have a typo in either -DASMV -DASMINF or your OBJ="inffasx64.obj gvmat64.obj inffas8664.obj" since inflate_fast is defined in inffas8664.c. + + If you instead encounter + + {{{ + contrib/masmx64\inffas8664.c(36) : fatal error C1083: Cannot open include file: + 'zutil.h': No such file or directory + }}} + this means you've missed out on -I. since this basicly tells the compiler to also include header files from current directory (zlib\) in which zutil.h is found. + --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
