1 # Makefile for Windows NT and Windows 95/98/2000
4 # _buildr - build Apache in Release mode
5 # _buildd - build Apache in Debug mode
6 # installr - build and install a Release build
7 # installd - build and install a Debug build
8 # clean - remove (most) generated files
9 # _cleanr - remove (most) files generated by a Release build
10 # _cleand - remove (most) files generated by a Debug build
11 # _browse - build the browse info file
13 # The following install defaults may be customized;
19 # DOMAINNAME example.com
20 # SERVERNAME www.example.com
21 # SERVERNAME admin@example.com
23 # ALL (unset) Includes additional modules for build testing
25 # Provide a DBD_LIST argument after configuring LIB and INCLUDE with
26 # the SDK paths of the corresponding client support libraries.
27 # The ODBC driver is always built on Windows
29 # DBD_LIST="sqlite3 pgsql oracle mysql freetds"
31 # Provide a DBM_LIST argument after configuring LIB and INCLUDE with
32 # the SDK paths of the corresponding client support libraries.
33 # The sdbm driver is always built in.
39 # nmake -f Makefile.win PORT=80 INSTDIR="d:\Program Files\Apache" installr
41 # Be aware that certain awk's will not accept backslashed names,
42 # so the server root should be given in forward slashes (quoted),
43 # preferably with the drive designation!
45 !IF EXIST("Apache.sln") && ([devenv /help > NUL 2>&1] == 0) \
46 && !defined(USEMAK) && !defined(USEDSW)
50 !ELSEIF EXIST("httpd.mak") && !defined(USEDSW)
62 !IF ("$(CTARGET)" == "") && ($(USESLN) == 1)
66 !IF EXIST("srclib\apr\include\apu.h")
69 !ELSEIF !EXIST("srclib\apr") || !EXIST("srclib\apr-util") || !EXIST("srclib\apr-iconv")
70 !MESSAGE Please check out or download and unpack the Apache Portability Runtime
71 !MESSAGE sources (apr, apr-iconv and apr-util) into your srclib dir.
72 !MESSAGE Apache cannot build without these libraries!
74 !ERROR Need srclib\ apr, apr-iconv and apr-util
80 !IF !EXIST("srclib\expat") && !EXIST("srclib\apr-util\xml\expat")
81 !MESSAGE Please check out or download and unpack the current expat library source
82 !MESSAGE under your srclib dir for apr 2.x, or srclib\apr-util\xml\expat for apr 1.x
83 !MESSAGE Apache cannot build without this library!
85 !ERROR Need srclib\expat or srclib\apr-util\xml\expat
88 !IF !EXIST("srclib\pcre")
89 !MESSAGE Please check out or download and unpack the current PCRE library source
90 !MESSAGE under your srclib dir, and compile the pcre.dll with CMake options
91 !MESSAGE BUILD_SHARED_LIBS and CMAKE_BUILD_TYPE RelWithDebInfo.
92 !MESSAGE Apache cannot build without this library!
94 !ERROR Need srclib\pcre
98 # Note; _tryfoo: blocks are used only by the msvc developer studio environment
99 # to 'fix up' the build, since conditional dependencies aren't supported.
102 !IF EXIST("srclib\openssl")
103 !IF "$(LONG)" == "Debug" && EXIST("srclib\openssl\out32dll.dbg\openssl.exe")
112 $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
115 $(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
117 !ELSEIF $(USESLN) == 1
118 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_ssl
119 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project abs
121 @msdev $(TLP).dsw /USEENV /MAKE \
122 "mod_ssl - Win32 $(LONG)" \
123 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
127 # NOT EXIST("srclib\openssl")
131 @echo mod_ssl and ab/ssl will not build unless openssl is installed
132 @echo in srclib\openssl. They must be precompiled using the
133 @echo ms/ntdll.mak file, see srclib\openssl\INSTALL.W32. The most
134 @echo recent version confirmed to build with mod_ssl and ab is 0.9.8d.
135 @echo Available from http://www.openssl.org/
137 # NOT EXIST("srclib\openssl")
139 !IF EXIST("srclib\zlib")
144 $(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
146 !ELSEIF $(USESLN) == 1
147 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_deflate
149 @msdev $(TLP).dsw /USEENV /MAKE \
150 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
154 # NOT EXIST("srclib\zlib")
158 @echo mod_deflate will not build unless zlib is built in srclib\zlib.
159 @echo Version 1.2.1 and later available from http://www.gzip.org/zlib/
160 @echo built w/ nmake -f win32/Makefile.msc will satisfy this requirement.
164 !IF EXIST("srclib\libxml2")
169 $(MAKE) $(MAKEOPT) -f mod_proxy_html.mak CFG="mod_proxy_html - Win32 $(LONG)" RECURSE=0 $(CTARGET)
170 $(MAKE) $(MAKEOPT) -f mod_xml2enc.mak CFG="mod_xml2enc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
172 !ELSEIF $(USESLN) == 1
173 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_proxy_html
174 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_xml2enc
176 @msdev $(TLP).dsw /USEENV /MAKE \
177 "mod_proxy_html - Win32 $(LONG)" /NORECURSE $(CTARGET)
178 @msdev $(TLP).dsw /USEENV /MAKE \
179 "mod_xml2enc - Win32 $(LONG)" /NORECURSE $(CTARGET)
183 # NOT EXIST("srclib\libxml2")
187 @echo mod_proxy_html and mod_xml2enc will not build unless libxml2 is
188 @echo built in srclib\libxml2. Version 2.7.7 and later available from
189 @echo http://xmlsoft.org/ will satisfy this requirement.
194 !IF EXIST("srclib\lua")
199 $(MAKE) $(MAKEOPT) -f mod_lua.mak CFG="mod_lua - Win32 $(LONG)" RECURSE=0 $(CTARGET)
201 !ELSEIF $(USESLN) == 1
202 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_lua
204 @msdev $(TLP).dsw /USEENV /MAKE \
205 "mod_lua - Win32 $(LONG)" /NORECURSE $(CTARGET)
209 # NOT EXIST("srclib\lua")
213 @echo mod_lua will not build unless lua is installed in srclib\lua.
214 @echo Version 5.1 includes an etc\luavs.bat that will satisfy this requirement.
218 !IF EXIST("srclib\nghttp2")
223 $(MAKE) $(MAKEOPT) -f mod_http2.mak CFG="mod_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
224 $(MAKE) $(MAKEOPT) -f mod_proxy_http2.mak CFG="mod_proxy_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
226 !ELSEIF $(USESLN) == 1
227 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_http2
228 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_proxy_http2
230 @msdev $(TLP).dsw /USEENV /MAKE \
231 "mod_http2 - Win32 $(LONG)" /NORECURSE $(CTARGET)
232 @msdev $(TLP).dsw /USEENV /MAKE \
233 "mod_proxy_http2 - Win32 $(LONG)" /NORECURSE $(CTARGET)
237 # NOT EXIST("srclib\nghttp2")
241 @echo mod_http2 will not build unless nghttp2 is installed in srclib\nghttp2.
242 @echo Version 1.0 includes an lib\makefile.msvc that will satisfy this
249 cd srclib\$(UTILDIR)\dbd
250 for %d in (odbc $(DBD_LIST)) do \
251 $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak CFG="apr_dbd_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
253 for %d in ($(DBM_LIST) x) do if not %d == x \
254 $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak CFG="apr_dbm_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
256 !ELSEIF $(USESLN) == 1
257 for %d in (odbc $(DBD_LIST)) do \
258 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project apr_dbd_%d
259 for %d in ($(DBM_LIST) x) do if not %d == x \
260 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project apr_dbm_%d
262 @for %d in (odbc $(DBD_LIST)) do \
263 msdev $(TLP).dsw /USEENV /MAKE \
264 "apr_dbd_%d - Win32 $(LONG)" /NORECURSE $(CTARGET)
265 @for %d in ($(DBM_LIST) x) do if not %d == x \
266 msdev $(TLP).dsw /USEENV /MAKE \
267 "apr_dbm_%d - Win32 $(LONG)" /NORECURSE $(CTARGET)
271 !IF "$(INSTDIR)" == ""
274 !IF "$(DOMAINNAME)" == ""
275 DOMAINNAME=example.com
277 !IF "$(SERVERNAME)" == ""
278 SERVERNAME=www.$(DOMAINNAME)
280 !IF "$(SERVERADMIN)" == ""
281 SERVERADMIN=admin@$(DOMAINNAME)
286 !IF "$(SSLPORT)" == ""
292 !MESSAGE INSTDIR = $(INSTDIR)
293 !MESSAGE DOMAINNAME = $(DOMAINNAME)
294 !MESSAGE SERVERNAME = $(SERVERNAME)
295 !MESSAGE SERVERADMIN = $(SERVERADMIN)
296 !MESSAGE PORT = $(PORT)
297 !IF EXIST("srclib\openssl")
298 !MESSAGE SSLPORT = $(SSLPORT)
301 !MESSAGE To change these options use 'nmake -f Makefile.win [option=value]'
302 !MESSAGE Example: nmake -f Makefile.win PORT=8080
308 # Only default the behavior if MAKEOPT= is omitted
310 # Microsoft NMake options
312 !ELSEIF "$(MAKE)" == "make"
313 # Borland make options? Not really supported (yet)
322 bscmake.exe -nologo -Iu -o Apache.bsc *.sbr
326 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build
329 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug _build
332 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install
335 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug _build _install
337 clean: _cleanr _cleand
338 -if exist Browse\. rd /s Browse < << > nul
345 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
348 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET=CLEAN _build
351 echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
352 !IF !EXIST("srclib\apr-util")
354 $(MAKE) $(MAKEOPT) -f expat.mak CFG="expat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
358 $(MAKE) $(MAKEOPT) -f apr.mak CFG="apr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
359 $(MAKE) $(MAKEOPT) -f libapr.mak CFG="libapr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
361 !IF EXIST("srclib\apr-util")
363 $(MAKE) $(MAKEOPT) -f apriconv.mak CFG="apriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
364 $(MAKE) $(MAKEOPT) -f libapriconv.mak CFG="libapriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
365 !IF "$(CTARGET)" == "CLEAN"
366 $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
367 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
370 $(MAKE) $(MAKEOPT) -f Makefile.win all \
371 BUILD_MODE=$(LONG) BIND_MODE=shared
373 $(MAKE) $(MAKEOPT) -f Makefile.win all \
374 BUILD_MODE=$(LONG) BIND_MODE=shared
378 cd srclib\apr-util\xml\expat\lib
379 $(MAKE) $(MAKEOPT) -f xml.mak CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET)
381 $(MAKE) $(MAKEOPT) -f aprutil.mak CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
382 $(MAKE) $(MAKEOPT) -f libaprutil.mak CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
384 $(MAKE) $(MAKEOPT) -f apr_ldap.mak CFG="apr_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
387 # DBD, DBM components live now in apr
391 for %d in (odbc $(DBD_LIST)) do \
392 $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak CFG="apr_dbd_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
395 for %d in ($(DBM_LIST) x) do if not %d == x \
396 $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak CFG="apr_dbm_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
400 $(MAKE) $(MAKEOPT) -f gen_test_char.mak CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET)
402 $(MAKE) $(MAKEOPT) -f libhttpd.mak CFG="libhttpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
403 $(MAKE) $(MAKEOPT) -f httpd.mak CFG="httpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
404 # build ldap prior to authnz_ldap
406 $(MAKE) $(MAKEOPT) -f mod_ldap.mak CFG="mod_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
409 $(MAKE) $(MAKEOPT) -f mod_dbd.mak CFG="mod_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
412 $(MAKE) $(MAKEOPT) -f mod_access_compat.mak CFG="mod_access_compat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
413 $(MAKE) $(MAKEOPT) -f mod_allowmethods.mak CFG="mod_allowmethods - Win32 $(LONG)" RECURSE=0 $(CTARGET)
414 $(MAKE) $(MAKEOPT) -f mod_auth_basic.mak CFG="mod_auth_basic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
415 $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
416 $(MAKE) $(MAKEOPT) -f mod_auth_form.mak CFG="mod_auth_form - Win32 $(LONG)" RECURSE=0 $(CTARGET)
417 $(MAKE) $(MAKEOPT) -f mod_authn_anon.mak CFG="mod_authn_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
418 $(MAKE) $(MAKEOPT) -f mod_authn_core.mak CFG="mod_authn_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
419 $(MAKE) $(MAKEOPT) -f mod_authn_dbd.mak CFG="mod_authn_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
420 $(MAKE) $(MAKEOPT) -f mod_authn_dbm.mak CFG="mod_authn_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
421 $(MAKE) $(MAKEOPT) -f mod_authn_file.mak CFG="mod_authn_file - Win32 $(LONG)" RECURSE=0 $(CTARGET)
422 $(MAKE) $(MAKEOPT) -f mod_authn_socache.mak CFG="mod_authn_socache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
423 $(MAKE) $(MAKEOPT) -f mod_authnz_fcgi.mak CFG="mod_authnz_fcgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
424 $(MAKE) $(MAKEOPT) -f mod_authnz_ldap.mak CFG="mod_authnz_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
425 $(MAKE) $(MAKEOPT) -f mod_authz_core.mak CFG="mod_authz_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
426 $(MAKE) $(MAKEOPT) -f mod_authz_dbd.mak CFG="mod_authz_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
427 $(MAKE) $(MAKEOPT) -f mod_authz_dbm.mak CFG="mod_authz_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
428 $(MAKE) $(MAKEOPT) -f mod_authz_groupfile.mak CFG="mod_authz_groupfile - Win32 $(LONG)" RECURSE=0 $(CTARGET)
429 $(MAKE) $(MAKEOPT) -f mod_authz_host.mak CFG="mod_authz_host - Win32 $(LONG)" RECURSE=0 $(CTARGET)
430 $(MAKE) $(MAKEOPT) -f mod_authz_owner.mak CFG="mod_authz_owner - Win32 $(LONG)" RECURSE=0 $(CTARGET)
431 $(MAKE) $(MAKEOPT) -f mod_authz_user.mak CFG="mod_authz_user - Win32 $(LONG)" RECURSE=0 $(CTARGET)
433 cd modules\arch\win32
434 $(MAKE) $(MAKEOPT) -f mod_isapi.mak CFG="mod_isapi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
437 $(MAKE) $(MAKEOPT) -f mod_cache.mak CFG="mod_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
438 $(MAKE) $(MAKEOPT) -f mod_cache_disk.mak CFG="mod_cache_disk - Win32 $(LONG)" RECURSE=0 $(CTARGET)
439 $(MAKE) $(MAKEOPT) -f mod_cache_socache.mak CFG="mod_cache_socache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
440 $(MAKE) $(MAKEOPT) -f mod_file_cache.mak CFG="mod_file_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
441 $(MAKE) $(MAKEOPT) -f mod_socache_dbm.mak CFG="mod_socache_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
442 # $(MAKE) $(MAKEOPT) -f mod_socache_dc.mak CFG="mod_socache_dc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
443 $(MAKE) $(MAKEOPT) -f mod_socache_memcache.mak CFG="mod_socache_memcache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
444 $(MAKE) $(MAKEOPT) -f mod_socache_shmcb.mak CFG="mod_socache_shmcb - Win32 $(LONG)" RECURSE=0 $(CTARGET)
447 $(MAKE) $(MAKEOPT) -f mod_macro.mak CFG="mod_macro - Win32 $(LONG)" RECURSE=0 $(CTARGET)
448 $(MAKE) $(MAKEOPT) -f mod_watchdog.mak CFG="mod_watchdog - Win32 $(LONG)" RECURSE=0 $(CTARGET)
451 $(MAKE) $(MAKEOPT) -f mod_heartbeat.mak CFG="mod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
452 $(MAKE) $(MAKEOPT) -f mod_heartmonitor.mak CFG="mod_heartmonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
455 $(MAKE) $(MAKEOPT) -f mod_dav.mak CFG="mod_dav - Win32 $(LONG)" RECURSE=0 $(CTARGET)
458 $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
461 $(MAKE) $(MAKEOPT) -f mod_dav_lock.mak CFG="mod_dav_lock - Win32 $(LONG)" RECURSE=0 $(CTARGET)
465 $(MAKE) $(MAKEOPT) -f mod_bucketeer.mak CFG="mod_bucketeer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
467 $(MAKE) $(MAKEOPT) -f mod_dumpio.mak CFG="mod_dumpio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
471 $(MAKE) $(MAKEOPT) -f mod_echo.mak CFG="mod_echo - Win32 $(LONG)" RECURSE=0 $(CTARGET)
476 $(MAKE) $(MAKEOPT) -f mod_case_filter.mak CFG="mod_case_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
477 $(MAKE) $(MAKEOPT) -f mod_case_filter_in.mak CFG="mod_case_filter_in - Win32 $(LONG)" RECURSE=0 $(CTARGET)
478 $(MAKE) $(MAKEOPT) -f mod_example_hooks.mak CFG="mod_example_hooks - Win32 $(LONG)" RECURSE=0 $(CTARGET)
479 $(MAKE) $(MAKEOPT) -f mod_example_ipc.mak CFG="mod_example_ipc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
483 $(MAKE) $(MAKEOPT) -f mod_buffer.mak CFG="mod_buffer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
484 $(MAKE) $(MAKEOPT) -f mod_charset_lite.mak CFG="mod_charset_lite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
485 $(MAKE) $(MAKEOPT) -f mod_data.mak CFG="mod_data - Win32 $(LONG)" RECURSE=0 $(CTARGET)
486 !IF EXIST("srclib\zlib")
487 $(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
489 $(MAKE) $(MAKEOPT) -f mod_ext_filter.mak CFG="mod_ext_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
490 $(MAKE) $(MAKEOPT) -f mod_filter.mak CFG="mod_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
491 $(MAKE) $(MAKEOPT) -f mod_include.mak CFG="mod_include - Win32 $(LONG)" RECURSE=0 $(CTARGET)
492 !IF EXIST("srclib\libxml2")
493 $(MAKE) $(MAKEOPT) -f mod_proxy_html.mak CFG="mod_proxy_html - Win32 $(LONG)" RECURSE=0 $(CTARGET)
494 $(MAKE) $(MAKEOPT) -f mod_xml2enc.mak CFG="mod_xml2enc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
496 $(MAKE) $(MAKEOPT) -f mod_ratelimit.mak CFG="mod_ratelimit - Win32 $(LONG)" RECURSE=0 $(CTARGET)
497 $(MAKE) $(MAKEOPT) -f mod_reflector.mak CFG="mod_reflector - Win32 $(LONG)" RECURSE=0 $(CTARGET)
498 $(MAKE) $(MAKEOPT) -f mod_reqtimeout.mak CFG="mod_reqtimeout - Win32 $(LONG)" RECURSE=0 $(CTARGET)
499 $(MAKE) $(MAKEOPT) -f mod_request.mak CFG="mod_request - Win32 $(LONG)" RECURSE=0 $(CTARGET)
500 $(MAKE) $(MAKEOPT) -f mod_sed.mak CFG="mod_sed - Win32 $(LONG)" RECURSE=0 $(CTARGET)
501 $(MAKE) $(MAKEOPT) -f mod_substitute.mak CFG="mod_substitute - Win32 $(LONG)" RECURSE=0 $(CTARGET)
503 cd modules\generators
504 $(MAKE) $(MAKEOPT) -f mod_asis.mak CFG="mod_asis - Win32 $(LONG)" RECURSE=0 $(CTARGET)
505 $(MAKE) $(MAKEOPT) -f mod_autoindex.mak CFG="mod_autoindex - Win32 $(LONG)" RECURSE=0 $(CTARGET)
506 $(MAKE) $(MAKEOPT) -f mod_cgi.mak CFG="mod_cgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
507 $(MAKE) $(MAKEOPT) -f mod_info.mak CFG="mod_info - Win32 $(LONG)" RECURSE=0 $(CTARGET)
508 $(MAKE) $(MAKEOPT) -f mod_status.mak CFG="mod_status - Win32 $(LONG)" RECURSE=0 $(CTARGET)
511 $(MAKE) $(MAKEOPT) -f mod_mime.mak CFG="mod_mime - Win32 $(LONG)" RECURSE=0 $(CTARGET)
514 $(MAKE) $(MAKEOPT) -f mod_log_config.mak CFG="mod_log_config - Win32 $(LONG)" RECURSE=0 $(CTARGET)
515 $(MAKE) $(MAKEOPT) -f mod_log_debug.mak CFG="mod_log_debug - Win32 $(LONG)" RECURSE=0 $(CTARGET)
516 $(MAKE) $(MAKEOPT) -f mod_log_forensic.mak CFG="mod_log_forensic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
517 $(MAKE) $(MAKEOPT) -f mod_logio.mak CFG="mod_logio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
519 !IF EXIST("srclib\lua")
521 $(MAKE) $(MAKEOPT) -f mod_lua.mak CFG="mod_lua - Win32 $(LONG)" RECURSE=0 $(CTARGET)
525 $(MAKE) $(MAKEOPT) -f mod_actions.mak CFG="mod_actions - Win32 $(LONG)" RECURSE=0 $(CTARGET)
526 $(MAKE) $(MAKEOPT) -f mod_alias.mak CFG="mod_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
527 $(MAKE) $(MAKEOPT) -f mod_dir.mak CFG="mod_dir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
528 $(MAKE) $(MAKEOPT) -f mod_imagemap.mak CFG="mod_imagemap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
529 $(MAKE) $(MAKEOPT) -f mod_negotiation.mak CFG="mod_negotiation - Win32 $(LONG)" RECURSE=0 $(CTARGET)
530 $(MAKE) $(MAKEOPT) -f mod_rewrite.mak CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
531 $(MAKE) $(MAKEOPT) -f mod_speling.mak CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
532 $(MAKE) $(MAKEOPT) -f mod_userdir.mak CFG="mod_userdir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
533 $(MAKE) $(MAKEOPT) -f mod_vhost_alias.mak CFG="mod_vhost_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
536 $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
537 $(MAKE) $(MAKEOPT) -f mod_env.mak CFG="mod_env - Win32 $(LONG)" RECURSE=0 $(CTARGET)
538 $(MAKE) $(MAKEOPT) -f mod_expires.mak CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
539 $(MAKE) $(MAKEOPT) -f mod_headers.mak CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
540 $(MAKE) $(MAKEOPT) -f mod_ident.mak CFG="mod_ident - Win32 $(LONG)" RECURSE=0 $(CTARGET)
541 $(MAKE) $(MAKEOPT) -f mod_mime_magic.mak CFG="mod_mime_magic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
542 $(MAKE) $(MAKEOPT) -f mod_remoteip.mak CFG="mod_remoteip - Win32 $(LONG)" RECURSE=0 $(CTARGET)
543 $(MAKE) $(MAKEOPT) -f mod_setenvif.mak CFG="mod_setenvif - Win32 $(LONG)" RECURSE=0 $(CTARGET)
544 $(MAKE) $(MAKEOPT) -f mod_unique_id.mak CFG="mod_unique_id - Win32 $(LONG)" RECURSE=0 $(CTARGET)
545 $(MAKE) $(MAKEOPT) -f mod_usertrack.mak CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
546 $(MAKE) $(MAKEOPT) -f mod_version.mak CFG="mod_version - Win32 $(LONG)" RECURSE=0 $(CTARGET)
549 $(MAKE) $(MAKEOPT) -f mod_proxy.mak CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
550 $(MAKE) $(MAKEOPT) -f mod_proxy_ajp.mak CFG="mod_proxy_ajp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
551 $(MAKE) $(MAKEOPT) -f mod_proxy_balancer.mak CFG="mod_proxy_balancer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
552 $(MAKE) $(MAKEOPT) -f mod_proxy_connect.mak CFG="mod_proxy_connect - Win32 $(LONG)" RECURSE=0 $(CTARGET)
553 $(MAKE) $(MAKEOPT) -f mod_proxy_express.mak CFG="mod_proxy_express - Win32 $(LONG)" RECURSE=0 $(CTARGET)
554 $(MAKE) $(MAKEOPT) -f mod_proxy_fcgi.mak CFG="mod_proxy_fcgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
555 $(MAKE) $(MAKEOPT) -f mod_proxy_ftp.mak CFG="mod_proxy_ftp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
556 $(MAKE) $(MAKEOPT) -f mod_proxy_hcheck.mak CFG="mod_proxy_hcheck - Win32 $(LONG)" RECURSE=0 $(CTARGET)
557 $(MAKE) $(MAKEOPT) -f mod_proxy_http.mak CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
558 $(MAKE) $(MAKEOPT) -f mod_proxy_scgi.mak CFG="mod_proxy_scgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
559 $(MAKE) $(MAKEOPT) -f mod_proxy_wstunnel.mak CFG="mod_proxy_wstunnel - Win32 $(LONG)" RECURSE=0 $(CTARGET)
561 cd modules\proxy\balancers
562 $(MAKE) $(MAKEOPT) -f mod_lbmethod_bybusyness.mak CFG="mod_lbmethod_bybusyness - Win32 $(LONG)" RECURSE=0 $(CTARGET)
563 $(MAKE) $(MAKEOPT) -f mod_lbmethod_byrequests.mak CFG="mod_lbmethod_byrequests - Win32 $(LONG)" RECURSE=0 $(CTARGET)
564 $(MAKE) $(MAKEOPT) -f mod_lbmethod_bytraffic.mak CFG="mod_lbmethod_bytraffic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
565 $(MAKE) $(MAKEOPT) -f mod_lbmethod_heartbeat.mak CFG="mod_lbmethod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
567 # mod_proxy_http2 must be built after mod_proxy and mod_http2
568 !IF EXIST("srclib\nghttp2")
570 $(MAKE) $(MAKEOPT) -f mod_http2.mak CFG="mod_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
571 $(MAKE) $(MAKEOPT) -f mod_proxy_http2.mak CFG="mod_proxy_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
575 $(MAKE) $(MAKEOPT) -f mod_session.mak CFG="mod_session - Win32 $(LONG)" RECURSE=0 $(CTARGET)
576 $(MAKE) $(MAKEOPT) -f mod_session_cookie.mak CFG="mod_session_cookie - Win32 $(LONG)" RECURSE=0 $(CTARGET)
577 $(MAKE) $(MAKEOPT) -f mod_session_dbd.mak CFG="mod_session_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
580 $(MAKE) $(MAKEOPT) -f mod_slotmem_plain.mak CFG="mod_slotmem_plain - Win32 $(LONG)" RECURSE=0 $(CTARGET)
581 $(MAKE) $(MAKEOPT) -f mod_slotmem_shm.mak CFG="mod_slotmem_shm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
583 !IF EXIST("srclib\openssl")
585 # $(MAKE) $(MAKEOPT) -f mod_session_crypto.mak CFG="mod_session_crypto - Win32 $(LONG)" RECURSE=0 $(CTARGET)
588 $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
591 $(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
595 $(MAKE) $(MAKEOPT) -f ab.mak CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
596 # $(MAKE) $(MAKEOPT) -f fcgistarter.mak CFG="fcgistarter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
597 $(MAKE) $(MAKEOPT) -f htcacheclean.mak CFG="htcacheclean - Win32 $(LONG)" RECURSE=0 $(CTARGET)
598 $(MAKE) $(MAKEOPT) -f htdbm.mak CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
599 $(MAKE) $(MAKEOPT) -f htdigest.mak CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
600 $(MAKE) $(MAKEOPT) -f htpasswd.mak CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
601 $(MAKE) $(MAKEOPT) -f httxt2dbm.mak CFG="httxt2dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
602 $(MAKE) $(MAKEOPT) -f logresolve.mak CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
603 $(MAKE) $(MAKEOPT) -f rotatelogs.mak CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
606 $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
607 $(MAKE) $(MAKEOPT) -f wintty.mak CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
610 !ELSEIF $(USESLN) == 1
613 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
616 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET="/clean" _build
619 echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
621 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project BuildAll
623 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project BuildBin
625 !IF EXIST("srclib\openssl")
626 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_ssl
627 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project abs
629 !IF EXIST("srclib\zlib")
630 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_deflate
632 !IF EXIST("srclib\lua")
633 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_lua
635 !IF EXIST("srclib\libxml2")
636 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_proxy_html
637 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_xml2enc
643 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
646 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET="/CLEAN" _build
649 @echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
651 @msdev $(TLP).dsw /USEENV /MAKE \
652 "BuildAll - Win32 $(LONG)" $(CTARGET)
654 @msdev $(TLP).dsw /USEENV /MAKE \
655 "BuildBin - Win32 $(LONG)" $(CTARGET)
657 !IF "$(CTARGET)" == "/CLEAN"
658 !IF EXIST("srclib\apr-iconv")
660 @$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
661 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
665 !IF EXIST("srclib\openssl")
666 @msdev $(TLP).dsw /USEENV /MAKE \
667 "mod_ssl - Win32 $(LONG)" \
668 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
670 !IF EXIST("srclib\zlib")
671 @msdev $(TLP).dsw /USEENV /MAKE \
672 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
674 !IF EXIST("srclib\lua")
675 @msdev $(TLP).dsw /USEENV /MAKE \
676 "mod_lua - Win32 $(LONG)" /NORECURSE $(CTARGET)
678 !IF EXIST("srclib\libxml2")
679 @msdev $(TLP).dsw /USEENV /MAKE \
680 "mod_proxy_html - Win32 $(LONG)" /NORECURSE $(CTARGET)
681 @msdev $(TLP).dsw /USEENV /MAKE \
682 "mod_xml2enc - Win32 $(LONG)" /NORECURSE $(CTARGET)
689 copy $(LONG)\httpd.$(src_exe) "$(inst_exe)" <.y
690 copy $(LONG)\libhttpd.$(src_dll) "$(inst_dll)" <.y
691 copy srclib\apr\$(LONG)\libapr-1.$(src_dll) "$(inst_dll)" <.y
692 !IF EXIST("srclib\apr-util")
693 copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll) "$(inst_dll)" <.y
694 copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll) "$(inst_dll)" <.y
695 copy srclib\apr-util\ldap\$(LONG)\apr_ldap-1.$(src_dll) "$(inst_dll)" <.y
697 for %d in (odbc $(DBD_LIST)) do ( \
698 copy srclib\$(UTILDIR)\dbd\$(LONG)\apr_dbd_%d-1.$(src_dll) "$(inst_dll)" <.y \
700 for %d in ($(DBM_LIST) x) do if not %d == x ( \
701 copy srclib\$(UTILDIR)\dbm\$(LONG)\apr_dbm_%d-1.$(src_dll) "$(inst_dll)" <.y \
703 !IF "$(SHORT)" == "D"
704 copy srclib\pcre\pcred.$(src_dll) "$(inst_dll)" <.y
706 copy srclib\pcre\pcre.$(src_dll) "$(inst_dll)" <.y
708 copy modules\aaa\$(LONG)\mod_access_compat.$(src_so) "$(inst_so)" <.y
709 copy modules\aaa\$(LONG)\mod_allowmethods.$(src_so) "$(inst_so)" <.y
710 copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so) "$(inst_so)" <.y
711 copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so) "$(inst_so)" <.y
712 copy modules\aaa\$(LONG)\mod_auth_form.$(src_so) "$(inst_so)" <.y
713 copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so) "$(inst_so)" <.y
714 copy modules\aaa\$(LONG)\mod_authn_core.$(src_so) "$(inst_so)" <.y
715 copy modules\aaa\$(LONG)\mod_authn_dbd.$(src_so) "$(inst_so)" <.y
716 copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so) "$(inst_so)" <.y
717 copy modules\aaa\$(LONG)\mod_authn_file.$(src_so) "$(inst_so)" <.y
718 copy modules\aaa\$(LONG)\mod_authn_socache.$(src_so) "$(inst_so)" <.y
719 copy modules\aaa\$(LONG)\mod_authnz_fcgi.$(src_so) "$(inst_so)" <.y
720 copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so) "$(inst_so)" <.y
721 copy modules\aaa\$(LONG)\mod_authz_core.$(src_so) "$(inst_so)" <.y
722 copy modules\aaa\$(LONG)\mod_authz_dbd.$(src_so) "$(inst_so)" <.y
723 copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so) "$(inst_so)" <.y
724 copy modules\aaa\$(LONG)\mod_authz_core.$(src_so) "$(inst_so)" <.y
725 copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so) "$(inst_so)" <.y
726 copy modules\aaa\$(LONG)\mod_authz_host.$(src_so) "$(inst_so)" <.y
727 copy modules\aaa\$(LONG)\mod_authz_owner.$(src_so) "$(inst_so)" <.y
728 copy modules\aaa\$(LONG)\mod_authz_user.$(src_so) "$(inst_so)" <.y
729 copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so) "$(inst_so)" <.y
730 copy modules\cache\$(LONG)\mod_cache.$(src_so) "$(inst_so)" <.y
731 copy modules\cache\$(LONG)\mod_cache_disk.$(src_so) "$(inst_so)" <.y
732 copy modules\cache\$(LONG)\mod_cache_socache.$(src_so) "$(inst_so)" <.y
733 copy modules\cache\$(LONG)\mod_file_cache.$(src_so) "$(inst_so)" <.y
734 copy modules\cache\$(LONG)\mod_socache_dbm.$(src_so) "$(inst_so)" <.y
735 # copy modules\cache\$(LONG)\mod_socache_dc.$(src_so) "$(inst_so)" <.y
736 copy modules\cache\$(LONG)\mod_socache_memcache.$(src_so) "$(inst_so)" <.y
737 copy modules\cache\$(LONG)\mod_socache_shmcb.$(src_so) "$(inst_so)" <.y
738 copy modules\core\$(LONG)\mod_macro.$(src_so) "$(inst_so)" <.y
739 copy modules\core\$(LONG)\mod_watchdog.$(src_so) "$(inst_so)" <.y
740 copy modules\cluster\$(LONG)\mod_heartbeat.$(src_so) "$(inst_so)" <.y
741 copy modules\cluster\$(LONG)\mod_heartmonitor.$(src_so) "$(inst_so)" <.y
742 copy modules\database\$(LONG)\mod_dbd.$(src_so) "$(inst_so)" <.y
743 copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so) "$(inst_so)" <.y
744 copy modules\dav\lock\$(LONG)\mod_dav_lock.$(src_so) "$(inst_so)" <.y
745 copy modules\dav\main\$(LONG)\mod_dav.$(src_so) "$(inst_so)" <.y
747 copy modules\debugging\$(LONG)\mod_bucketeer.$(src_so) "$(inst_so)" <.y
749 copy modules\debugging\$(LONG)\mod_dumpio.$(src_so) "$(inst_so)" <.y
751 copy modules\echo\$(LONG)\mod_echo.$(src_so) "$(inst_so)" <.y
752 copy modules\examples\$(LONG)\mod_case_filter.$(src_so) "$(inst_so)" <.y
753 copy modules\examples\$(LONG)\mod_case_filter_in.$(src_so) "$(inst_so)" <.y
754 copy modules\examples\$(LONG)\mod_example_hooks.$(src_so) "$(inst_so)" <.y
755 copy modules\examples\$(LONG)\mod_example_ipc.$(src_so) "$(inst_so)" <.y
757 copy modules\filters\$(LONG)\mod_buffer.$(src_so) "$(inst_so)" <.y
758 copy modules\filters\$(LONG)\mod_charset_lite.$(src_so) "$(inst_so)" <.y
759 copy modules\filters\$(LONG)\mod_data.$(src_so) "$(inst_so)" <.y
760 !IF EXIST("srclib\zlib")
761 copy modules\filters\$(LONG)\mod_deflate.$(src_so) "$(inst_so)" <.y
762 !IF EXIST("srclib\zlib\zlib1.$(src_dll)")
763 copy srclib\zlib\zlib1.$(src_dll) "$(inst_dll)" <.y
766 copy modules\filters\$(LONG)\mod_ext_filter.$(src_so) "$(inst_so)" <.y
767 copy modules\filters\$(LONG)\mod_filter.$(src_so) "$(inst_so)" <.y
768 copy modules\filters\$(LONG)\mod_include.$(src_so) "$(inst_so)" <.y
769 !IF EXIST("srclib\libxml2")
770 copy modules\filters\$(LONG)\mod_proxy_html.$(src_so) "$(inst_so)" <.y
771 copy modules\filters\$(LONG)\mod_xml2enc.$(src_so) "$(inst_so)" <.y
772 !IF EXIST("srclib\libxml2\win32\bin.msvc\libxml2.$(src_dll)")
773 copy srclib\libxml2\win32\bin.msvc\libxml2.$(src_dll) "$(inst_dll)" <.y
776 copy modules\filters\$(LONG)\mod_ratelimit.$(src_so) "$(inst_so)" <.y
777 copy modules\filters\$(LONG)\mod_reflector.$(src_so) "$(inst_so)" <.y
778 copy modules\filters\$(LONG)\mod_reqtimeout.$(src_so) "$(inst_so)" <.y
779 copy modules\filters\$(LONG)\mod_request.$(src_so) "$(inst_so)" <.y
780 copy modules\filters\$(LONG)\mod_sed.$(src_so) "$(inst_so)" <.y
781 copy modules\filters\$(LONG)\mod_substitute.$(src_so) "$(inst_so)" <.y
782 copy modules\generators\$(LONG)\mod_asis.$(src_so) "$(inst_so)" <.y
783 copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
784 copy modules\generators\$(LONG)\mod_cgi.$(src_so) "$(inst_so)" <.y
785 copy modules\generators\$(LONG)\mod_info.$(src_so) "$(inst_so)" <.y
786 copy modules\generators\$(LONG)\mod_status.$(src_so) "$(inst_so)" <.y
787 copy modules\http\$(LONG)\mod_mime.$(src_so) "$(inst_so)" <.y
788 !IF EXIST("srclib\nghttp2")
789 copy modules\http2\$(LONG)\mod_http2.$(src_so) "$(inst_so)" <.y
790 copy modules\http2\$(LONG)\mod_proxy_http2.$(src_so) "$(inst_so)" <.y
791 !IF "$(SHORT)" == "D"
792 copy srclib\nghttp2\lib\MSVC_obj\nghttp2d.$(src_dll) "$(inst_dll)" <.y
794 copy srclib\nghttp2\lib\MSVC_obj\nghttp2.$(src_dll) "$(inst_dll)" <.y
797 copy modules\ldap\$(LONG)\mod_ldap.$(src_so) "$(inst_so)" <.y
798 copy modules\loggers\$(LONG)\mod_log_config.$(src_so) "$(inst_so)" <.y
799 copy modules\loggers\$(LONG)\mod_log_debug.$(src_so) "$(inst_so)" <.y
800 copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
801 copy modules\loggers\$(LONG)\mod_logio.$(src_so) "$(inst_so)" <.y
802 !IF EXIST("srclib\lua")
803 copy modules\lua\$(LONG)\mod_lua.$(src_so) "$(inst_so)" <.y
804 !IF EXIST("srclib\lua\src\lua51.$(src_dll)")
805 copy srclib\lua\src\lua51.$(src_dll) "$(inst_dll)" <.y
808 copy modules\mappers\$(LONG)\mod_actions.$(src_so) "$(inst_so)" <.y
809 copy modules\mappers\$(LONG)\mod_alias.$(src_so) "$(inst_so)" <.y
810 copy modules\mappers\$(LONG)\mod_dir.$(src_so) "$(inst_so)" <.y
811 copy modules\mappers\$(LONG)\mod_imagemap.$(src_so) "$(inst_so)" <.y
812 copy modules\mappers\$(LONG)\mod_negotiation.$(src_so) "$(inst_so)" <.y
813 copy modules\mappers\$(LONG)\mod_rewrite.$(src_so) "$(inst_so)" <.y
814 copy modules\mappers\$(LONG)\mod_speling.$(src_so) "$(inst_so)" <.y
815 copy modules\mappers\$(LONG)\mod_userdir.$(src_so) "$(inst_so)" <.y
816 copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so) "$(inst_so)" <.y
817 copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so) "$(inst_so)" <.y
818 copy modules\metadata\$(LONG)\mod_env.$(src_so) "$(inst_so)" <.y
819 copy modules\metadata\$(LONG)\mod_expires.$(src_so) "$(inst_so)" <.y
820 copy modules\metadata\$(LONG)\mod_headers.$(src_so) "$(inst_so)" <.y
821 copy modules\metadata\$(LONG)\mod_ident.$(src_so) "$(inst_so)" <.y
822 copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so) "$(inst_so)" <.y
823 copy modules\metadata\$(LONG)\mod_remoteip.$(src_so) "$(inst_so)" <.y
824 copy modules\metadata\$(LONG)\mod_setenvif.$(src_so) "$(inst_so)" <.y
825 copy modules\metadata\$(LONG)\mod_unique_id.$(src_so) "$(inst_so)" <.y
826 copy modules\metadata\$(LONG)\mod_usertrack.$(src_so) "$(inst_so)" <.y
827 copy modules\metadata\$(LONG)\mod_version.$(src_so) "$(inst_so)" <.y
828 copy modules\proxy\$(LONG)\mod_proxy.$(src_so) "$(inst_so)" <.y
829 copy modules\proxy\$(LONG)\mod_proxy_ajp.$(src_so) "$(inst_so)" <.y
830 copy modules\proxy\$(LONG)\mod_proxy_balancer.$(src_so) "$(inst_so)" <.y
831 copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so) "$(inst_so)" <.y
832 copy modules\proxy\$(LONG)\mod_proxy_express.$(src_so) "$(inst_so)" <.y
833 copy modules\proxy\$(LONG)\mod_proxy_fcgi.$(src_so) "$(inst_so)" <.y
834 copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so) "$(inst_so)" <.y
835 copy modules\proxy\$(LONG)\mod_proxy_hcheck.$(src_so) "$(inst_so)" <.y
836 copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so) "$(inst_so)" <.y
837 copy modules\proxy\$(LONG)\mod_proxy_scgi.$(src_so) "$(inst_so)" <.y
838 copy modules\proxy\$(LONG)\mod_proxy_wstunnel.$(src_so) "$(inst_so)" <.y
839 copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bybusyness.$(src_so) "$(inst_so)" <.y
840 copy modules\proxy\balancers\$(LONG)\mod_lbmethod_byrequests.$(src_so) "$(inst_so)" <.y
841 copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bytraffic.$(src_so) "$(inst_so)" <.y
842 copy modules\proxy\balancers\$(LONG)\mod_lbmethod_heartbeat.$(src_so) "$(inst_so)" <.y
843 copy modules\session\$(LONG)\mod_session.$(src_so) "$(inst_so)" <.y
844 copy modules\session\$(LONG)\mod_session_cookie.$(src_so) "$(inst_so)" <.y
845 copy modules\session\$(LONG)\mod_session_dbd.$(src_so) "$(inst_so)" <.y
846 copy modules\slotmem\$(LONG)\mod_slotmem_plain.$(src_so) "$(inst_so)" <.y
847 copy modules\slotmem\$(LONG)\mod_slotmem_shm.$(src_so) "$(inst_so)" <.y
848 !IF EXIST("srclib\openssl")
849 # copy modules\session\$(LONG)\mod_session_crypto.$(src_so) "$(inst_so)" <.y
850 copy modules\ssl\$(LONG)\mod_ssl.$(src_so) "$(inst_so)" <.y
851 -copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll) "$(inst_dll)" <.y
852 -copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll) "$(inst_dll)" <.y
853 -copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe) "$(inst_exe)" <.y
854 copy support\$(LONG)\abs.$(src_exe) "$(inst_exe)" <.y
856 copy support\$(LONG)\ab.$(src_exe) "$(inst_exe)" <.y
857 # copy support\$(LONG)\fcgistarter.$(src_exe) "$(inst_exe)" <.y
858 copy support\$(LONG)\htcacheclean.$(src_exe) "$(inst_exe)" <.y
859 copy support\$(LONG)\htdbm.$(src_exe) "$(inst_exe)" <.y
860 copy support\$(LONG)\htdigest.$(src_exe) "$(inst_exe)" <.y
861 copy support\$(LONG)\htpasswd.$(src_exe) "$(inst_exe)" <.y
862 copy support\$(LONG)\httxt2dbm.$(src_exe) "$(inst_exe)" <.y
863 copy support\$(LONG)\logresolve.$(src_exe) "$(inst_exe)" <.y
864 copy support\$(LONG)\rotatelogs.$(src_exe) "$(inst_exe)" <.y
865 copy support\win32\$(LONG)\ApacheMonitor.$(src_exe) "$(inst_exe)" <.y
866 copy support\win32\$(LONG)\wintty.$(src_exe) "$(inst_exe)" <.y
869 # First we create the tree and populate the README so that
870 # whatever happens, all licensing has already propagated.
871 # Then repeatedly invoke the _copybin build to copy the
872 # real binaries, then pdb symbols, anf finally dbg syms.
873 # Then hit docs of various sorts, then includes and libs,
874 # and finally do the .conf magic.
880 -mkdir "$(INSTDIR)\bin"
881 !IF EXIST("srclib\apr-util")
882 -mkdir "$(INSTDIR)\bin\iconv"
884 -mkdir "$(INSTDIR)\cgi-bin"
885 -mkdir "$(INSTDIR)\conf"
886 -mkdir "$(INSTDIR)\conf\extra"
887 -mkdir "$(INSTDIR)\conf\original"
888 -mkdir "$(INSTDIR)\conf\original\extra"
889 -mkdir "$(INSTDIR)\error"
890 -mkdir "$(INSTDIR)\htdocs"
891 -mkdir "$(INSTDIR)\manual"
892 -mkdir "$(INSTDIR)\icons"
893 -mkdir "$(INSTDIR)\include"
894 -mkdir "$(INSTDIR)\lib"
895 -mkdir "$(INSTDIR)\logs"
896 -mkdir "$(INSTDIR)\modules"
897 copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
898 copy CHANGES "$(INSTDIR)\CHANGES.txt" <.y
899 copy INSTALL "$(INSTDIR)\INSTALL.txt" <.y
900 copy LICENSE "$(INSTDIR)\LICENSE.txt" <.y
901 copy NOTICE "$(INSTDIR)\NOTICE.txt" <.y
902 copy README "$(INSTDIR)\README.txt" <.y
903 type << >> "$(INSTDIR)\NOTICE.txt"
905 Regular expression support is provided by the PCRE library package,
906 which is open source software, written by Philip Hazel, and copyright
907 by the University of Cambridge, England. The original software is
909 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
911 -awk -f <<script1.awk < "srclib\pcre\LICENCE" >> "$(INSTDIR)\LICENSE.txt"
914 print "For the pcre.dll component:";
916 while ( getline > 0 ) {
917 if ( $$0 ~ /^End$$/ ) $$0 = "END OF PCRE LICENSE";
922 !IF EXIST("srclib\openssl")
923 -copy srclib\openssl\apps\openssl.cnf "$(INSTDIR)\conf\openssl.cnf" <.y
924 type << >> "$(INSTDIR)\NOTICE.txt"
926 This binary distribution includes cryptographic software written by
927 Eric Young (eay@cryptsoft.com), software written by Tim Hudson
928 (tjh@cryptsoft.com), and software developed by the OpenSSL Project
929 for use in the OpenSSL Toolkit <http://www.openssl.org/>.
931 -awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
934 print "For the libeay32.dll, ssleay32.dll and openssl.exe components:";
936 while ( getline > 0 ) {
941 copy << "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
943 Apache HTTP Server 2.4 Limited OpenSSL Distribution
945 This binary distribution includes the minimal components of OpenSSL required
946 to support mod_ssl for Apache HTTP Server version 2.4 (details are listed
947 in OPENSSL-README.txt.) For the complete list of CHANGES to this and later
948 versions of OpenSSL, please refer to the definative source,
949 <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
950 full binary or source distribution package from <http://www.openssl.org/>.
952 These OpenSSL binaries were built for distribution from the U.S. without
953 support for the patented encryption methods IDEA, MDC-2 or RC5.
955 --------------------------------------------------------------------------------
958 -copy "$(INSTDIR)\OPENSSL-NEWS.txt" \
959 + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt"
960 copy << "$(INSTDIR)\OPENSSL-README.txt" <.y
962 Apache HTTP Server 2.4 Limited OpenSSL Distribution
964 This binary installation of OpenSSL is a limited distribution of the
965 files derived from the OpenSSL project:
967 LICENSE.txt (includes openssl LICENSE)
975 These are the minimal libraries and tools required to use mod_ssl as
976 distributed with Apache HTTP Server version 2.4. No library link files,
977 headers or sources are distributed with this binary distribution. Please
978 refer to the <http://www.openssl.org/> site for complete source or binary
981 These OpenSSL binaries were built for distribution from the U.S. without
982 support for the patented encryption methods IDEA, MDC-2 or RC5.
984 The Apache HTTP Project only supports the binary distribution of these files
985 and development of the mod_ssl module. We cannot provide support assistance
986 for using or configuring the OpenSSL package or these modules. Please refer
987 all installation and configuration questions to the appropriate forum,
988 such as the user supported lists, <http://httpd.apache.org/userslist.html>
989 the Apache HTTP Server user's list or <http://www.openssl.org/support/> the
990 OpenSSL support page.
992 --------------------------------------------------------------------------------
995 -copy "$(INSTDIR)\OPENSSL-README.txt" \
996 + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt"
998 !IF EXIST("srclib\zlib")
999 type << >> "$(INSTDIR)\NOTICE.txt"
1001 This binary distribution of mod_deflate.so includes zlib compression code
1002 <http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
1003 and Mark Adler (madler@alumni.caltech.edu) .
1005 -awk -f <<script.awk < "srclib\zlib\README" >> "$(INSTDIR)\LICENSE.txt"
1007 while ( getline > 0 ) {
1008 if ( $$0 ~ /Copyright notice:/ ) {
1010 print "For the mod_deflate zlib compression component:";
1011 while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
1021 !IF EXIST("srclib\lua")
1022 type << >> "$(INSTDIR)\NOTICE.txt"
1024 This binary distribution of mod_lua.so includes the Lua language,
1025 developed at Lua.org, a laboratory of the Department of Computer Science
1026 of PUC-Rio (the Pontifical Catholic University of Rio de Janeiro in Brazil).
1027 For complete information, visit Lua's web site at http://www.lua.org/
1029 -awk -f <<script.awk < "srclib\lua\COPYRIGHT" >> "$(INSTDIR)\LICENSE.txt"
1032 print "For the mod_lua language component:";
1034 while ( getline > 0 && $$0 !~ /end of COPYRIGHT/ ) {
1041 !IF EXIST("srclib\libxml2")
1042 type << >> "$(INSTDIR)\NOTICE.txt"
1044 This binary distributions of mod_proxy_html.so and mod_xml2enc.so include the
1045 libxml2 C library written by Daniel Veillard (daniel veillard.com), Bjorn
1046 Reese (breese users.sourceforge.net) and Gary Pennington (Gary.Pennington
1047 uk.sun.com). For complete information, visit LibXML2's web site at
1048 https://http://www.xmlsoft.org/
1050 -awk -f <<script.awk < "srclib\libxml2\Copyright" >> "$(INSTDIR)\LICENSE.txt"
1053 print "For the mod_proxy_html and mod_xml2enc components:";
1055 while ( getline > 0 ) {
1062 !IF EXIST("srclib\nghttp2")
1063 type << >> "$(INSTDIR)\NOTICE.txt"
1065 This binary distribution of mod_http2.so includes nghttp2 C library written
1066 by Tatsuhiro Tsujikawa. For complete information, visit nghttp2's web site
1067 at https://nghttp2.org/
1069 -awk -f <<script.awk < "srclib\nghttp2\COPYING" >> "$(INSTDIR)\LICENSE.txt"
1072 print "For the mod_http2 component:";
1074 while ( getline > 0 ) {
1081 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
1082 _copybin src_exe=exe src_dll=dll src_so=so \
1083 inst_exe="$(INSTDIR)\bin" \
1084 inst_dll="$(INSTDIR)\bin" \
1085 inst_so="$(INSTDIR)\modules"
1086 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
1087 _copybin src_exe=pdb src_dll=pdb src_so=pdb \
1088 inst_exe="$(INSTDIR)\bin" \
1089 inst_dll="$(INSTDIR)\bin" \
1090 inst_so="$(INSTDIR)\modules"
1091 !IF EXIST("srclib\apr-util")
1093 $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
1094 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
1095 INSTALL_DIR="$(INSTDIR)\bin\iconv"
1098 copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
1099 -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
1101 if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
1102 gsub( /\\/, "/", perlroot );
1103 print "#!" perlroot;
1107 if ( $$0 !~ /^#!/ ) {
1112 xcopy docs\error "$(INSTDIR)\error" /s /d < .a
1113 xcopy docs\docroot "$(INSTDIR)\htdocs" /d < .a
1114 xcopy docs\icons "$(INSTDIR)\icons" /s /d < .a
1115 xcopy docs\manual "$(INSTDIR)\manual" /s /d < .a
1117 srclib\expat\lib\expat.h \
1118 srclib\apr-util\xml\expat\lib\expat.h \
1119 srclib\apr\include\*.h \
1120 srclib\apr-util\include\*.h \
1123 modules\cache\mod_cache.h \
1124 modules\cache\cache_common.h \
1125 modules\core\mod_so.h \
1126 modules\core\mod_watchdog.h \
1127 modules\database\mod_dbd.h \
1128 modules\dav\main\mod_dav.h \
1129 modules\filters\mod_include.h \
1130 modules\generators\mod_cgi.h \
1131 modules\generators\mod_status.h \
1132 modules\loggers\mod_log_config.h \
1133 modules\mappers\mod_rewrite.h \
1134 modules\proxy\mod_proxy.h \
1135 modules\ssl\mod_ssl.h \
1136 modules\ssl\mod_ssl_openssl.h \
1138 @copy %f "$(INSTDIR)\include" < .y > nul
1139 copy srclib\apr\Lib$(SHORT)\apr-1.lib "$(INSTDIR)\lib" <.y
1140 copy srclib\apr\Lib$(SHORT)\apr-1.pdb "$(INSTDIR)\lib" <.y
1141 copy srclib\apr\$(LONG)\libapr-1.lib "$(INSTDIR)\lib" <.y
1142 copy srclib\apr\$(LONG)\libapr-1.exp "$(INSTDIR)\lib" <.y
1143 !IF EXIST("srclib\apr-util")
1144 copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib "$(INSTDIR)\lib" <.y
1145 copy srclib\apr-util\Lib$(SHORT)\aprutil-1.pdb "$(INSTDIR)\lib" <.y
1146 copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
1147 copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.pdb "$(INSTDIR)\lib" <.y
1148 copy srclib\apr-util\$(LONG)\libaprutil-1.lib "$(INSTDIR)\lib" <.y
1149 copy srclib\apr-util\$(LONG)\libaprutil-1.exp "$(INSTDIR)\lib" <.y
1150 copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib "$(INSTDIR)\lib" <.y
1151 copy srclib\apr-iconv\$(LONG)\libapriconv-1.exp "$(INSTDIR)\lib" <.y
1153 copy srclib\expat\win32\$(LONG)\libexpatMT.lib "$(INSTDIR)\lib" <.y
1154 copy srclib\expat\win32\$(LONG)\libexpatMT.exp "$(INSTDIR)\lib" <.y
1155 copy srclib\expat\win32\$(LONG)\libexpat.lib "$(INSTDIR)\lib" <.y
1156 copy srclib\expat\win32\$(LONG)\libexpat.exp "$(INSTDIR)\lib" <.y
1157 copy srclib\expat\win32\$(LONG)\libexpat.dll "$(INSTDIR)\bin" <.y
1159 copy $(LONG)\libhttpd.exp "$(INSTDIR)\lib" <.y
1160 copy $(LONG)\libhttpd.lib "$(INSTDIR)\lib" <.y
1161 copy modules\dav\main\$(LONG)\mod_dav.exp "$(INSTDIR)\lib" <.y
1162 copy modules\dav\main\$(LONG)\mod_dav.lib "$(INSTDIR)\lib" <.y
1163 for %f in ( charset.conv magic mime.types ) do ( \
1164 copy docs\conf\%f "$(INSTDIR)\conf\original\%f" <.y )
1165 awk -f build\installwinconf.awk $(DOMAINNAME) $(SERVERNAME) \
1166 $(SERVERADMIN) $(PORT) $(SSLPORT) "$(INSTDIR) " docs/conf/
1167 copy "support\dbmmanage.in" "$(INSTDIR)\bin\dbmmanage.pl"
1168 -awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
1169 { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
1170 sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" );
1172 if ( $$0 !~ /^#!@perlbin@/ )