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
12 # _fixshebang - add proper shebang lines to activate installed
14 # Note: _fixshebang must be run separately and is not
15 # run by any of the above install* targets.
17 # The following install defaults may be customized;
23 # DOMAINNAME example.com
24 # SERVERNAME www.example.com
25 # SERVERNAME admin@example.com
27 # ALL (unset) Includes additional modules for build testing
29 # Provide a DBD_LIST argument after configuring LIB and INCLUDE with
30 # the SDK paths of the corresponding client support libraries.
31 # The ODBC driver is always built on Windows
33 # DBD_LIST="sqlite3 pgsql oracle mysql freetds"
35 # Provide a DBM_LIST argument after configuring LIB and INCLUDE with
36 # the SDK paths of the corresponding client support libraries.
37 # The sdbm driver is always built in.
43 # nmake -f Makefile.win PORT=80 INSTDIR="d:\Program Files\Apache" installr
45 # Be aware that certain awk's will not accept backslashed names,
46 # so the server root should be given in forward slashes (quoted),
47 # preferably with the drive designation!
49 !IF EXIST("Apache.sln") && ([devenv /help > NUL 2>&1] == 0) \
50 && !defined(USEMAK) && !defined(USEDSW)
54 !ELSEIF EXIST("httpd.mak") && !defined(USEDSW)
66 !IF ("$(CTARGET)" == "") && ($(USESLN) == 1)
70 !IF EXIST("srclib\apr\include\apu.h")
73 !ELSEIF !EXIST("srclib\apr") || !EXIST("srclib\apr-util") || !EXIST("srclib\apr-iconv")
74 !MESSAGE Please check out or download and unpack the Apache Portability Runtime
75 !MESSAGE sources (apr, apr-iconv and apr-util) into your srclib dir.
76 !MESSAGE Apache cannot build without these libraries!
78 !ERROR Need srclib\ apr, apr-iconv and apr-util
84 !IF !EXIST("srclib\expat") && !EXIST("srclib\apr-util\xml\expat")
85 !MESSAGE Please check out or download and unpack the current expat library source
86 !MESSAGE under your srclib dir for apr 2.x, or srclib\apr-util\xml\expat for apr 1.x
87 !MESSAGE Apache cannot build without this library!
89 !ERROR Need srclib\expat or srclib\apr-util\xml\expat
92 !IF !EXIST("srclib\pcre")
93 !MESSAGE Please check out or download and unpack the current PCRE library source
94 !MESSAGE under your srclib dir, and compile the pcre.dll with CMake options
95 !MESSAGE BUILD_SHARED_LIBS and CMAKE_BUILD_TYPE RelWithDebInfo.
96 !MESSAGE Apache cannot build without this library!
98 !ERROR Need srclib\pcre
102 # Note; _tryfoo: blocks are used only by the msvc developer studio environment
103 # to 'fix up' the build, since conditional dependencies aren't supported.
106 !IF EXIST("srclib\openssl")
107 !IF "$(LONG)" == "Debug" && EXIST("srclib\openssl\out32dll.dbg\openssl.exe")
116 $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
119 $(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
121 !ELSEIF $(USESLN) == 1
122 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_ssl
123 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project abs
125 @msdev $(TLP).dsw /USEENV /MAKE \
126 "mod_ssl - Win32 $(LONG)" \
127 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
131 # NOT EXIST("srclib\openssl")
135 @echo mod_ssl and ab/ssl will not build unless openssl is installed
136 @echo in srclib\openssl. They must be precompiled using the
137 @echo ms/ntdll.mak file, see srclib\openssl\INSTALL.W32. The most
138 @echo recent version confirmed to build with mod_ssl and ab is 0.9.8d.
139 @echo Available from http://www.openssl.org/
141 # NOT EXIST("srclib\openssl")
143 !IF EXIST("srclib\serf")
148 $(MAKE) $(MAKEOPT) -f mod_serf.mak CFG="mod_serf - Win32 $(LONG)" RECURSE=0 $(CTARGET)
150 !ELSEIF $(USESLN) == 1
151 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_serf
153 @msdev $(TLP).dsw /USEENV /MAKE \
154 "mod_serf - Win32 $(LONG)" /NORECURSE $(CTARGET)
158 # NOT EXIST("srclib\serf")
162 @echo mod_serf will not build unless libserf.dll is built in srclib\serf
163 @echo For purposes of alpha, libserf release 0.3.0 works, but only with
164 @echo http://people.apache.org/~wrowe/fixserf-win32-0.3.0.patch
167 # NOT EXIST("srclib\serf")
169 !IF EXIST("srclib\zlib")
174 $(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
176 !ELSEIF $(USESLN) == 1
177 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_deflate
179 @msdev $(TLP).dsw /USEENV /MAKE \
180 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
184 # NOT EXIST("srclib\zlib")
188 @echo mod_deflate will not build unless zlib is built in srclib\zlib.
189 @echo Version 1.2.1 and later available from http://www.gzip.org/zlib/
190 @echo built w/ nmake -f win32/Makefile.msc will satisfy this requirement.
194 !IF EXIST("srclib\libxml2")
199 $(MAKE) $(MAKEOPT) -f mod_proxy_html.mak CFG="mod_proxy_html - Win32 $(LONG)" RECURSE=0 $(CTARGET)
200 $(MAKE) $(MAKEOPT) -f mod_xml2enc.mak CFG="mod_xml2enc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
202 !ELSEIF $(USESLN) == 1
203 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_proxy_html
204 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_xml2enc
206 @msdev $(TLP).dsw /USEENV /MAKE \
207 "mod_proxy_html - Win32 $(LONG)" /NORECURSE $(CTARGET)
208 @msdev $(TLP).dsw /USEENV /MAKE \
209 "mod_xml2enc - Win32 $(LONG)" /NORECURSE $(CTARGET)
213 # NOT EXIST("srclib\libxml2")
217 @echo mod_proxy_html and mod_xml2enc will not build unless libxml2 is
218 @echo built in srclib\libxml2. Version 2.7.7 and later available from
219 @echo http://xmlsoft.org/ will satisfy this requirement.
224 !IF EXIST("srclib\lua")
229 $(MAKE) $(MAKEOPT) -f mod_lua.mak CFG="mod_lua - Win32 $(LONG)" RECURSE=0 $(CTARGET)
231 !ELSEIF $(USESLN) == 1
232 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_lua
234 @msdev $(TLP).dsw /USEENV /MAKE \
235 "mod_lua - Win32 $(LONG)" /NORECURSE $(CTARGET)
239 # NOT EXIST("srclib\lua")
243 @echo mod_lua will not build unless lua is installed in srclib\lua.
244 @echo Version 5.1 includes an etc\luavs.bat that will satisfy this requirement.
248 !IF EXIST("srclib\nghttp2")
253 $(MAKE) $(MAKEOPT) -f mod_http2.mak CFG="mod_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
254 $(MAKE) $(MAKEOPT) -f mod_proxy_http2.mak CFG="mod_proxy_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
256 !ELSEIF $(USESLN) == 1
257 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_http2
258 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_proxy_http2
260 @msdev $(TLP).dsw /USEENV /MAKE \
261 "mod_http2 - Win32 $(LONG)" /NORECURSE $(CTARGET)
262 @msdev $(TLP).dsw /USEENV /MAKE \
263 "mod_proxy_http2 - Win32 $(LONG)" /NORECURSE $(CTARGET)
267 # NOT EXIST("srclib\nghttp2")
271 @echo mod_http2 will not build unless nghttp2 is installed in srclib\nghttp2.
272 @echo Version 1.0 includes an lib\makefile.msvc that will satisfy this
277 !IF EXIST("srclib\brotli")
282 $(MAKE) $(MAKEOPT) -f mod_brotli.mak CFG="mod_brotli - Win32 $(LONG)" RECURSE=0 $(CTARGET)
284 !ELSEIF $(USESLN) == 1
285 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_brotli
287 @msdev $(TLP).dsw /USEENV /MAKE \
288 "mod_brotli - Win32 $(LONG)" /NORECURSE $(CTARGET)
292 # NOT EXIST("srclib\brotli")
296 @echo mod_brotli will not build unless brotli is built in srclib\brotli.
297 @echo Version 1.0.0 and later available from https://github.com/google/brotli/releases
299 @echo cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF
304 !IF EXIST("srclib\openssl") && EXIST("srclib\jansson") && EXIST("srclib\curl")
309 $(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_md.mak CFG="mod_md - Win32 $(LONG)" RECURSE=0 $(CTARGET)
311 !ELSEIF $(USESLN) == 1
312 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_md
314 @msdev $(TLP).dsw /USEENV /MAKE \
315 "mod_md - Win32 $(LONG)" /NORECURSE $(CTARGET)
319 # NOT EXIST("srclib\openssl") && EXIST("srclib\jansson") && EXIST("srclib\curl")
323 @echo mod_md not build unless OpenSSL, Jansson and Curl are built in placed
324 @echo in srclib. Example: srclib/openssl, srclib/jansson and srclib/curl
330 cd srclib\$(UTILDIR)\dbd
331 for %d in (odbc $(DBD_LIST)) do \
332 $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak CFG="apr_dbd_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
334 for %d in ($(DBM_LIST) x) do if not %d == x \
335 $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak CFG="apr_dbm_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
337 !ELSEIF $(USESLN) == 1
338 for %d in (odbc $(DBD_LIST)) do \
339 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project apr_dbd_%d
340 for %d in ($(DBM_LIST) x) do if not %d == x \
341 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project apr_dbm_%d
343 @for %d in (odbc $(DBD_LIST)) do \
344 msdev $(TLP).dsw /USEENV /MAKE \
345 "apr_dbd_%d - Win32 $(LONG)" /NORECURSE $(CTARGET)
346 @for %d in ($(DBM_LIST) x) do if not %d == x \
347 msdev $(TLP).dsw /USEENV /MAKE \
348 "apr_dbm_%d - Win32 $(LONG)" /NORECURSE $(CTARGET)
352 !IF "$(INSTDIR)" == ""
355 !IF "$(DOMAINNAME)" == ""
356 DOMAINNAME=example.com
358 !IF "$(SERVERNAME)" == ""
359 SERVERNAME=www.$(DOMAINNAME)
361 !IF "$(SERVERADMIN)" == ""
362 SERVERADMIN=admin@$(DOMAINNAME)
367 !IF "$(SSLPORT)" == ""
373 !MESSAGE INSTDIR = $(INSTDIR)
374 !MESSAGE DOMAINNAME = $(DOMAINNAME)
375 !MESSAGE SERVERNAME = $(SERVERNAME)
376 !MESSAGE SERVERADMIN = $(SERVERADMIN)
377 !MESSAGE PORT = $(PORT)
378 !IF EXIST("srclib\openssl")
379 !MESSAGE SSLPORT = $(SSLPORT)
382 !MESSAGE To change these options use 'nmake -f Makefile.win [option=value]'
383 !MESSAGE Example: nmake -f Makefile.win PORT=8080
389 # Only default the behavior if MAKEOPT= is omitted
391 # Microsoft NMake options
393 !ELSEIF "$(MAKE)" == "make"
394 # Borland make options? Not really supported (yet)
403 bscmake.exe -nologo -Iu -o Apache.bsc *.sbr
407 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build
410 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug _build
413 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install
416 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug _build _install
418 clean: _cleanr _cleand
419 -if exist Browse\. rd /s Browse < << > nul
426 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
429 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET=CLEAN _build
432 echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
433 !IF !EXIST("srclib\apr-util")
435 $(MAKE) $(MAKEOPT) -f expat.mak CFG="expat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
439 $(MAKE) $(MAKEOPT) -f apr.mak CFG="apr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
440 $(MAKE) $(MAKEOPT) -f libapr.mak CFG="libapr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
442 !IF EXIST("srclib\apr-util")
444 $(MAKE) $(MAKEOPT) -f apriconv.mak CFG="apriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
445 $(MAKE) $(MAKEOPT) -f libapriconv.mak CFG="libapriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
446 !IF "$(CTARGET)" == "CLEAN"
447 $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
448 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
451 $(MAKE) $(MAKEOPT) -f Makefile.win all \
452 BUILD_MODE=$(LONG) BIND_MODE=shared
454 $(MAKE) $(MAKEOPT) -f Makefile.win all \
455 BUILD_MODE=$(LONG) BIND_MODE=shared
459 cd srclib\apr-util\xml\expat\lib
460 $(MAKE) $(MAKEOPT) -f xml.mak CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET)
462 $(MAKE) $(MAKEOPT) -f aprutil.mak CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
463 $(MAKE) $(MAKEOPT) -f libaprutil.mak CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
465 $(MAKE) $(MAKEOPT) -f apr_ldap.mak CFG="apr_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
468 # DBD, DBM components live now in apr
472 for %d in (odbc $(DBD_LIST)) do \
473 $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak CFG="apr_dbd_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
476 for %d in ($(DBM_LIST) x) do if not %d == x \
477 $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak CFG="apr_dbm_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
481 $(MAKE) $(MAKEOPT) -f gen_test_char.mak CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET)
483 $(MAKE) $(MAKEOPT) -f libhttpd.mak CFG="libhttpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
484 $(MAKE) $(MAKEOPT) -f libapreq.mak CFG="libapreq - Win32 $(LONG)" RECURSE=0 $(CTARGET)
485 $(MAKE) $(MAKEOPT) -f httpd.mak CFG="httpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
486 # build ldap prior to authnz_ldap
488 $(MAKE) $(MAKEOPT) -f mod_ldap.mak CFG="mod_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
491 $(MAKE) $(MAKEOPT) -f mod_dbd.mak CFG="mod_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
494 $(MAKE) $(MAKEOPT) -f mod_access_compat.mak CFG="mod_access_compat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
495 $(MAKE) $(MAKEOPT) -f mod_allowhandlers.mak CFG="mod_allowhandlers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
496 $(MAKE) $(MAKEOPT) -f mod_allowmethods.mak CFG="mod_allowmethods - Win32 $(LONG)" RECURSE=0 $(CTARGET)
497 $(MAKE) $(MAKEOPT) -f mod_auth_basic.mak CFG="mod_auth_basic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
498 $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
499 $(MAKE) $(MAKEOPT) -f mod_auth_form.mak CFG="mod_auth_form - Win32 $(LONG)" RECURSE=0 $(CTARGET)
500 $(MAKE) $(MAKEOPT) -f mod_authn_anon.mak CFG="mod_authn_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
501 $(MAKE) $(MAKEOPT) -f mod_authn_core.mak CFG="mod_authn_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
502 $(MAKE) $(MAKEOPT) -f mod_authn_dbd.mak CFG="mod_authn_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
503 $(MAKE) $(MAKEOPT) -f mod_authn_dbm.mak CFG="mod_authn_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
504 $(MAKE) $(MAKEOPT) -f mod_authn_file.mak CFG="mod_authn_file - Win32 $(LONG)" RECURSE=0 $(CTARGET)
505 $(MAKE) $(MAKEOPT) -f mod_authn_socache.mak CFG="mod_authn_socache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
506 $(MAKE) $(MAKEOPT) -f mod_authnz_fcgi.mak CFG="mod_authnz_fcgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
507 $(MAKE) $(MAKEOPT) -f mod_authnz_ldap.mak CFG="mod_authnz_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
508 $(MAKE) $(MAKEOPT) -f mod_authz_core.mak CFG="mod_authz_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
509 $(MAKE) $(MAKEOPT) -f mod_authz_dbd.mak CFG="mod_authz_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
510 $(MAKE) $(MAKEOPT) -f mod_authz_dbm.mak CFG="mod_authz_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
511 $(MAKE) $(MAKEOPT) -f mod_authz_groupfile.mak CFG="mod_authz_groupfile - Win32 $(LONG)" RECURSE=0 $(CTARGET)
512 $(MAKE) $(MAKEOPT) -f mod_authz_host.mak CFG="mod_authz_host - Win32 $(LONG)" RECURSE=0 $(CTARGET)
513 $(MAKE) $(MAKEOPT) -f mod_authz_owner.mak CFG="mod_authz_owner - Win32 $(LONG)" RECURSE=0 $(CTARGET)
514 $(MAKE) $(MAKEOPT) -f mod_authz_user.mak CFG="mod_authz_user - Win32 $(LONG)" RECURSE=0 $(CTARGET)
517 $(MAKE) $(MAKEOPT) -f mod_apreq.mak CFG="mod_apreq - Win32 $(LONG)" RECURSE=0 $(CTARGET)
519 cd modules\arch\win32
520 $(MAKE) $(MAKEOPT) -f mod_isapi.mak CFG="mod_isapi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
523 $(MAKE) $(MAKEOPT) -f mod_cache.mak CFG="mod_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
524 $(MAKE) $(MAKEOPT) -f mod_cache_disk.mak CFG="mod_cache_disk - Win32 $(LONG)" RECURSE=0 $(CTARGET)
525 $(MAKE) $(MAKEOPT) -f mod_cache_socache.mak CFG="mod_cache_socache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
526 $(MAKE) $(MAKEOPT) -f mod_file_cache.mak CFG="mod_file_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
527 $(MAKE) $(MAKEOPT) -f mod_socache_dbm.mak CFG="mod_socache_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
528 # $(MAKE) $(MAKEOPT) -f mod_socache_dc.mak CFG="mod_socache_dc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
529 $(MAKE) $(MAKEOPT) -f mod_socache_memcache.mak CFG="mod_socache_memcache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
530 $(MAKE) $(MAKEOPT) -f mod_socache_shmcb.mak CFG="mod_socache_shmcb - Win32 $(LONG)" RECURSE=0 $(CTARGET)
531 $(MAKE) $(MAKEOPT) -f mod_socache_redis.mak CFG="mod_socache_redis - Win32 $(LONG)" RECURSE=0 $(CTARGET)
534 $(MAKE) $(MAKEOPT) -f mod_macro.mak CFG="mod_macro - Win32 $(LONG)" RECURSE=0 $(CTARGET)
535 $(MAKE) $(MAKEOPT) -f mod_watchdog.mak CFG="mod_watchdog - Win32 $(LONG)" RECURSE=0 $(CTARGET)
538 $(MAKE) $(MAKEOPT) -f mod_heartbeat.mak CFG="mod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
539 $(MAKE) $(MAKEOPT) -f mod_heartmonitor.mak CFG="mod_heartmonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
542 $(MAKE) $(MAKEOPT) -f mod_dav.mak CFG="mod_dav - Win32 $(LONG)" RECURSE=0 $(CTARGET)
545 $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
548 $(MAKE) $(MAKEOPT) -f mod_dav_lock.mak CFG="mod_dav_lock - Win32 $(LONG)" RECURSE=0 $(CTARGET)
552 $(MAKE) $(MAKEOPT) -f mod_bucketeer.mak CFG="mod_bucketeer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
554 $(MAKE) $(MAKEOPT) -f mod_dumpio.mak CFG="mod_dumpio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
558 $(MAKE) $(MAKEOPT) -f mod_echo.mak CFG="mod_echo - Win32 $(LONG)" RECURSE=0 $(CTARGET)
563 $(MAKE) $(MAKEOPT) -f mod_case_filter.mak CFG="mod_case_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
564 $(MAKE) $(MAKEOPT) -f mod_case_filter_in.mak CFG="mod_case_filter_in - Win32 $(LONG)" RECURSE=0 $(CTARGET)
565 $(MAKE) $(MAKEOPT) -f mod_example_hooks.mak CFG="mod_example_hooks - Win32 $(LONG)" RECURSE=0 $(CTARGET)
566 $(MAKE) $(MAKEOPT) -f mod_example_ipc.mak CFG="mod_example_ipc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
570 !IF EXIST("srclib\brotli")
571 $(MAKE) $(MAKEOPT) -f mod_brotli.mak CFG="mod_brotli - Win32 $(LONG)" RECURSE=0 $(CTARGET)
573 $(MAKE) $(MAKEOPT) -f mod_buffer.mak CFG="mod_buffer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
574 $(MAKE) $(MAKEOPT) -f mod_charset_lite.mak CFG="mod_charset_lite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
575 $(MAKE) $(MAKEOPT) -f mod_data.mak CFG="mod_data - Win32 $(LONG)" RECURSE=0 $(CTARGET)
576 !IF EXIST("srclib\zlib")
577 $(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
579 $(MAKE) $(MAKEOPT) -f mod_ext_filter.mak CFG="mod_ext_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
580 $(MAKE) $(MAKEOPT) -f mod_filter.mak CFG="mod_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
581 $(MAKE) $(MAKEOPT) -f mod_include.mak CFG="mod_include - Win32 $(LONG)" RECURSE=0 $(CTARGET)
582 !IF EXIST("srclib\libxml2")
583 $(MAKE) $(MAKEOPT) -f mod_proxy_html.mak CFG="mod_proxy_html - Win32 $(LONG)" RECURSE=0 $(CTARGET)
584 $(MAKE) $(MAKEOPT) -f mod_xml2enc.mak CFG="mod_xml2enc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
586 $(MAKE) $(MAKEOPT) -f mod_ratelimit.mak CFG="mod_ratelimit - Win32 $(LONG)" RECURSE=0 $(CTARGET)
587 $(MAKE) $(MAKEOPT) -f mod_reflector.mak CFG="mod_reflector - Win32 $(LONG)" RECURSE=0 $(CTARGET)
588 $(MAKE) $(MAKEOPT) -f mod_reqtimeout.mak CFG="mod_reqtimeout - Win32 $(LONG)" RECURSE=0 $(CTARGET)
589 $(MAKE) $(MAKEOPT) -f mod_request.mak CFG="mod_request - Win32 $(LONG)" RECURSE=0 $(CTARGET)
590 $(MAKE) $(MAKEOPT) -f mod_sed.mak CFG="mod_sed - Win32 $(LONG)" RECURSE=0 $(CTARGET)
591 $(MAKE) $(MAKEOPT) -f mod_substitute.mak CFG="mod_substitute - Win32 $(LONG)" RECURSE=0 $(CTARGET)
593 cd modules\generators
594 $(MAKE) $(MAKEOPT) -f mod_asis.mak CFG="mod_asis - Win32 $(LONG)" RECURSE=0 $(CTARGET)
595 $(MAKE) $(MAKEOPT) -f mod_autoindex.mak CFG="mod_autoindex - Win32 $(LONG)" RECURSE=0 $(CTARGET)
596 $(MAKE) $(MAKEOPT) -f mod_cgi.mak CFG="mod_cgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
597 $(MAKE) $(MAKEOPT) -f mod_info.mak CFG="mod_info - Win32 $(LONG)" RECURSE=0 $(CTARGET)
598 $(MAKE) $(MAKEOPT) -f mod_status.mak CFG="mod_status - Win32 $(LONG)" RECURSE=0 $(CTARGET)
601 $(MAKE) $(MAKEOPT) -f mod_mime.mak CFG="mod_mime - Win32 $(LONG)" RECURSE=0 $(CTARGET)
604 $(MAKE) $(MAKEOPT) -f mod_log_config.mak CFG="mod_log_config - Win32 $(LONG)" RECURSE=0 $(CTARGET)
605 $(MAKE) $(MAKEOPT) -f mod_log_debug.mak CFG="mod_log_debug - Win32 $(LONG)" RECURSE=0 $(CTARGET)
606 $(MAKE) $(MAKEOPT) -f mod_log_forensic.mak CFG="mod_log_forensic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
607 $(MAKE) $(MAKEOPT) -f mod_logio.mak CFG="mod_logio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
609 !IF EXIST("srclib\lua")
611 $(MAKE) $(MAKEOPT) -f mod_lua.mak CFG="mod_lua - Win32 $(LONG)" RECURSE=0 $(CTARGET)
615 $(MAKE) $(MAKEOPT) -f mod_actions.mak CFG="mod_actions - Win32 $(LONG)" RECURSE=0 $(CTARGET)
616 $(MAKE) $(MAKEOPT) -f mod_alias.mak CFG="mod_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
617 $(MAKE) $(MAKEOPT) -f mod_dir.mak CFG="mod_dir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
618 $(MAKE) $(MAKEOPT) -f mod_imagemap.mak CFG="mod_imagemap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
619 $(MAKE) $(MAKEOPT) -f mod_negotiation.mak CFG="mod_negotiation - Win32 $(LONG)" RECURSE=0 $(CTARGET)
620 $(MAKE) $(MAKEOPT) -f mod_rewrite.mak CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
621 $(MAKE) $(MAKEOPT) -f mod_speling.mak CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
622 $(MAKE) $(MAKEOPT) -f mod_userdir.mak CFG="mod_userdir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
623 $(MAKE) $(MAKEOPT) -f mod_vhost_alias.mak CFG="mod_vhost_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
626 $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
627 $(MAKE) $(MAKEOPT) -f mod_env.mak CFG="mod_env - Win32 $(LONG)" RECURSE=0 $(CTARGET)
628 $(MAKE) $(MAKEOPT) -f mod_expires.mak CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
629 $(MAKE) $(MAKEOPT) -f mod_headers.mak CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
630 $(MAKE) $(MAKEOPT) -f mod_ident.mak CFG="mod_ident - Win32 $(LONG)" RECURSE=0 $(CTARGET)
631 $(MAKE) $(MAKEOPT) -f mod_mime_magic.mak CFG="mod_mime_magic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
632 $(MAKE) $(MAKEOPT) -f mod_remoteip.mak CFG="mod_remoteip - Win32 $(LONG)" RECURSE=0 $(CTARGET)
633 $(MAKE) $(MAKEOPT) -f mod_setenvif.mak CFG="mod_setenvif - Win32 $(LONG)" RECURSE=0 $(CTARGET)
634 $(MAKE) $(MAKEOPT) -f mod_unique_id.mak CFG="mod_unique_id - Win32 $(LONG)" RECURSE=0 $(CTARGET)
635 $(MAKE) $(MAKEOPT) -f mod_usertrack.mak CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
636 $(MAKE) $(MAKEOPT) -f mod_version.mak CFG="mod_version - Win32 $(LONG)" RECURSE=0 $(CTARGET)
639 $(MAKE) $(MAKEOPT) -f mod_proxy.mak CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
640 $(MAKE) $(MAKEOPT) -f mod_proxy_ajp.mak CFG="mod_proxy_ajp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
641 $(MAKE) $(MAKEOPT) -f mod_proxy_balancer.mak CFG="mod_proxy_balancer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
642 $(MAKE) $(MAKEOPT) -f mod_proxy_connect.mak CFG="mod_proxy_connect - Win32 $(LONG)" RECURSE=0 $(CTARGET)
643 $(MAKE) $(MAKEOPT) -f mod_proxy_express.mak CFG="mod_proxy_express - Win32 $(LONG)" RECURSE=0 $(CTARGET)
644 $(MAKE) $(MAKEOPT) -f mod_proxy_fcgi.mak CFG="mod_proxy_fcgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
645 $(MAKE) $(MAKEOPT) -f mod_proxy_ftp.mak CFG="mod_proxy_ftp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
646 $(MAKE) $(MAKEOPT) -f mod_proxy_hcheck.mak CFG="mod_proxy_hcheck - Win32 $(LONG)" RECURSE=0 $(CTARGET)
647 $(MAKE) $(MAKEOPT) -f mod_proxy_http.mak CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
648 $(MAKE) $(MAKEOPT) -f mod_proxy_scgi.mak CFG="mod_proxy_scgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
649 $(MAKE) $(MAKEOPT) -f mod_proxy_uwsgi.mak CFG="mod_proxy_uwsgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
650 $(MAKE) $(MAKEOPT) -f mod_proxy_wstunnel.mak CFG="mod_proxy_wstunnel - Win32 $(LONG)" RECURSE=0 $(CTARGET)
651 !IF EXIST("srclib\serf")
652 $(MAKE) $(MAKEOPT) -f mod_serf.mak CFG="mod_serf - Win32 $(LONG)" RECURSE=0 $(CTARGET)
655 # mod_proxy before mod_proxy_http2
656 !IF EXIST("srclib\nghttp2")
658 $(MAKE) $(MAKEOPT) -f mod_http2.mak CFG="mod_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
659 $(MAKE) $(MAKEOPT) -f mod_proxy_http2.mak CFG="mod_proxy_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
662 cd modules\proxy\balancers
663 $(MAKE) $(MAKEOPT) -f mod_lbmethod_bybusyness.mak CFG="mod_lbmethod_bybusyness - Win32 $(LONG)" RECURSE=0 $(CTARGET)
664 $(MAKE) $(MAKEOPT) -f mod_lbmethod_byrequests.mak CFG="mod_lbmethod_byrequests - Win32 $(LONG)" RECURSE=0 $(CTARGET)
665 $(MAKE) $(MAKEOPT) -f mod_lbmethod_bytraffic.mak CFG="mod_lbmethod_bytraffic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
666 $(MAKE) $(MAKEOPT) -f mod_lbmethod_heartbeat.mak CFG="mod_lbmethod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
669 cd modules\proxy\examples
670 $(MAKE) $(MAKEOPT) -f mod_lbmethod_rr.mak CFG="mod_lbmethod_rr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
674 $(MAKE) $(MAKEOPT) -f mod_session.mak CFG="mod_session - Win32 $(LONG)" RECURSE=0 $(CTARGET)
675 $(MAKE) $(MAKEOPT) -f mod_session_cookie.mak CFG="mod_session_cookie - Win32 $(LONG)" RECURSE=0 $(CTARGET)
676 $(MAKE) $(MAKEOPT) -f mod_session_dbd.mak CFG="mod_session_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
679 $(MAKE) $(MAKEOPT) -f mod_slotmem_plain.mak CFG="mod_slotmem_plain - Win32 $(LONG)" RECURSE=0 $(CTARGET)
680 $(MAKE) $(MAKEOPT) -f mod_slotmem_shm.mak CFG="mod_slotmem_shm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
682 !IF EXIST("srclib\openssl")
684 # $(MAKE) $(MAKEOPT) -f mod_session_crypto.mak CFG="mod_session_crypto - Win32 $(LONG)" RECURSE=0 $(CTARGET)
687 $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
690 $(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
692 !IF EXIST("srclib\jansson") && EXIST("srclib\curl")
694 $(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_md.mak CFG="mod_md - Win32 $(LONG)" RECURSE=0 $(CTARGET)
699 $(MAKE) $(MAKEOPT) -f ab.mak CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
700 # $(MAKE) $(MAKEOPT) -f fcgistarter.mak CFG="fcgistarter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
701 $(MAKE) $(MAKEOPT) -f htcacheclean.mak CFG="htcacheclean - Win32 $(LONG)" RECURSE=0 $(CTARGET)
702 $(MAKE) $(MAKEOPT) -f htdbm.mak CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
703 $(MAKE) $(MAKEOPT) -f htdigest.mak CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
704 $(MAKE) $(MAKEOPT) -f htpasswd.mak CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
705 $(MAKE) $(MAKEOPT) -f httxt2dbm.mak CFG="httxt2dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
706 $(MAKE) $(MAKEOPT) -f logresolve.mak CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
707 $(MAKE) $(MAKEOPT) -f rotatelogs.mak CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
710 $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
711 $(MAKE) $(MAKEOPT) -f wintty.mak CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
714 !ELSEIF $(USESLN) == 1
717 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
720 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET="/clean" _build
723 echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
725 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project BuildAll
727 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project BuildBin
729 !IF EXIST("srclib\openssl")
730 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_ssl
731 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project abs
733 !IF EXIST("srclib\zlib")
734 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_deflate
736 !IF EXIST("srclib\lua")
737 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_lua
739 !IF EXIST("srclib\libxml2")
740 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_proxy_html
741 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_xml2enc
743 !IF EXIST("srclib\serf")
744 devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_serf
750 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
753 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET="/CLEAN" _build
756 @echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
758 @msdev $(TLP).dsw /USEENV /MAKE \
759 "BuildAll - Win32 $(LONG)" $(CTARGET)
761 @msdev $(TLP).dsw /USEENV /MAKE \
762 "BuildBin - Win32 $(LONG)" $(CTARGET)
764 !IF "$(CTARGET)" == "/CLEAN"
765 !IF EXIST("srclib\apr-iconv")
767 @$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
768 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
772 !IF EXIST("srclib\openssl")
773 @msdev $(TLP).dsw /USEENV /MAKE \
774 "mod_ssl - Win32 $(LONG)" \
775 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
777 !IF EXIST("srclib\zlib")
778 @msdev $(TLP).dsw /USEENV /MAKE \
779 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
781 !IF EXIST("srclib\lua")
782 @msdev $(TLP).dsw /USEENV /MAKE \
783 "mod_lua - Win32 $(LONG)" /NORECURSE $(CTARGET)
785 !IF EXIST("srclib\libxml2")
786 @msdev $(TLP).dsw /USEENV /MAKE \
787 "mod_proxy_html - Win32 $(LONG)" /NORECURSE $(CTARGET)
788 @msdev $(TLP).dsw /USEENV /MAKE \
789 "mod_xml2enc - Win32 $(LONG)" /NORECURSE $(CTARGET)
791 !IF EXIST("srclib\serf")
792 @msdev $(TLP).dsw /USEENV /MAKE \
793 "mod_serf - Win32 $(LONG)" /NORECURSE $(CTARGET)
800 copy $(LONG)\httpd.$(src_exe) "$(inst_exe)" <.y
801 copy $(LONG)\libapreq.$(src_dll) "$(inst_dll)" <.y
802 copy $(LONG)\libhttpd.$(src_dll) "$(inst_dll)" <.y
803 copy srclib\apr\$(LONG)\libapr-1.$(src_dll) "$(inst_dll)" <.y
804 !IF EXIST("srclib\apr-util")
805 copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll) "$(inst_dll)" <.y
806 copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll) "$(inst_dll)" <.y
807 copy srclib\apr-util\ldap\$(LONG)\apr_ldap-1.$(src_dll) "$(inst_dll)" <.y
809 for %d in (odbc $(DBD_LIST)) do ( \
810 copy srclib\$(UTILDIR)\dbd\$(LONG)\apr_dbd_%d-1.$(src_dll) "$(inst_dll)" <.y \
812 for %d in ($(DBM_LIST) x) do if not %d == x ( \
813 copy srclib\$(UTILDIR)\dbm\$(LONG)\apr_dbm_%d-1.$(src_dll) "$(inst_dll)" <.y \
815 !IF EXIST("srclib\serf")
816 copy srclib\serf\$(LONG)\libserf.$(src_dll) "$(inst_dll)" <.y
818 !IF "$(SHORT)" == "D"
819 copy srclib\pcre\pcred.$(src_dll) "$(inst_dll)" <.y
821 copy srclib\pcre\pcre.$(src_dll) "$(inst_dll)" <.y
823 copy modules\aaa\$(LONG)\mod_access_compat.$(src_so) "$(inst_so)" <.y
824 copy modules\aaa\$(LONG)\mod_allowhandlers.$(src_so) "$(inst_so)" <.y
825 copy modules\aaa\$(LONG)\mod_allowmethods.$(src_so) "$(inst_so)" <.y
826 copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so) "$(inst_so)" <.y
827 copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so) "$(inst_so)" <.y
828 copy modules\aaa\$(LONG)\mod_auth_form.$(src_so) "$(inst_so)" <.y
829 copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so) "$(inst_so)" <.y
830 copy modules\aaa\$(LONG)\mod_authn_core.$(src_so) "$(inst_so)" <.y
831 copy modules\aaa\$(LONG)\mod_authn_dbd.$(src_so) "$(inst_so)" <.y
832 copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so) "$(inst_so)" <.y
833 copy modules\aaa\$(LONG)\mod_authn_file.$(src_so) "$(inst_so)" <.y
834 copy modules\aaa\$(LONG)\mod_authn_socache.$(src_so) "$(inst_so)" <.y
835 copy modules\aaa\$(LONG)\mod_authnz_fcgi.$(src_so) "$(inst_so)" <.y
836 copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so) "$(inst_so)" <.y
837 copy modules\aaa\$(LONG)\mod_authz_core.$(src_so) "$(inst_so)" <.y
838 copy modules\aaa\$(LONG)\mod_authz_dbd.$(src_so) "$(inst_so)" <.y
839 copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so) "$(inst_so)" <.y
840 copy modules\aaa\$(LONG)\mod_authz_core.$(src_so) "$(inst_so)" <.y
841 copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so) "$(inst_so)" <.y
842 copy modules\aaa\$(LONG)\mod_authz_host.$(src_so) "$(inst_so)" <.y
843 copy modules\aaa\$(LONG)\mod_authz_owner.$(src_so) "$(inst_so)" <.y
844 copy modules\aaa\$(LONG)\mod_authz_user.$(src_so) "$(inst_so)" <.y
845 copy modules\apreq\$(LONG)\mod_apreq.$(src_so) "$(inst_so)" <.y
846 copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so) "$(inst_so)" <.y
847 copy modules\cache\$(LONG)\mod_cache.$(src_so) "$(inst_so)" <.y
848 copy modules\cache\$(LONG)\mod_cache_disk.$(src_so) "$(inst_so)" <.y
849 copy modules\cache\$(LONG)\mod_cache_socache.$(src_so) "$(inst_so)" <.y
850 copy modules\cache\$(LONG)\mod_file_cache.$(src_so) "$(inst_so)" <.y
851 copy modules\cache\$(LONG)\mod_socache_dbm.$(src_so) "$(inst_so)" <.y
852 # copy modules\cache\$(LONG)\mod_socache_dc.$(src_so) "$(inst_so)" <.y
853 copy modules\cache\$(LONG)\mod_socache_memcache.$(src_so) "$(inst_so)" <.y
854 copy modules\cache\$(LONG)\mod_socache_shmcb.$(src_so) "$(inst_so)" <.y
855 copy modules\cache\$(LONG)\mod_socache_redis.$(src_so) "$(inst_so)" <.y
856 copy modules\core\$(LONG)\mod_macro.$(src_so) "$(inst_so)" <.y
857 copy modules\core\$(LONG)\mod_watchdog.$(src_so) "$(inst_so)" <.y
858 copy modules\cluster\$(LONG)\mod_heartbeat.$(src_so) "$(inst_so)" <.y
859 copy modules\cluster\$(LONG)\mod_heartmonitor.$(src_so) "$(inst_so)" <.y
860 copy modules\database\$(LONG)\mod_dbd.$(src_so) "$(inst_so)" <.y
861 copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so) "$(inst_so)" <.y
862 copy modules\dav\lock\$(LONG)\mod_dav_lock.$(src_so) "$(inst_so)" <.y
863 copy modules\dav\main\$(LONG)\mod_dav.$(src_so) "$(inst_so)" <.y
865 copy modules\debugging\$(LONG)\mod_bucketeer.$(src_so) "$(inst_so)" <.y
867 copy modules\debugging\$(LONG)\mod_dumpio.$(src_so) "$(inst_so)" <.y
869 copy modules\echo\$(LONG)\mod_echo.$(src_so) "$(inst_so)" <.y
870 copy modules\examples\$(LONG)\mod_case_filter.$(src_so) "$(inst_so)" <.y
871 copy modules\examples\$(LONG)\mod_case_filter_in.$(src_so) "$(inst_so)" <.y
872 copy modules\examples\$(LONG)\mod_example_hooks.$(src_so) "$(inst_so)" <.y
873 copy modules\examples\$(LONG)\mod_example_ipc.$(src_so) "$(inst_so)" <.y
875 !IF EXIST("srclib\brotli")
876 copy modules\filters\$(LONG)\mod_brotli.$(src_so) "$(inst_so)" <.y
878 copy modules\filters\$(LONG)\mod_buffer.$(src_so) "$(inst_so)" <.y
879 copy modules\filters\$(LONG)\mod_charset_lite.$(src_so) "$(inst_so)" <.y
880 copy modules\filters\$(LONG)\mod_data.$(src_so) "$(inst_so)" <.y
881 !IF EXIST("srclib\zlib")
882 copy modules\filters\$(LONG)\mod_deflate.$(src_so) "$(inst_so)" <.y
883 !IF EXIST("srclib\zlib\zlib1.$(src_dll)")
884 copy srclib\zlib\zlib1.$(src_dll) "$(inst_dll)" <.y
887 copy modules\filters\$(LONG)\mod_ext_filter.$(src_so) "$(inst_so)" <.y
888 copy modules\filters\$(LONG)\mod_filter.$(src_so) "$(inst_so)" <.y
889 copy modules\filters\$(LONG)\mod_include.$(src_so) "$(inst_so)" <.y
890 !IF EXIST("srclib\libxml2")
891 copy modules\filters\$(LONG)\mod_proxy_html.$(src_so) "$(inst_so)" <.y
892 copy modules\filters\$(LONG)\mod_xml2enc.$(src_so) "$(inst_so)" <.y
893 !IF EXIST("srclib\libxml2\win32\bin.msvc\libxml2.$(src_dll)")
894 copy srclib\libxml2\win32\bin.msvc\libxml2.$(src_dll) "$(inst_dll)" <.y
897 copy modules\filters\$(LONG)\mod_ratelimit.$(src_so) "$(inst_so)" <.y
898 copy modules\filters\$(LONG)\mod_reflector.$(src_so) "$(inst_so)" <.y
899 copy modules\filters\$(LONG)\mod_reqtimeout.$(src_so) "$(inst_so)" <.y
900 copy modules\filters\$(LONG)\mod_request.$(src_so) "$(inst_so)" <.y
901 copy modules\filters\$(LONG)\mod_sed.$(src_so) "$(inst_so)" <.y
902 copy modules\filters\$(LONG)\mod_substitute.$(src_so) "$(inst_so)" <.y
903 copy modules\generators\$(LONG)\mod_asis.$(src_so) "$(inst_so)" <.y
904 copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
905 copy modules\generators\$(LONG)\mod_cgi.$(src_so) "$(inst_so)" <.y
906 copy modules\generators\$(LONG)\mod_info.$(src_so) "$(inst_so)" <.y
907 copy modules\generators\$(LONG)\mod_status.$(src_so) "$(inst_so)" <.y
908 copy modules\http\$(LONG)\mod_mime.$(src_so) "$(inst_so)" <.y
909 !IF EXIST("srclib\nghttp2")
910 copy modules\http2\$(LONG)\mod_http2.$(src_so) "$(inst_so)" <.y
911 copy modules\http2\$(LONG)\mod_proxy_http2.$(src_so) "$(inst_so)" <.y
912 !IF "$(SHORT)" == "D"
913 copy srclib\nghttp2\lib\MSVC_obj\nghttp2d.$(src_dll) "$(inst_dll)" <.y
915 copy srclib\nghttp2\lib\MSVC_obj\nghttp2.$(src_dll) "$(inst_dll)" <.y
918 copy modules\ldap\$(LONG)\mod_ldap.$(src_so) "$(inst_so)" <.y
919 copy modules\loggers\$(LONG)\mod_log_config.$(src_so) "$(inst_so)" <.y
920 copy modules\loggers\$(LONG)\mod_log_debug.$(src_so) "$(inst_so)" <.y
921 copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
922 copy modules\loggers\$(LONG)\mod_logio.$(src_so) "$(inst_so)" <.y
923 !IF EXIST("srclib\lua")
924 copy modules\lua\$(LONG)\mod_lua.$(src_so) "$(inst_so)" <.y
925 !IF EXIST("srclib\lua\src\lua51.$(src_dll)")
926 copy srclib\lua\src\lua51.$(src_dll) "$(inst_dll)" <.y
929 copy modules\mappers\$(LONG)\mod_actions.$(src_so) "$(inst_so)" <.y
930 copy modules\mappers\$(LONG)\mod_alias.$(src_so) "$(inst_so)" <.y
931 copy modules\mappers\$(LONG)\mod_dir.$(src_so) "$(inst_so)" <.y
932 copy modules\mappers\$(LONG)\mod_imagemap.$(src_so) "$(inst_so)" <.y
933 copy modules\mappers\$(LONG)\mod_negotiation.$(src_so) "$(inst_so)" <.y
934 copy modules\mappers\$(LONG)\mod_rewrite.$(src_so) "$(inst_so)" <.y
935 copy modules\mappers\$(LONG)\mod_speling.$(src_so) "$(inst_so)" <.y
936 copy modules\mappers\$(LONG)\mod_userdir.$(src_so) "$(inst_so)" <.y
937 copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so) "$(inst_so)" <.y
938 copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so) "$(inst_so)" <.y
939 copy modules\metadata\$(LONG)\mod_env.$(src_so) "$(inst_so)" <.y
940 copy modules\metadata\$(LONG)\mod_expires.$(src_so) "$(inst_so)" <.y
941 copy modules\metadata\$(LONG)\mod_headers.$(src_so) "$(inst_so)" <.y
942 copy modules\metadata\$(LONG)\mod_ident.$(src_so) "$(inst_so)" <.y
943 copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so) "$(inst_so)" <.y
944 copy modules\metadata\$(LONG)\mod_remoteip.$(src_so) "$(inst_so)" <.y
945 copy modules\metadata\$(LONG)\mod_setenvif.$(src_so) "$(inst_so)" <.y
946 copy modules\metadata\$(LONG)\mod_unique_id.$(src_so) "$(inst_so)" <.y
947 copy modules\metadata\$(LONG)\mod_usertrack.$(src_so) "$(inst_so)" <.y
948 copy modules\metadata\$(LONG)\mod_version.$(src_so) "$(inst_so)" <.y
949 copy modules\proxy\$(LONG)\mod_proxy.$(src_so) "$(inst_so)" <.y
950 copy modules\proxy\$(LONG)\mod_proxy_ajp.$(src_so) "$(inst_so)" <.y
951 copy modules\proxy\$(LONG)\mod_proxy_balancer.$(src_so) "$(inst_so)" <.y
952 copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so) "$(inst_so)" <.y
953 copy modules\proxy\$(LONG)\mod_proxy_express.$(src_so) "$(inst_so)" <.y
954 copy modules\proxy\$(LONG)\mod_proxy_fcgi.$(src_so) "$(inst_so)" <.y
955 copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so) "$(inst_so)" <.y
956 copy modules\proxy\$(LONG)\mod_proxy_hcheck.$(src_so) "$(inst_so)" <.y
957 copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so) "$(inst_so)" <.y
958 copy modules\proxy\$(LONG)\mod_proxy_scgi.$(src_so) "$(inst_so)" <.y
959 copy modules\proxy\$(LONG)\mod_proxy_uwsgi.$(src_so) "$(inst_so)" <.y
960 copy modules\proxy\$(LONG)\mod_proxy_wstunnel.$(src_so) "$(inst_so)" <.y
961 !IF EXIST("srclib\serf")
962 copy modules\proxy\$(LONG)\mod_serf.$(src_so) "$(inst_so)" <.y
964 copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bybusyness.$(src_so) "$(inst_so)" <.y
965 copy modules\proxy\balancers\$(LONG)\mod_lbmethod_byrequests.$(src_so) "$(inst_so)" <.y
966 copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bytraffic.$(src_so) "$(inst_so)" <.y
967 copy modules\proxy\balancers\$(LONG)\mod_lbmethod_heartbeat.$(src_so) "$(inst_so)" <.y
969 copy modules\proxy\examples\$(LONG)\mod_lbmethod_rr.$(src_so) "$(inst_so)" <.y
971 copy modules\session\$(LONG)\mod_session.$(src_so) "$(inst_so)" <.y
972 copy modules\session\$(LONG)\mod_session_cookie.$(src_so) "$(inst_so)" <.y
973 copy modules\session\$(LONG)\mod_session_dbd.$(src_so) "$(inst_so)" <.y
974 copy modules\slotmem\$(LONG)\mod_slotmem_plain.$(src_so) "$(inst_so)" <.y
975 copy modules\slotmem\$(LONG)\mod_slotmem_shm.$(src_so) "$(inst_so)" <.y
976 !IF EXIST("srclib\openssl")
977 !IF EXIST("srclib\jansson") && EXIST("srclib\curl")
978 copy modules\md\$(LONG)\mod_md.$(src_so) "$(inst_so)" <.y
979 -copy srclib\jansson\bin\jansson.$(src_dll) "$(inst_dll)" <.y
980 -copy srclib\curl\bin\libcurl.$(src_dll) "$(inst_dll)" <.y
982 # copy modules\session\$(LONG)\mod_session_crypto.$(src_so) "$(inst_so)" <.y
983 copy modules\ssl\$(LONG)\mod_ssl.$(src_so) "$(inst_so)" <.y
984 -copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll) "$(inst_dll)" <.y
985 -copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll) "$(inst_dll)" <.y
986 -copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe) "$(inst_exe)" <.y
987 copy support\$(LONG)\abs.$(src_exe) "$(inst_exe)" <.y
989 copy support\$(LONG)\ab.$(src_exe) "$(inst_exe)" <.y
990 # copy support\$(LONG)\fcgistarter.$(src_exe) "$(inst_exe)" <.y
991 copy support\$(LONG)\htcacheclean.$(src_exe) "$(inst_exe)" <.y
992 copy support\$(LONG)\htdbm.$(src_exe) "$(inst_exe)" <.y
993 copy support\$(LONG)\htdigest.$(src_exe) "$(inst_exe)" <.y
994 copy support\$(LONG)\htpasswd.$(src_exe) "$(inst_exe)" <.y
995 copy support\$(LONG)\httxt2dbm.$(src_exe) "$(inst_exe)" <.y
996 copy support\$(LONG)\logresolve.$(src_exe) "$(inst_exe)" <.y
997 copy support\$(LONG)\rotatelogs.$(src_exe) "$(inst_exe)" <.y
998 copy support\win32\$(LONG)\ApacheMonitor.$(src_exe) "$(inst_exe)" <.y
999 copy support\win32\$(LONG)\wintty.$(src_exe) "$(inst_exe)" <.y
1002 # First we create the tree and populate the README so that
1003 # whatever happens, all licensing has already propagated.
1004 # Then repeatedly invoke the _copybin build to copy the
1005 # real binaries, then pdb symbols, anf finally dbg syms.
1006 # Then hit docs of various sorts, then includes and libs,
1007 # and finally do the .conf magic.
1013 -mkdir "$(INSTDIR)\bin"
1014 !IF EXIST("srclib\apr-util")
1015 -mkdir "$(INSTDIR)\bin\iconv"
1017 -mkdir "$(INSTDIR)\cgi-bin"
1018 -mkdir "$(INSTDIR)\conf"
1019 -mkdir "$(INSTDIR)\conf\extra"
1020 -mkdir "$(INSTDIR)\conf\original"
1021 -mkdir "$(INSTDIR)\conf\original\extra"
1022 -mkdir "$(INSTDIR)\error"
1023 -mkdir "$(INSTDIR)\htdocs"
1024 -mkdir "$(INSTDIR)\manual"
1025 -mkdir "$(INSTDIR)\icons"
1026 -mkdir "$(INSTDIR)\include"
1027 -mkdir "$(INSTDIR)\lib"
1028 -mkdir "$(INSTDIR)\logs"
1029 -mkdir "$(INSTDIR)\modules"
1030 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
1031 _copybin src_exe=exe src_dll=dll src_so=so \
1032 inst_exe="$(INSTDIR)\bin" \
1033 inst_dll="$(INSTDIR)\bin" \
1034 inst_so="$(INSTDIR)\modules"
1035 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
1036 _copybin src_exe=pdb src_dll=pdb src_so=pdb \
1037 inst_exe="$(INSTDIR)\bin" \
1038 inst_dll="$(INSTDIR)\bin" \
1039 inst_so="$(INSTDIR)\modules"
1040 !IF EXIST("srclib\apr-util")
1042 $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
1043 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
1044 INSTALL_DIR="$(INSTDIR)\bin\iconv"
1047 copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
1048 copy docs\cgi-examples\printenv.vbs "$(INSTDIR)\cgi-bin\printenv.vbs" <.y
1049 copy docs\cgi-examples\printenv.wsf "$(INSTDIR)\cgi-bin\printenv.wsf" <.y
1050 xcopy docs\error "$(INSTDIR)\error" /s /d < .a
1051 xcopy docs\docroot "$(INSTDIR)\htdocs" /d < .a
1052 xcopy docs\icons "$(INSTDIR)\icons" /s /d < .a
1053 xcopy docs\manual "$(INSTDIR)\manual" /s /d < .a
1055 srclib\expat\lib\expat.h \
1056 srclib\apr-util\xml\expat\lib\expat.h \
1057 srclib\apr\include\*.h \
1058 srclib\apr-util\include\*.h \
1059 !IF EXIST("srclib\serf")
1064 modules\cache\mod_cache.h \
1065 modules\cache\cache_common.h \
1066 modules\core\mod_so.h \
1067 modules\core\mod_watchdog.h \
1068 modules\database\mod_dbd.h \
1069 modules\dav\main\mod_dav.h \
1070 modules\filters\mod_include.h \
1071 modules\generators\mod_cgi.h \
1072 modules\generators\mod_status.h \
1073 modules\loggers\mod_log_config.h \
1074 modules\mappers\mod_rewrite.h \
1075 modules\proxy\mod_proxy.h \
1076 modules\proxy\mod_serf.h \
1077 modules\ssl\mod_ssl.h \
1078 modules\ssl\mod_ssl_openssl.h \
1080 @copy %f "$(INSTDIR)\include" < .y > nul
1081 copy srclib\apr\Lib$(SHORT)\apr-1.lib "$(INSTDIR)\lib" <.y
1082 copy srclib\apr\Lib$(SHORT)\apr-1.pdb "$(INSTDIR)\lib" <.y
1083 copy srclib\apr\$(LONG)\libapr-1.lib "$(INSTDIR)\lib" <.y
1084 copy srclib\apr\$(LONG)\libapr-1.exp "$(INSTDIR)\lib" <.y
1085 !IF EXIST("srclib\apr-util")
1086 copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib "$(INSTDIR)\lib" <.y
1087 copy srclib\apr-util\Lib$(SHORT)\aprutil-1.pdb "$(INSTDIR)\lib" <.y
1088 copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
1089 copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.pdb "$(INSTDIR)\lib" <.y
1090 copy srclib\apr-util\$(LONG)\libaprutil-1.lib "$(INSTDIR)\lib" <.y
1091 copy srclib\apr-util\$(LONG)\libaprutil-1.exp "$(INSTDIR)\lib" <.y
1092 copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib "$(INSTDIR)\lib" <.y
1093 copy srclib\apr-iconv\$(LONG)\libapriconv-1.exp "$(INSTDIR)\lib" <.y
1095 copy srclib\expat\win32\$(LONG)\libexpatMT.lib "$(INSTDIR)\lib" <.y
1096 copy srclib\expat\win32\$(LONG)\libexpatMT.exp "$(INSTDIR)\lib" <.y
1097 copy srclib\expat\win32\$(LONG)\libexpat.lib "$(INSTDIR)\lib" <.y
1098 copy srclib\expat\win32\$(LONG)\libexpat.exp "$(INSTDIR)\lib" <.y
1099 copy srclib\expat\win32\$(LONG)\libexpat.dll "$(INSTDIR)\bin" <.y
1101 !IF EXIST("srclib\serf")
1102 copy srclib\serf\$(LONG)\libserf.lib "$(INSTDIR)\lib" <.y
1103 copy srclib\serf\$(LONG)\libserf.exp "$(INSTDIR)\lib" <.y
1105 copy $(LONG)\libhttpd.exp "$(INSTDIR)\lib" <.y
1106 copy $(LONG)\libhttpd.lib "$(INSTDIR)\lib" <.y
1107 copy modules\dav\main\$(LONG)\mod_dav.exp "$(INSTDIR)\lib" <.y
1108 copy modules\dav\main\$(LONG)\mod_dav.lib "$(INSTDIR)\lib" <.y
1109 for %f in ( charset.conv magic mime.types ) do ( \
1110 copy docs\conf\%f "$(INSTDIR)\conf\original\%f" <.y )
1111 awk -f build\installwinconf.awk $(DOMAINNAME) $(SERVERNAME) \
1112 $(SERVERADMIN) $(PORT) $(SSLPORT) "$(INSTDIR) " docs/conf/
1113 copy "support\dbmmanage.in" "$(INSTDIR)\bin\dbmmanage.pl"
1114 -awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
1115 { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
1116 sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" );
1118 if ( $$0 !~ /^#!@perlbin@/ )
1126 !IF EXIST("$(INSTDIR)\cgi-bin")
1127 -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
1129 if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
1130 gsub( /\\/, "/", perlroot );
1131 print "#!" perlroot;
1135 if ( $$0 !~ /^#!/ ) {
1140 -cscript -nologo <<script.vbs "docs/cgi-examples/printenv.vbs" "$(INSTDIR)\cgi-bin\printenv.vbs"
1142 Set fso = CreateObject("Scripting.FileSystemObject")
1143 Set f = fso.OpenTextFile(WScript.Arguments(0), 1)
1147 Set f = fso.OpenTextFile(WScript.Arguments(1), 2, TRUE)
1148 f.WriteLine "'!" & Replace(WScript.FullName, "\", "/") & " -nologo"
1152 -cscript -nologo <<script.vbs "docs/cgi-examples/printenv.wsf" "$(INSTDIR)\cgi-bin\printenv.wsf"
1154 Set fso = CreateObject("Scripting.FileSystemObject")
1155 Set f = fso.OpenTextFile(WScript.Arguments(0), 1)
1159 Set f = fso.OpenTextFile(WScript.Arguments(1), 2, TRUE)
1160 f.WriteLine "'!" & Replace(WScript.FullName, "\", "/") & " -nologo"