httpd-docs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Httpd Wiki] Update of "WindowsTrunkCompilation" by wrowe
Date Sun, 21 Feb 2016 20:23:34 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Httpd Wiki" for change notification.

The "WindowsTrunkCompilation" page has been changed by wrowe:
https://wiki.apache.org/httpd/WindowsTrunkCompilation

New page:
Building httpd from trunk was traditionally very challenging, since the build schema was for
Visual Studio '98.  While this product has been long unsupported and unavailable now, it was
the only option that could be converted to (most) modern Visual Studio versions and the last
version which could also exported to nmake Makefiles.

The Apache HTTP Project has been shifting toward CMAKE as a build strategy, as have many of
the OSS projects it depends on.

The advantage is that PCRE can generate traditional nmake files, and can also assemble Visual
Studio project and solution files for a number of different versions of that product, as well
as Eclipse and others (type the 'cmake' command alone for hints).

Here are the required elements to build the "bleeding edge" of all components - certainly
somewhere to start for development but not for the faint of heart or for actual server deployments.

{{{
Rem
Rem  Illustration of building httpd and dependencies
Rem 

set INSTPATH=c:\dev\apache-2.x

set CMAKE_LIBRARY_PREFIX=%INSTPATH%\lib
set CMAKE_INCLUDE_PREFIX=%INSTPATH%\include

Rem An alternative using Studio solution/projects, needs install help
Rem SET CMAKEOPTS=-G "Visual Studio 14 2015 Win64"^
Rem   -DCMAKE_BUILD_TYPE=Release^
Rem   -DCMAKE_COLOR_MAKEFILE=OFF^
Rem   -DCMAKE_INSTALL_PREFIX=%INSTPATH%
Rem SET BUILDCMD=devenv expat.sln /Build "Release|x64"

Rem An alternative with simple nmake Makefile...
SET CMAKEOPTS=-G "NMake Makefiles"^
 -DCMAKE_BUILD_TYPE=Release^
 -DCMAKE_COLOR_MAKEFILE=OFF^
 -DCMAKE_INSTALL_PREFIX=%INSTPATH%
SET BUILDCMD=nmake -f Makefile && nmake -f Makefile install

set ZLIBDIR=zlib-1.2.8
set EXPATDIR=expat-2.1.0
Rem set LIBXML2DIR=libxml2-2.9.3
set APRDIR=apr-2.0
set PCREDIR=pcre-8.38
set HTTPDDIR=httpd-2.x

if not exist %ZLIBDIR%^
  git clone https://github.com/madler/zlib.git %ZLIBDIR%

Rem This does not work, blame sourceforge or offer a fix?
if not exist %EXPATDIR%^
  https://sourceforge.net/settings/mirror_choices?projectname=expat&filename=expat/2.1.0/expat-2.1.0.tar.gz
&& tar -xzvf expat-2.1.0.tar.gz

Rem if not exist %LIBXML2DIR%^
Rem   wget http://xmlsoft.org/sources/libxml2-sources-2.9.3.tar.gz &^
Rem   gzip -dc < libxml2-sources-2.9.3.tar.gz | tar -xvf -

Rem This requires wget/unzip - unpack it by hand if needed
if not exist %PCREDIR%^
  wget --passive-ftp ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.zip &&
unzip pcre-8.38.zip

if not exist %APRDIR%^
  git clone https://github.com/apache/apr.git %APRDIR%

if not exist %HTTPDDIR%^
  git clone https://github.com/apache/httpd.git %HTTPDDIR%

mkdir zlib-build
cd zlib-build
cmake %CMAKEOPTS% -DAMD64=OFF -DASM686=OFF ..\%ZLIBDIR%
Rem -DAMD64=ON aught to work; but it does not
%BUILDCMD%
cd ..

mkdir expat-build
cd expat-build
cmake %CMAKEOPTS% ..\%EXPATDIR%
%BUILDCMD%
cd ..

Rem cd %LIBXML2DIR%\win32
Rem cscript configure.js zlib=1 prefix=%INSTPATH% sodir=%INSTPATH%\bin include=%INSTPATH%\include
lib=%INSTPATH%\lib
Rem nmake -f makefile.msvc
Rem cd ..\..

mkdir pcre-build
cd pcre-build
cmake %CMAKEOPTS% -DBUILD_SHARED_LIBS=ON ..\%PCREDIR%
Rem Other valid options; -DPCRE_BUILD_PCRECPP=OFF -DPCRE_BUILD_PCREGREP=OFF  
Rem since httpd itself does not use these features
%BUILDCMD%
cd ..

mkdir apr-build
cd apr-build
cmake %CMAKEOPTS% ..\%APRDIR%
%BUILDCMD%
cd ..

Rem  Some private files of apr on Windows are used by httpd, pick these up;
mkdir %INSTPATH%\include\arch\win32
copy %APRDIR%\include\arch\win32\*.h %INSTPATH%\include\arch\win32

mkdir httpd-build
cd httpd-build
cmake %CMAKEOPTS% ..\%HTTPDDIR%
%BUILDCMD%
cd ..
}}}

---------------------------------------------------------------------
To unsubscribe, e-mail: docs-unsubscribe@httpd.apache.org
For additional commands, e-mail: docs-help@httpd.apache.org


Mime
View raw message