]> granicus.if.org Git - apache/blob - Makefile.win
Vote, promote.
[apache] / Makefile.win
1 # Makefile for Windows NT and Windows 95/98/2000
2
3 # Targets are:
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 #
13 # The following install defaults may be customized;
14 #
15 #   Option      Default
16 #   INSTDIR     /Apache24
17 #   PORT        80
18 #   SSLPORT     443
19 #   DOMAINNAME  example.com
20 #   SERVERNAME  www.example.com
21 #   SERVERNAME  admin@example.com
22 #
23 #   ALL         (unset)     Includes additional modules for build testing
24 #
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
28 #
29 #     DBD_LIST="sqlite3 pgsql oracle mysql freetds"
30 #
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.
34 #
35 #     DBM_LIST="db gdbm"
36 #
37 # For example;
38 #
39 #   nmake -f Makefile.win PORT=80 INSTDIR="d:\Program Files\Apache" installr
40 #
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!
44
45 !IF EXIST("Apache.sln") && ([devenv /help > NUL 2>&1] == 0) \
46     && !defined(USEMAK) && !defined(USEDSW)
47 USESLN=1
48 USEMAK=0
49 USEDSW=0
50 !ELSEIF EXIST("httpd.mak") && !defined(USEDSW)
51 USESLN=0
52 USEMAK=1
53 USEDSW=0
54 !ELSE
55 USESLN=0
56 USEMAK=0
57 USEDSW=1
58 !ENDIF
59
60 # APU 1.6 (and up?)
61 !IF EXIST("srclib\apr-util\xml\xml.mak")
62 EXPAT=xml
63 EXPBCK = ..
64 !ELSE
65 EXPAT=xml\expat\lib
66 EXPBCK = ..\..\..
67 !ENDIF
68
69 default: _buildr
70
71 !IF ("$(CTARGET)" == "") && ($(USESLN) == 1)
72 CTARGET=/build
73 !ENDIF
74
75 !IF EXIST("srclib\apr\include\apu.h")
76 TLP=Apache-apr2
77 UTILDIR=apr
78 !ELSEIF !EXIST("srclib\apr") || !EXIST("srclib\apr-util") || !EXIST("srclib\apr-iconv")
79 !MESSAGE Please check out or download and unpack the Apache Portability Runtime
80 !MESSAGE sources (apr, apr-iconv and apr-util) into your srclib dir.
81 !MESSAGE Apache cannot build without these libraries!
82 !MESSAGE 
83 !ERROR Need srclib\  apr, apr-iconv and apr-util
84 !ELSE
85 TLP=Apache
86 UTILDIR=apr-util
87 !ENDIF
88
89 !IF !EXIST("srclib\expat") && !EXIST("srclib\apr-util\xml\expat")
90 !MESSAGE Please check out or download and unpack the current expat library source
91 !MESSAGE under your srclib dir for apr 2.x, or srclib\apr-util\xml\expat for apr 1.x
92 !MESSAGE Apache cannot build without this library!
93 !MESSAGE 
94 !ERROR Need srclib\expat or srclib\apr-util\xml\expat
95 !ENDIF
96
97 !IF !EXIST("srclib\pcre")
98 !MESSAGE Please check out or download and unpack the current PCRE library source
99 !MESSAGE under your srclib dir, and compile the pcre.dll with CMake options
100 !MESSAGE BUILD_SHARED_LIBS and CMAKE_BUILD_TYPE RelWithDebInfo.
101 !MESSAGE Apache cannot build without this library!
102 !MESSAGE 
103 !ERROR Need srclib\pcre
104 !ENDIF
105
106
107 # Note; _tryfoo: blocks are used only by the msvc developer studio environment 
108 #       to 'fix up' the build, since conditional dependencies aren't supported.
109 #
110
111 !IF EXIST("srclib\openssl")
112 !IF "$(LONG)" == "Debug" && EXIST("srclib\openssl\out32dll.dbg\openssl.exe")
113 SSLBIN=out32dll.dbg
114 SSLAPP=out32dll.dbg
115 SSLCRP=libeay32
116 SSLLIB=ssleay32
117 !ELSEIF EXIST("srclib\openssl\libcrypto.lib")
118 !MESSAGE Building with OpenSSL 1.1.0
119 !MESSAGE 
120 SSLBIN=.
121 SSLAPP=apps
122 SSLCRP=libcrypto
123 SSLLIB=libssl
124 SSLOPT=_HAVE_OSSL110=1
125 !ELSE
126 SSLBIN=out32dll
127 SSLAPP=out32dll
128 SSLCRP=libeay32
129 SSLLIB=ssleay32
130 !ENDIF
131
132
133 _tryssl:
134 !IF $(USEMAK) == 1
135         cd modules\ssl
136         $(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
137         cd ..\..
138         cd support
139         $(MAKE) $(MAKEOPT) $(SSLOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
140         cd ..
141 !ELSEIF $(USESLN) == 1
142         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_ssl
143         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project abs
144 !ELSE
145         @msdev $(TLP).dsw /USEENV /MAKE \
146                 "mod_ssl - Win32 $(LONG)" \
147                 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
148 !ENDIF
149
150 !ELSE
151 #     NOT EXIST("srclib\openssl")
152
153 _tryssl:
154         @echo -----
155         @echo mod_ssl and ab/ssl will not build unless openssl is installed
156         @echo in srclib\openssl.  They must be precompiled using the 
157         @echo ms/ntdll.mak file, see srclib\openssl\INSTALL.W32.  The most
158         @echo recent version confirmed to build with mod_ssl and ab is 0.9.8d.
159         @echo Available from http://www.openssl.org/
160 !ENDIF
161 #     NOT EXIST("srclib\openssl")
162
163 !IF EXIST("srclib\zlib")
164
165 _tryzlib:
166 !IF $(USEMAK) == 1
167         cd modules\filters
168         $(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
169         cd ..\..
170 !ELSEIF $(USESLN) == 1
171         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_deflate
172 !ELSE
173         @msdev $(TLP).dsw /USEENV /MAKE \
174                 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
175 !ENDIF
176
177 !ELSE
178 #     NOT EXIST("srclib\zlib")
179
180 _tryzlib:
181         @echo -----
182         @echo mod_deflate will not build unless zlib is built in srclib\zlib.  
183         @echo Version 1.2.1 and later available from http://www.gzip.org/zlib/
184         @echo built w/ nmake -f win32/Makefile.msc will satisfy this requirement.
185
186 !ENDIF
187
188 !IF EXIST("srclib\libxml2")
189
190 _tryxml:
191 !IF $(USEMAK) == 1
192         cd modules\filters
193         $(MAKE) $(MAKEOPT) -f mod_proxy_html.mak CFG="mod_proxy_html - Win32 $(LONG)" RECURSE=0 $(CTARGET)
194         $(MAKE) $(MAKEOPT) -f mod_xml2enc.mak CFG="mod_xml2enc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
195         cd ..\..
196 !ELSEIF $(USESLN) == 1
197         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_proxy_html
198         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_xml2enc
199 !ELSE
200         @msdev $(TLP).dsw /USEENV /MAKE \
201                 "mod_proxy_html - Win32 $(LONG)" /NORECURSE $(CTARGET)
202         @msdev $(TLP).dsw /USEENV /MAKE \
203                 "mod_xml2enc - Win32 $(LONG)" /NORECURSE $(CTARGET)
204 !ENDIF
205
206 !ELSE
207 #     NOT EXIST("srclib\libxml2")
208
209 _tryxml:
210         @echo -----
211         @echo mod_proxy_html and mod_xml2enc will not build unless libxml2 is 
212         @echo built in srclib\libxml2. Version 2.7.7 and later available from
213         @echo http://xmlsoft.org/ will satisfy this requirement.
214
215 !ENDIF
216
217
218 !IF EXIST("srclib\lua")
219
220 _trylua:
221 !IF $(USEMAK) == 1
222         cd modules\lua
223         $(MAKE) $(MAKEOPT) -f mod_lua.mak CFG="mod_lua - Win32 $(LONG)" RECURSE=0 $(CTARGET)
224         cd ..\..
225 !ELSEIF $(USESLN) == 1
226         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_lua
227 !ELSE
228         @msdev $(TLP).dsw /USEENV /MAKE \
229                 "mod_lua - Win32 $(LONG)" /NORECURSE $(CTARGET)
230 !ENDIF
231
232 !ELSE
233 #     NOT EXIST("srclib\lua")
234
235 _trylua:
236         @echo -----
237         @echo mod_lua will not build unless lua is installed in srclib\lua.
238         @echo Version 5.1 includes an etc\luavs.bat that will satisfy this requirement.
239
240 !ENDIF
241
242 !IF EXIST("srclib\nghttp2")
243
244 _trynghttp2:
245 !IF $(USEMAK) == 1
246         cd modules\http2
247         $(MAKE) $(MAKEOPT) -f mod_http2.mak       CFG="mod_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
248         $(MAKE) $(MAKEOPT) -f mod_proxy_http2.mak CFG="mod_proxy_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
249         cd ..\..
250 !ELSEIF $(USESLN) == 1
251         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_http2
252         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_proxy_http2
253 !ELSE
254         @msdev $(TLP).dsw /USEENV /MAKE \
255                 "mod_http2 - Win32 $(LONG)" /NORECURSE $(CTARGET)
256         @msdev $(TLP).dsw /USEENV /MAKE \
257                 "mod_proxy_http2 - Win32 $(LONG)" /NORECURSE $(CTARGET)
258 !ENDIF
259
260 !ELSE
261 #     NOT EXIST("srclib\nghttp2")
262
263 _trynghttp2:
264         @echo -----
265         @echo mod_http2 will not build unless nghttp2 is installed in srclib\nghttp2.
266         @echo Version 1.0 includes an lib\makefile.msvc that will satisfy this
267         @echo requirement.
268
269 !ENDIF
270
271 !IF EXIST("srclib\brotli")
272
273 _trybrotli:
274 !IF $(USEMAK) == 1
275         cd modules\filters
276         $(MAKE) $(MAKEOPT) -f mod_brotli.mak CFG="mod_brotli - Win32 $(LONG)" RECURSE=0 $(CTARGET)
277         cd ..\..
278 !ELSEIF $(USESLN) == 1
279         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_brotli
280 !ELSE
281         @msdev $(TLP).dsw /USEENV /MAKE \
282                 "mod_brotli - Win32 $(LONG)" /NORECURSE $(CTARGET)
283 !ENDIF
284
285 !ELSE
286 #     NOT EXIST("srclib\brotli")
287
288 _trybrotli:
289         @echo -----
290         @echo mod_brotli will not build unless brotli is built in srclib\brotli.  
291         @echo Version 1.0.0 and later available from https://github.com/google/brotli/releases
292         @echo build with:
293         @echo cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF
294         @echo nmake
295
296 !ENDIF
297
298 !IF EXIST("srclib\openssl") && EXIST("srclib\jansson") && EXIST("srclib\curl")
299
300 _trymd:
301 !IF $(USEMAK) == 1
302         cd modules\md
303         $(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_md.mak CFG="mod_md - Win32 $(LONG)" RECURSE=0 $(CTARGET)
304         cd ..\..
305 !ELSEIF $(USESLN) == 1
306         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_md
307 !ELSE
308         @msdev $(TLP).dsw /USEENV /MAKE \
309                 "mod_md - Win32 $(LONG)" /NORECURSE $(CTARGET)
310 !ENDIF
311
312 !ELSE
313 #     NOT EXIST("srclib\openssl") && EXIST("srclib\jansson") && EXIST("srclib\curl")
314
315 _trymd:
316         @echo -----
317         @echo mod_md will not build unless OpenSSL, Jansson and Curl are built and placed
318         @echo in srclib. Example: srclib/openssl, srclib/jansson and srclib/curl
319
320 !ENDIF
321
322 _trydb:
323 !IF $(USEMAK) == 1
324         cd srclib\$(UTILDIR)\dbd
325         for %d in (odbc $(DBD_LIST)) do \
326           $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak CFG="apr_dbd_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
327         cd ..\dbm
328         for %d in ($(DBM_LIST) x) do if not %d == x \
329           $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak CFG="apr_dbm_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
330         cd ..\..\..
331 !ELSEIF $(USESLN) == 1
332         for %d in (odbc $(DBD_LIST)) do \
333           devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project apr_dbd_%d
334         for %d in ($(DBM_LIST) x) do if not %d == x \
335           devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project apr_dbm_%d
336 !ELSE
337         @for %d in (odbc $(DBD_LIST)) do \
338           msdev $(TLP).dsw /USEENV /MAKE \
339                 "apr_dbd_%d - Win32 $(LONG)" /NORECURSE $(CTARGET)
340         @for %d in ($(DBM_LIST) x) do if not %d == x \
341           msdev $(TLP).dsw /USEENV /MAKE \
342                 "apr_dbm_%d - Win32 $(LONG)" /NORECURSE $(CTARGET)
343 !ENDIF
344
345
346 !IF "$(INSTDIR)" == ""
347 INSTDIR=\Apache24
348 !ENDIF
349 !IF "$(DOMAINNAME)" == ""
350 DOMAINNAME=example.com
351 !ENDIF 
352 !IF "$(SERVERNAME)" == ""
353 SERVERNAME=www.$(DOMAINNAME)
354 !ENDIF
355 !IF "$(SERVERADMIN)" == ""
356 SERVERADMIN=admin@$(DOMAINNAME)
357 !ENDIF
358 !IF "$(PORT)" == ""
359 PORT=80
360 !ENDIF 
361 !IF "$(SSLPORT)" == ""
362 SSLPORT=443
363 !ENDIF 
364
365 !IF "$(LONG)" == ""
366 !MESSAGE
367 !MESSAGE INSTDIR     = $(INSTDIR)
368 !MESSAGE DOMAINNAME  = $(DOMAINNAME)
369 !MESSAGE SERVERNAME  = $(SERVERNAME)
370 !MESSAGE SERVERADMIN = $(SERVERADMIN)
371 !MESSAGE PORT        = $(PORT)
372 !IF EXIST("srclib\openssl")
373 !MESSAGE SSLPORT     = $(SSLPORT)
374 !ENDIF
375 !MESSAGE
376 !MESSAGE To change these options use 'nmake -f Makefile.win [option=value]'
377 !MESSAGE Example: nmake -f Makefile.win PORT=8080
378 !MESSAGE
379 !MESSAGE
380 !ENDIF
381
382 !IFNDEF MAKEOPT
383 # Only default the behavior if MAKEOPT= is omitted
384 !IFDEF _NMAKE_VER
385 # Microsoft NMake options
386 MAKEOPT=-nologo
387 !ELSEIF "$(MAKE)" == "make"
388 # Borland make options?  Not really supported (yet)
389 MAKEOPT=-s -N
390 !ENDIF
391 !ENDIF
392
393 _dummy:
394
395 _browse:
396         cd Browse
397           bscmake.exe -nologo -Iu -o Apache.bsc *.sbr
398         cd ..
399
400 _buildr: 
401         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build
402
403 _buildd: 
404         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build
405
406 installr: 
407         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install
408
409 installd: 
410         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build _install
411
412 clean:  _cleanr _cleand
413         -if exist Browse\. rd /s Browse < << > nul
414 y
415 <<
416
417 !IF $(USEMAK) == 1
418
419 _cleanr:
420         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
421
422 _cleand:  
423         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET=CLEAN _build
424
425 _build:
426         echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
427 !IF !EXIST("srclib\apr-util")
428         cd srclib\expat\lib
429          $(MAKE) $(MAKEOPT) -f expat.mak             CFG="expat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
430         cd ..\..\..
431 !ENDIF
432         cd srclib\apr
433          $(MAKE) $(MAKEOPT) -f apr.mak             CFG="apr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
434          $(MAKE) $(MAKEOPT) -f libapr.mak          CFG="libapr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
435         cd ..\..
436 !IF EXIST("srclib\apr-util")
437         cd srclib\apr-iconv
438          $(MAKE) $(MAKEOPT) -f apriconv.mak  CFG="apriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
439          $(MAKE) $(MAKEOPT) -f libapriconv.mak  CFG="libapriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
440 !IF "$(CTARGET)" == "CLEAN"
441         $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
442                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
443 !ELSE
444         cd ccs
445         $(MAKE) $(MAKEOPT) -f Makefile.win all \
446                 BUILD_MODE=$(LONG) BIND_MODE=shared
447         cd ..\ces
448         $(MAKE) $(MAKEOPT) -f Makefile.win all \
449                 BUILD_MODE=$(LONG) BIND_MODE=shared
450         cd ..
451 !ENDIF
452         cd ..\..
453         cd srclib\apr-util\$(EXPAT)
454          $(MAKE) $(MAKEOPT) -f xml.mak             CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET)
455         cd $(EXPBCK)
456          $(MAKE) $(MAKEOPT) $(SSLOPT) -f aprutil.mak         CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
457          $(MAKE) $(MAKEOPT) $(SSLOPT) -f libaprutil.mak      CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
458         cd ldap
459          $(MAKE) $(MAKEOPT) -f apr_ldap.mak        CFG="apr_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
460         cd ..
461 !ELSE
462         # DBD, DBM components live now in apr
463         cd srclib\apr
464 !ENDIF
465         cd dbd
466           for %d in (odbc $(DBD_LIST)) do \
467             $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak   CFG="apr_dbd_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
468         cd ..
469         cd dbm
470           for %d in ($(DBM_LIST) x) do if not %d == x \
471             $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak   CFG="apr_dbm_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
472         cd ..
473         cd ..\..
474         cd server
475          $(MAKE) $(MAKEOPT) -f gen_test_char.mak   CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET)
476         cd ..
477          $(MAKE) $(MAKEOPT) -f libhttpd.mak        CFG="libhttpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
478          $(MAKE) $(MAKEOPT) -f httpd.mak           CFG="httpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
479 # build ldap prior to authnz_ldap
480         cd modules\ldap
481          $(MAKE) $(MAKEOPT) -f mod_ldap.mak        CFG="mod_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
482         cd ..\..
483         cd modules\database
484          $(MAKE) $(MAKEOPT) -f mod_dbd.mak         CFG="mod_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
485         cd ..\..
486         cd modules\aaa
487          $(MAKE) $(MAKEOPT) -f mod_access_compat.mak CFG="mod_access_compat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
488          $(MAKE) $(MAKEOPT) -f mod_allowmethods.mak CFG="mod_allowmethods - Win32 $(LONG)" RECURSE=0 $(CTARGET)
489          $(MAKE) $(MAKEOPT) -f mod_auth_basic.mak  CFG="mod_auth_basic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
490          $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
491          $(MAKE) $(MAKEOPT) -f mod_auth_form.mak   CFG="mod_auth_form - Win32 $(LONG)" RECURSE=0 $(CTARGET)
492          $(MAKE) $(MAKEOPT) -f mod_authn_anon.mak  CFG="mod_authn_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
493          $(MAKE) $(MAKEOPT) -f mod_authn_core.mak  CFG="mod_authn_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
494          $(MAKE) $(MAKEOPT) -f mod_authn_dbd.mak   CFG="mod_authn_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
495          $(MAKE) $(MAKEOPT) -f mod_authn_dbm.mak   CFG="mod_authn_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
496          $(MAKE) $(MAKEOPT) -f mod_authn_file.mak  CFG="mod_authn_file - Win32 $(LONG)" RECURSE=0 $(CTARGET)
497          $(MAKE) $(MAKEOPT) -f mod_authn_socache.mak  CFG="mod_authn_socache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
498          $(MAKE) $(MAKEOPT) -f mod_authnz_fcgi.mak CFG="mod_authnz_fcgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
499          $(MAKE) $(MAKEOPT) -f mod_authnz_ldap.mak CFG="mod_authnz_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
500          $(MAKE) $(MAKEOPT) -f mod_authz_core.mak  CFG="mod_authz_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
501          $(MAKE) $(MAKEOPT) -f mod_authz_dbd.mak   CFG="mod_authz_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
502          $(MAKE) $(MAKEOPT) -f mod_authz_dbm.mak   CFG="mod_authz_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
503          $(MAKE) $(MAKEOPT) -f mod_authz_groupfile.mak CFG="mod_authz_groupfile - Win32 $(LONG)" RECURSE=0 $(CTARGET)
504          $(MAKE) $(MAKEOPT) -f mod_authz_host.mak  CFG="mod_authz_host - Win32 $(LONG)" RECURSE=0 $(CTARGET)
505          $(MAKE) $(MAKEOPT) -f mod_authz_owner.mak CFG="mod_authz_owner - Win32 $(LONG)" RECURSE=0 $(CTARGET)
506          $(MAKE) $(MAKEOPT) -f mod_authz_user.mak  CFG="mod_authz_user - Win32 $(LONG)" RECURSE=0 $(CTARGET)
507         cd ..\..
508         cd modules\arch\win32
509          $(MAKE) $(MAKEOPT) -f mod_isapi.mak       CFG="mod_isapi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
510         cd ..\..\..
511         cd modules\cache
512          $(MAKE) $(MAKEOPT) -f mod_cache.mak       CFG="mod_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
513          $(MAKE) $(MAKEOPT) -f mod_cache_disk.mak  CFG="mod_cache_disk - Win32 $(LONG)" RECURSE=0 $(CTARGET)
514          $(MAKE) $(MAKEOPT) -f mod_cache_socache.mak  CFG="mod_cache_socache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
515          $(MAKE) $(MAKEOPT) -f mod_file_cache.mak  CFG="mod_file_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
516          $(MAKE) $(MAKEOPT) -f mod_socache_dbm.mak CFG="mod_socache_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
517 #        $(MAKE) $(MAKEOPT) -f mod_socache_dc.mak  CFG="mod_socache_dc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
518          $(MAKE) $(MAKEOPT) -f mod_socache_memcache.mak CFG="mod_socache_memcache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
519          $(MAKE) $(MAKEOPT) -f mod_socache_shmcb.mak CFG="mod_socache_shmcb - Win32 $(LONG)" RECURSE=0 $(CTARGET)
520         cd ..\..
521         cd modules\core
522          $(MAKE) $(MAKEOPT) -f mod_macro.mak    CFG="mod_macro - Win32 $(LONG)" RECURSE=0 $(CTARGET)
523          $(MAKE) $(MAKEOPT) -f mod_watchdog.mak    CFG="mod_watchdog - Win32 $(LONG)" RECURSE=0 $(CTARGET)
524         cd ..\..
525         cd modules\cluster
526          $(MAKE) $(MAKEOPT) -f mod_heartbeat.mak   CFG="mod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
527          $(MAKE) $(MAKEOPT) -f mod_heartmonitor.mak CFG="mod_heartmonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
528         cd ..\..
529         cd modules\dav\main
530          $(MAKE) $(MAKEOPT) -f mod_dav.mak         CFG="mod_dav - Win32 $(LONG)" RECURSE=0 $(CTARGET)
531         cd ..\..\..
532         cd modules\dav\fs
533          $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak      CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
534         cd ..\..\..
535         cd modules\dav\lock
536          $(MAKE) $(MAKEOPT) -f mod_dav_lock.mak    CFG="mod_dav_lock - Win32 $(LONG)" RECURSE=0 $(CTARGET)
537         cd ..\..\..
538         cd modules\debugging
539 !IFDEF ALL
540          $(MAKE) $(MAKEOPT) -f mod_bucketeer.mak   CFG="mod_bucketeer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
541 !ENDIF
542          $(MAKE) $(MAKEOPT) -f mod_dumpio.mak      CFG="mod_dumpio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
543         cd ..\..
544         cd modules\echo
545 !IFDEF ALL
546          $(MAKE) $(MAKEOPT) -f mod_echo.mak        CFG="mod_echo - Win32 $(LONG)" RECURSE=0 $(CTARGET)
547 !ENDIF
548         cd ..\..
549 !IFDEF ALL
550         cd modules\examples
551          $(MAKE) $(MAKEOPT) -f mod_case_filter.mak    CFG="mod_case_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
552          $(MAKE) $(MAKEOPT) -f mod_case_filter_in.mak CFG="mod_case_filter_in - Win32 $(LONG)" RECURSE=0 $(CTARGET)
553          $(MAKE) $(MAKEOPT) -f mod_example_hooks.mak  CFG="mod_example_hooks - Win32 $(LONG)" RECURSE=0 $(CTARGET)
554          $(MAKE) $(MAKEOPT) -f mod_example_ipc.mak    CFG="mod_example_ipc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
555         cd ..\..
556 !ENDIF
557         cd modules\filters
558 !IF EXIST("srclib\brotli")
559          $(MAKE) $(MAKEOPT) -f mod_brotli.mak      CFG="mod_brotli - Win32 $(LONG)" RECURSE=0 $(CTARGET)
560 !ENDIF
561          $(MAKE) $(MAKEOPT) -f mod_buffer.mak      CFG="mod_buffer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
562          $(MAKE) $(MAKEOPT) -f mod_charset_lite.mak CFG="mod_charset_lite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
563          $(MAKE) $(MAKEOPT) -f mod_data.mak        CFG="mod_data - Win32 $(LONG)" RECURSE=0 $(CTARGET)
564 !IF EXIST("srclib\zlib")
565          $(MAKE) $(MAKEOPT) -f mod_deflate.mak     CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
566 !ENDIF
567          $(MAKE) $(MAKEOPT) -f mod_ext_filter.mak  CFG="mod_ext_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
568          $(MAKE) $(MAKEOPT) -f mod_filter.mak      CFG="mod_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
569          $(MAKE) $(MAKEOPT) -f mod_include.mak     CFG="mod_include - Win32 $(LONG)" RECURSE=0 $(CTARGET)
570 !IF EXIST("srclib\libxml2")
571          $(MAKE) $(MAKEOPT) -f mod_proxy_html.mak     CFG="mod_proxy_html - Win32 $(LONG)" RECURSE=0 $(CTARGET)
572          $(MAKE) $(MAKEOPT) -f mod_xml2enc.mak     CFG="mod_xml2enc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
573 !ENDIF
574          $(MAKE) $(MAKEOPT) -f mod_ratelimit.mak   CFG="mod_ratelimit - Win32 $(LONG)" RECURSE=0 $(CTARGET)
575          $(MAKE) $(MAKEOPT) -f mod_reflector.mak   CFG="mod_reflector - Win32 $(LONG)" RECURSE=0 $(CTARGET)
576          $(MAKE) $(MAKEOPT) -f mod_reqtimeout.mak  CFG="mod_reqtimeout - Win32 $(LONG)" RECURSE=0 $(CTARGET)
577          $(MAKE) $(MAKEOPT) -f mod_request.mak     CFG="mod_request - Win32 $(LONG)" RECURSE=0 $(CTARGET)
578          $(MAKE) $(MAKEOPT) -f mod_sed.mak         CFG="mod_sed - Win32 $(LONG)" RECURSE=0 $(CTARGET)
579          $(MAKE) $(MAKEOPT) -f mod_substitute.mak  CFG="mod_substitute - Win32 $(LONG)" RECURSE=0 $(CTARGET)
580         cd ..\..
581         cd modules\generators
582          $(MAKE) $(MAKEOPT) -f mod_asis.mak        CFG="mod_asis - Win32 $(LONG)" RECURSE=0 $(CTARGET)
583          $(MAKE) $(MAKEOPT) -f mod_autoindex.mak   CFG="mod_autoindex - Win32 $(LONG)" RECURSE=0 $(CTARGET)
584          $(MAKE) $(MAKEOPT) -f mod_cgi.mak         CFG="mod_cgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
585          $(MAKE) $(MAKEOPT) -f mod_info.mak        CFG="mod_info - Win32 $(LONG)" RECURSE=0 $(CTARGET)
586          $(MAKE) $(MAKEOPT) -f mod_status.mak      CFG="mod_status - Win32 $(LONG)" RECURSE=0 $(CTARGET)
587         cd ..\..
588         cd modules\http
589          $(MAKE) $(MAKEOPT) -f mod_mime.mak        CFG="mod_mime - Win32 $(LONG)" RECURSE=0 $(CTARGET)
590         cd ..\..
591         cd modules\loggers
592          $(MAKE) $(MAKEOPT) -f mod_log_config.mak  CFG="mod_log_config - Win32 $(LONG)" RECURSE=0 $(CTARGET)
593          $(MAKE) $(MAKEOPT) -f mod_log_debug.mak  CFG="mod_log_debug - Win32 $(LONG)" RECURSE=0 $(CTARGET)
594          $(MAKE) $(MAKEOPT) -f mod_log_forensic.mak CFG="mod_log_forensic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
595          $(MAKE) $(MAKEOPT) -f mod_logio.mak       CFG="mod_logio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
596         cd ..\..
597 !IF EXIST("srclib\lua")
598         cd modules\lua
599          $(MAKE) $(MAKEOPT) -f mod_lua.mak         CFG="mod_lua - Win32 $(LONG)" RECURSE=0 $(CTARGET)
600         cd ..\..
601 !ENDIF
602         cd modules\mappers
603          $(MAKE) $(MAKEOPT) -f mod_actions.mak     CFG="mod_actions - Win32 $(LONG)" RECURSE=0 $(CTARGET)
604          $(MAKE) $(MAKEOPT) -f mod_alias.mak       CFG="mod_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
605          $(MAKE) $(MAKEOPT) -f mod_dir.mak         CFG="mod_dir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
606          $(MAKE) $(MAKEOPT) -f mod_imagemap.mak    CFG="mod_imagemap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
607          $(MAKE) $(MAKEOPT) -f mod_negotiation.mak CFG="mod_negotiation - Win32 $(LONG)" RECURSE=0 $(CTARGET)
608          $(MAKE) $(MAKEOPT) -f mod_rewrite.mak     CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
609          $(MAKE) $(MAKEOPT) -f mod_speling.mak     CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
610          $(MAKE) $(MAKEOPT) -f mod_userdir.mak     CFG="mod_userdir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
611          $(MAKE) $(MAKEOPT) -f mod_vhost_alias.mak CFG="mod_vhost_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
612         cd ..\..
613 !IF EXIST("srclib\openssl") && EXIST("srclib\jansson") && EXIST("srclib\curl")
614         cd modules\md
615          $(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_md.mak          CFG="mod_md - Win32 $(LONG)" RECURSE=0 $(CTARGET)
616         cd ..\..
617 !ENDIF
618         cd modules\metadata
619          $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak   CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
620          $(MAKE) $(MAKEOPT) -f mod_env.mak         CFG="mod_env - Win32 $(LONG)" RECURSE=0 $(CTARGET)
621          $(MAKE) $(MAKEOPT) -f mod_expires.mak     CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
622          $(MAKE) $(MAKEOPT) -f mod_headers.mak     CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
623          $(MAKE) $(MAKEOPT) -f mod_ident.mak       CFG="mod_ident - Win32 $(LONG)" RECURSE=0 $(CTARGET)
624          $(MAKE) $(MAKEOPT) -f mod_mime_magic.mak  CFG="mod_mime_magic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
625          $(MAKE) $(MAKEOPT) -f mod_remoteip.mak    CFG="mod_remoteip - Win32 $(LONG)" RECURSE=0 $(CTARGET)
626          $(MAKE) $(MAKEOPT) -f mod_setenvif.mak    CFG="mod_setenvif - Win32 $(LONG)" RECURSE=0 $(CTARGET)
627          $(MAKE) $(MAKEOPT) -f mod_unique_id.mak   CFG="mod_unique_id - Win32 $(LONG)" RECURSE=0 $(CTARGET)
628          $(MAKE) $(MAKEOPT) -f mod_usertrack.mak   CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
629          $(MAKE) $(MAKEOPT) -f mod_version.mak     CFG="mod_version - Win32 $(LONG)" RECURSE=0 $(CTARGET)
630         cd ..\..
631         cd modules\proxy
632          $(MAKE) $(MAKEOPT) -f mod_proxy.mak       CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
633          $(MAKE) $(MAKEOPT) -f mod_proxy_ajp.mak   CFG="mod_proxy_ajp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
634          $(MAKE) $(MAKEOPT) -f mod_proxy_balancer.mak  CFG="mod_proxy_balancer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
635          $(MAKE) $(MAKEOPT) -f mod_proxy_connect.mak CFG="mod_proxy_connect - Win32 $(LONG)" RECURSE=0 $(CTARGET)
636          $(MAKE) $(MAKEOPT) -f mod_proxy_express.mak CFG="mod_proxy_express - Win32 $(LONG)" RECURSE=0 $(CTARGET)
637          $(MAKE) $(MAKEOPT) -f mod_proxy_fcgi.mak  CFG="mod_proxy_fcgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
638          $(MAKE) $(MAKEOPT) -f mod_proxy_ftp.mak   CFG="mod_proxy_ftp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
639          $(MAKE) $(MAKEOPT) -f mod_proxy_hcheck.mak  CFG="mod_proxy_hcheck - Win32 $(LONG)" RECURSE=0 $(CTARGET)
640          $(MAKE) $(MAKEOPT) -f mod_proxy_http.mak  CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
641          $(MAKE) $(MAKEOPT) -f mod_proxy_scgi.mak  CFG="mod_proxy_scgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
642          $(MAKE) $(MAKEOPT) -f mod_proxy_uwsgi.mak  CFG="mod_proxy_uwsgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
643          $(MAKE) $(MAKEOPT) -f mod_proxy_wstunnel.mak  CFG="mod_proxy_wstunnel - Win32 $(LONG)" RECURSE=0 $(CTARGET)
644         cd ..\..
645         cd modules\proxy\balancers
646          $(MAKE) $(MAKEOPT) -f mod_lbmethod_bybusyness.mak CFG="mod_lbmethod_bybusyness - Win32 $(LONG)" RECURSE=0 $(CTARGET)
647          $(MAKE) $(MAKEOPT) -f mod_lbmethod_byrequests.mak CFG="mod_lbmethod_byrequests - Win32 $(LONG)" RECURSE=0 $(CTARGET)
648          $(MAKE) $(MAKEOPT) -f mod_lbmethod_bytraffic.mak  CFG="mod_lbmethod_bytraffic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
649          $(MAKE) $(MAKEOPT) -f mod_lbmethod_heartbeat.mak  CFG="mod_lbmethod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
650         cd ..\..\..
651 # mod_proxy_http2 must be built after mod_proxy and mod_http2
652 !IF EXIST("srclib\nghttp2")
653         cd modules\http2
654          $(MAKE) $(MAKEOPT) -f mod_http2.mak         CFG="mod_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
655          $(MAKE) $(MAKEOPT) -f mod_proxy_http2.mak   CFG="mod_proxy_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
656         cd ..\..
657 !ENDIF
658         cd modules\session
659          $(MAKE) $(MAKEOPT) -f mod_session.mak        CFG="mod_session - Win32 $(LONG)" RECURSE=0 $(CTARGET)
660          $(MAKE) $(MAKEOPT) -f mod_session_cookie.mak CFG="mod_session_cookie - Win32 $(LONG)" RECURSE=0 $(CTARGET)
661          $(MAKE) $(MAKEOPT) -f mod_session_dbd.mak    CFG="mod_session_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
662         cd ..\..
663         cd modules\slotmem
664          $(MAKE) $(MAKEOPT) -f mod_slotmem_plain.mak  CFG="mod_slotmem_plain - Win32 $(LONG)" RECURSE=0 $(CTARGET)
665          $(MAKE) $(MAKEOPT) -f mod_slotmem_shm.mak    CFG="mod_slotmem_shm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
666         cd ..\..
667 !IF EXIST("srclib\openssl")
668 #       cd modules\session
669 #        $(MAKE) $(MAKEOPT) -f mod_session_crypto.mak CFG="mod_session_crypto - Win32 $(LONG)" RECURSE=0 $(CTARGET)
670 #       cd ..\..
671         cd modules\ssl
672          $(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_ssl.mak         CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
673         cd ..\..
674         cd support
675          $(MAKE) $(MAKEOPT) $(SSLOPT) -f abs.mak             CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
676         cd ..
677 !ENDIF
678         cd support
679          $(MAKE) $(MAKEOPT) -f ab.mak              CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
680 #        $(MAKE) $(MAKEOPT) -f fcgistarter.mak     CFG="fcgistarter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
681          $(MAKE) $(MAKEOPT) -f htcacheclean.mak    CFG="htcacheclean - Win32 $(LONG)" RECURSE=0 $(CTARGET)
682          $(MAKE) $(MAKEOPT) -f htdbm.mak           CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
683          $(MAKE) $(MAKEOPT) -f htdigest.mak        CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
684          $(MAKE) $(MAKEOPT) -f htpasswd.mak        CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
685          $(MAKE) $(MAKEOPT) -f httxt2dbm.mak       CFG="httxt2dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
686          $(MAKE) $(MAKEOPT) -f logresolve.mak      CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
687          $(MAKE) $(MAKEOPT) -f rotatelogs.mak      CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
688         cd ..
689         cd support\win32
690          $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak   CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
691          $(MAKE) $(MAKEOPT) -f wintty.mak          CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
692         cd ..\..
693
694 !ELSEIF $(USESLN) == 1
695
696 _cleanr:  
697         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
698
699 _cleand:  
700         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/clean" _build
701
702 _build:
703         echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
704 !IFDEF ALL
705         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project BuildAll
706 !ELSE
707         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project BuildBin
708 !ENDIF
709 !IF EXIST("srclib\openssl")
710         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_ssl
711         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project abs
712 !ENDIF
713 !IF EXIST("srclib\zlib")
714         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_deflate
715 !ENDIF
716 !IF EXIST("srclib\lua")
717         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_lua
718 !ENDIF
719 !IF EXIST("srclib\libxml2")
720         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_proxy_html
721         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_xml2enc
722 !ENDIF
723
724 !ELSE
725
726 _cleanr:  
727         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
728
729 _cleand:  
730         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/CLEAN" _build
731
732 _build:
733         @echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
734 !IFDEF ALL
735         @msdev $(TLP).dsw /USEENV /MAKE \
736                 "BuildAll - Win32 $(LONG)" $(CTARGET)
737 !ELSE
738         @msdev $(TLP).dsw /USEENV /MAKE \
739                 "BuildBin - Win32 $(LONG)" $(CTARGET)
740 !ENDIF
741 !IF "$(CTARGET)" == "/CLEAN"
742 !IF EXIST("srclib\apr-iconv")
743         @cd srclib\apr-iconv
744         @$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
745                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
746         @cd ..\..
747 !ENDIF
748 !ENDIF
749 !IF EXIST("srclib\openssl")
750         @msdev $(TLP).dsw /USEENV /MAKE \
751                 "mod_ssl - Win32 $(LONG)" \
752                 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
753 !ENDIF
754 !IF EXIST("srclib\zlib")
755         @msdev $(TLP).dsw /USEENV /MAKE \
756                 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
757 !ENDIF
758 !IF EXIST("srclib\lua")
759         @msdev $(TLP).dsw /USEENV /MAKE \
760                 "mod_lua - Win32 $(LONG)" /NORECURSE $(CTARGET)
761 !ENDIF
762 !IF EXIST("srclib\libxml2")
763         @msdev $(TLP).dsw /USEENV /MAKE \
764                 "mod_proxy_html - Win32 $(LONG)" /NORECURSE $(CTARGET)
765         @msdev $(TLP).dsw /USEENV /MAKE \
766                 "mod_xml2enc - Win32 $(LONG)" /NORECURSE $(CTARGET)
767 !ENDIF
768
769 !ENDIF
770
771
772 _copybin:
773         copy $(LONG)\httpd.$(src_exe)                           "$(inst_exe)" <.y
774         copy $(LONG)\libhttpd.$(src_dll)                        "$(inst_dll)" <.y
775         copy srclib\apr\$(LONG)\libapr-1.$(src_dll)             "$(inst_dll)" <.y
776 !IF EXIST("srclib\apr-util")
777         copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll)  "$(inst_dll)" <.y
778         copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll)    "$(inst_dll)" <.y
779         copy srclib\apr-util\ldap\$(LONG)\apr_ldap-1.$(src_dll) "$(inst_dll)" <.y
780 !ENDIF
781         for %d in (odbc $(DBD_LIST)) do ( \
782           copy srclib\$(UTILDIR)\dbd\$(LONG)\apr_dbd_%d-1.$(src_dll) "$(inst_dll)" <.y \
783         )
784         for %d in ($(DBM_LIST) x) do if not %d == x ( \
785           copy srclib\$(UTILDIR)\dbm\$(LONG)\apr_dbm_%d-1.$(src_dll) "$(inst_dll)" <.y \
786         )
787 !IF "$(SHORT)" == "D"
788         copy srclib\pcre\pcred.$(src_dll)                       "$(inst_dll)" <.y
789 !ELSE
790         copy srclib\pcre\pcre.$(src_dll)                        "$(inst_dll)" <.y
791 !ENDIF  
792         copy modules\aaa\$(LONG)\mod_access_compat.$(src_so)    "$(inst_so)" <.y
793         copy modules\aaa\$(LONG)\mod_allowmethods.$(src_so)     "$(inst_so)" <.y
794         copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so)       "$(inst_so)" <.y
795         copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so)      "$(inst_so)" <.y
796         copy modules\aaa\$(LONG)\mod_auth_form.$(src_so)        "$(inst_so)" <.y
797         copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so)       "$(inst_so)" <.y
798         copy modules\aaa\$(LONG)\mod_authn_core.$(src_so)       "$(inst_so)" <.y
799         copy modules\aaa\$(LONG)\mod_authn_dbd.$(src_so)        "$(inst_so)" <.y
800         copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so)        "$(inst_so)" <.y
801         copy modules\aaa\$(LONG)\mod_authn_file.$(src_so)       "$(inst_so)" <.y
802         copy modules\aaa\$(LONG)\mod_authn_socache.$(src_so)    "$(inst_so)" <.y
803         copy modules\aaa\$(LONG)\mod_authnz_fcgi.$(src_so)      "$(inst_so)" <.y
804         copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so)      "$(inst_so)" <.y
805         copy modules\aaa\$(LONG)\mod_authz_core.$(src_so)       "$(inst_so)" <.y
806         copy modules\aaa\$(LONG)\mod_authz_dbd.$(src_so)        "$(inst_so)" <.y
807         copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so)        "$(inst_so)" <.y
808         copy modules\aaa\$(LONG)\mod_authz_core.$(src_so)       "$(inst_so)" <.y
809         copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so)  "$(inst_so)" <.y
810         copy modules\aaa\$(LONG)\mod_authz_host.$(src_so)       "$(inst_so)" <.y
811         copy modules\aaa\$(LONG)\mod_authz_owner.$(src_so)      "$(inst_so)" <.y
812         copy modules\aaa\$(LONG)\mod_authz_user.$(src_so)       "$(inst_so)" <.y
813         copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so)     "$(inst_so)" <.y
814         copy modules\cache\$(LONG)\mod_cache.$(src_so)          "$(inst_so)" <.y
815         copy modules\cache\$(LONG)\mod_cache_disk.$(src_so)     "$(inst_so)" <.y
816         copy modules\cache\$(LONG)\mod_cache_socache.$(src_so)  "$(inst_so)" <.y
817         copy modules\cache\$(LONG)\mod_file_cache.$(src_so)     "$(inst_so)" <.y
818         copy modules\cache\$(LONG)\mod_socache_dbm.$(src_so)    "$(inst_so)" <.y
819 #       copy modules\cache\$(LONG)\mod_socache_dc.$(src_so)     "$(inst_so)" <.y
820         copy modules\cache\$(LONG)\mod_socache_memcache.$(src_so) "$(inst_so)" <.y
821         copy modules\cache\$(LONG)\mod_socache_shmcb.$(src_so)  "$(inst_so)" <.y
822         copy modules\core\$(LONG)\mod_macro.$(src_so)   "$(inst_so)" <.y
823         copy modules\core\$(LONG)\mod_watchdog.$(src_so)        "$(inst_so)" <.y
824         copy modules\cluster\$(LONG)\mod_heartbeat.$(src_so)    "$(inst_so)" <.y
825         copy modules\cluster\$(LONG)\mod_heartmonitor.$(src_so) "$(inst_so)" <.y
826         copy modules\database\$(LONG)\mod_dbd.$(src_so)         "$(inst_so)" <.y
827         copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so)        "$(inst_so)" <.y
828         copy modules\dav\lock\$(LONG)\mod_dav_lock.$(src_so)    "$(inst_so)" <.y
829         copy modules\dav\main\$(LONG)\mod_dav.$(src_so)         "$(inst_so)" <.y
830 !IFDEF ALL
831         copy modules\debugging\$(LONG)\mod_bucketeer.$(src_so)  "$(inst_so)" <.y
832 !ENDIF
833         copy modules\debugging\$(LONG)\mod_dumpio.$(src_so)     "$(inst_so)" <.y
834 !IFDEF ALL
835         copy modules\echo\$(LONG)\mod_echo.$(src_so)            "$(inst_so)" <.y
836         copy modules\examples\$(LONG)\mod_case_filter.$(src_so)    "$(inst_so)" <.y
837         copy modules\examples\$(LONG)\mod_case_filter_in.$(src_so) "$(inst_so)" <.y
838         copy modules\examples\$(LONG)\mod_example_hooks.$(src_so)  "$(inst_so)" <.y
839         copy modules\examples\$(LONG)\mod_example_ipc.$(src_so)    "$(inst_so)" <.y
840 !ENDIF
841 !IF EXIST("srclib\brotli")
842         copy modules\filters\$(LONG)\mod_brotli.$(src_so)       "$(inst_so)" <.y
843 !ENDIF
844         copy modules\filters\$(LONG)\mod_buffer.$(src_so)       "$(inst_so)" <.y
845         copy modules\filters\$(LONG)\mod_charset_lite.$(src_so) "$(inst_so)" <.y
846         copy modules\filters\$(LONG)\mod_data.$(src_so) "$(inst_so)" <.y
847 !IF EXIST("srclib\zlib")
848         copy modules\filters\$(LONG)\mod_deflate.$(src_so)      "$(inst_so)" <.y
849 !IF EXIST("srclib\zlib\zlib1.$(src_dll)")
850         copy srclib\zlib\zlib1.$(src_dll)                       "$(inst_dll)" <.y
851 !ENDIF
852 !ENDIF
853         copy modules\filters\$(LONG)\mod_ext_filter.$(src_so)   "$(inst_so)" <.y
854         copy modules\filters\$(LONG)\mod_filter.$(src_so)       "$(inst_so)" <.y
855         copy modules\filters\$(LONG)\mod_include.$(src_so)      "$(inst_so)" <.y
856 !IF EXIST("srclib\libxml2")
857         copy modules\filters\$(LONG)\mod_proxy_html.$(src_so)   "$(inst_so)" <.y
858         copy modules\filters\$(LONG)\mod_xml2enc.$(src_so)      "$(inst_so)" <.y
859 !IF EXIST("srclib\libxml2\win32\bin.msvc\libxml2.$(src_dll)")
860         copy srclib\libxml2\win32\bin.msvc\libxml2.$(src_dll)                   "$(inst_dll)" <.y
861 !ENDIF
862 !ENDIF
863         copy modules\filters\$(LONG)\mod_ratelimit.$(src_so)    "$(inst_so)" <.y
864         copy modules\filters\$(LONG)\mod_reflector.$(src_so)    "$(inst_so)" <.y
865         copy modules\filters\$(LONG)\mod_reqtimeout.$(src_so)   "$(inst_so)" <.y
866         copy modules\filters\$(LONG)\mod_request.$(src_so)      "$(inst_so)" <.y
867         copy modules\filters\$(LONG)\mod_sed.$(src_so)          "$(inst_so)" <.y
868         copy modules\filters\$(LONG)\mod_substitute.$(src_so)   "$(inst_so)" <.y
869         copy modules\generators\$(LONG)\mod_asis.$(src_so)      "$(inst_so)" <.y
870         copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
871         copy modules\generators\$(LONG)\mod_cgi.$(src_so)       "$(inst_so)" <.y
872         copy modules\generators\$(LONG)\mod_info.$(src_so)      "$(inst_so)" <.y
873         copy modules\generators\$(LONG)\mod_status.$(src_so)    "$(inst_so)" <.y
874         copy modules\http\$(LONG)\mod_mime.$(src_so)            "$(inst_so)" <.y
875 !IF EXIST("srclib\nghttp2")
876         copy modules\http2\$(LONG)\mod_http2.$(src_so)          "$(inst_so)" <.y
877         copy modules\http2\$(LONG)\mod_proxy_http2.$(src_so)            "$(inst_so)" <.y
878 !IF "$(SHORT)" == "D"
879         copy srclib\nghttp2\lib\MSVC_obj\nghttp2d.$(src_dll)                    "$(inst_dll)" <.y
880 !ELSE
881         copy srclib\nghttp2\lib\MSVC_obj\nghttp2.$(src_dll)                     "$(inst_dll)" <.y
882 !ENDIF
883 !ENDIF
884         copy modules\ldap\$(LONG)\mod_ldap.$(src_so)            "$(inst_so)" <.y
885         copy modules\loggers\$(LONG)\mod_log_config.$(src_so)   "$(inst_so)" <.y
886         copy modules\loggers\$(LONG)\mod_log_debug.$(src_so)    "$(inst_so)" <.y
887         copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
888         copy modules\loggers\$(LONG)\mod_logio.$(src_so)        "$(inst_so)" <.y
889 !IF EXIST("srclib\lua")
890         copy modules\lua\$(LONG)\mod_lua.$(src_so)              "$(inst_so)" <.y
891 !IF EXIST("srclib\lua\src\lua51.$(src_dll)")
892         copy srclib\lua\src\lua51.$(src_dll)                    "$(inst_dll)" <.y
893 !ENDIF
894 !ENDIF
895         copy modules\mappers\$(LONG)\mod_actions.$(src_so)      "$(inst_so)" <.y
896         copy modules\mappers\$(LONG)\mod_alias.$(src_so)        "$(inst_so)" <.y
897         copy modules\mappers\$(LONG)\mod_dir.$(src_so)          "$(inst_so)" <.y
898         copy modules\mappers\$(LONG)\mod_imagemap.$(src_so)     "$(inst_so)" <.y
899         copy modules\mappers\$(LONG)\mod_negotiation.$(src_so)  "$(inst_so)" <.y
900         copy modules\mappers\$(LONG)\mod_rewrite.$(src_so)      "$(inst_so)" <.y
901         copy modules\mappers\$(LONG)\mod_speling.$(src_so)      "$(inst_so)" <.y
902         copy modules\mappers\$(LONG)\mod_userdir.$(src_so)      "$(inst_so)" <.y
903         copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so)  "$(inst_so)" <.y
904 !IF EXIST("srclib\openssl") &&  EXIST("srclib\jansson") &&  EXIST("srclib\curl")
905         copy modules\md\$(LONG)\mod_md.$(src_so)                "$(inst_so)" <.y
906 !IF "$(SHORT)" == "D"
907         -copy srclib\curl\bin\libcurl_debug.$(src_dll)          "$(inst_dll)" <.y
908         -copy srclib\jansson\bin\jansson_d.$(src_dll)           "$(inst_dll)" <.y
909 !ELSE
910         -copy srclib\curl\bin\libcurl.$(src_dll)                "$(inst_dll)" <.y
911         -copy srclib\jansson\bin\jansson.$(src_dll)             "$(inst_dll)" <.y
912 !ENDIF
913 !ENDIF
914         copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so)   "$(inst_so)" <.y
915         copy modules\metadata\$(LONG)\mod_env.$(src_so)         "$(inst_so)" <.y
916         copy modules\metadata\$(LONG)\mod_expires.$(src_so)     "$(inst_so)" <.y
917         copy modules\metadata\$(LONG)\mod_headers.$(src_so)     "$(inst_so)" <.y
918         copy modules\metadata\$(LONG)\mod_ident.$(src_so)       "$(inst_so)" <.y
919         copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so)  "$(inst_so)" <.y
920         copy modules\metadata\$(LONG)\mod_remoteip.$(src_so)    "$(inst_so)" <.y
921         copy modules\metadata\$(LONG)\mod_setenvif.$(src_so)    "$(inst_so)" <.y
922         copy modules\metadata\$(LONG)\mod_unique_id.$(src_so)   "$(inst_so)" <.y
923         copy modules\metadata\$(LONG)\mod_usertrack.$(src_so)   "$(inst_so)" <.y
924         copy modules\metadata\$(LONG)\mod_version.$(src_so)     "$(inst_so)" <.y
925         copy modules\proxy\$(LONG)\mod_proxy.$(src_so)          "$(inst_so)" <.y
926         copy modules\proxy\$(LONG)\mod_proxy_ajp.$(src_so)      "$(inst_so)" <.y
927         copy modules\proxy\$(LONG)\mod_proxy_balancer.$(src_so) "$(inst_so)" <.y
928         copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so)  "$(inst_so)" <.y
929         copy modules\proxy\$(LONG)\mod_proxy_express.$(src_so)  "$(inst_so)" <.y
930         copy modules\proxy\$(LONG)\mod_proxy_fcgi.$(src_so)     "$(inst_so)" <.y
931         copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so)      "$(inst_so)" <.y
932         copy modules\proxy\$(LONG)\mod_proxy_hcheck.$(src_so)   "$(inst_so)" <.y
933         copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so)     "$(inst_so)" <.y
934         copy modules\proxy\$(LONG)\mod_proxy_scgi.$(src_so)     "$(inst_so)" <.y
935         copy modules\proxy\$(LONG)\mod_proxy_uwsgi.$(src_so)    "$(inst_so)" <.y
936         copy modules\proxy\$(LONG)\mod_proxy_wstunnel.$(src_so)         "$(inst_so)" <.y
937         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bybusyness.$(src_so) "$(inst_so)" <.y
938         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_byrequests.$(src_so) "$(inst_so)" <.y
939         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bytraffic.$(src_so)  "$(inst_so)" <.y
940         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_heartbeat.$(src_so)  "$(inst_so)" <.y
941         copy modules\session\$(LONG)\mod_session.$(src_so)        "$(inst_so)" <.y
942         copy modules\session\$(LONG)\mod_session_cookie.$(src_so) "$(inst_so)" <.y
943         copy modules\session\$(LONG)\mod_session_dbd.$(src_so)    "$(inst_so)" <.y
944         copy modules\slotmem\$(LONG)\mod_slotmem_plain.$(src_so)    "$(inst_so)" <.y
945         copy modules\slotmem\$(LONG)\mod_slotmem_shm.$(src_so)    "$(inst_so)" <.y
946 !IF EXIST("srclib\openssl")
947 #       copy modules\session\$(LONG)\mod_session_crypto.$(src_so) "$(inst_so)" <.y
948         copy modules\ssl\$(LONG)\mod_ssl.$(src_so)              "$(inst_so)" <.y
949         -copy srclib\openssl\$(SSLBIN)\$(SSLCRP)*.$(src_dll)    "$(inst_dll)" <.y
950         -copy srclib\openssl\$(SSLBIN)\$(SSLLIB)*.$(src_dll)    "$(inst_dll)" <.y
951         -copy srclib\openssl\$(SSLAPP)\openssl.$(src_exe)       "$(inst_exe)" <.y
952         copy support\$(LONG)\abs.$(src_exe)                     "$(inst_exe)" <.y
953 !ENDIF
954         copy support\$(LONG)\ab.$(src_exe)                      "$(inst_exe)" <.y
955 #       copy support\$(LONG)\fcgistarter.$(src_exe)             "$(inst_exe)" <.y
956         copy support\$(LONG)\htcacheclean.$(src_exe)            "$(inst_exe)" <.y
957         copy support\$(LONG)\htdbm.$(src_exe)                   "$(inst_exe)" <.y
958         copy support\$(LONG)\htdigest.$(src_exe)                "$(inst_exe)" <.y
959         copy support\$(LONG)\htpasswd.$(src_exe)                "$(inst_exe)" <.y
960         copy support\$(LONG)\httxt2dbm.$(src_exe)               "$(inst_exe)" <.y
961         copy support\$(LONG)\logresolve.$(src_exe)              "$(inst_exe)" <.y
962         copy support\$(LONG)\rotatelogs.$(src_exe)              "$(inst_exe)" <.y
963         copy support\win32\$(LONG)\ApacheMonitor.$(src_exe)     "$(inst_exe)" <.y
964         copy support\win32\$(LONG)\wintty.$(src_exe)            "$(inst_exe)" <.y
965
966
967 # First we create the tree and populate the README so that 
968 # whatever happens, all licensing has already propagated.  
969 # Then repeatedly invoke the _copybin build to copy the
970 # real binaries, then pdb symbols, anf finally dbg syms.
971 # Then hit docs of various sorts, then includes and libs,
972 # and finally do the .conf magic.
973 #
974 _install:
975         echo Y >.y
976         echo A >.A
977         -mkdir "$(INSTDIR)"
978         -mkdir "$(INSTDIR)\bin"
979 !IF EXIST("srclib\apr-util")
980         -mkdir "$(INSTDIR)\bin\iconv"
981 !ENDIF
982         -mkdir "$(INSTDIR)\cgi-bin"
983         -mkdir "$(INSTDIR)\conf"
984         -mkdir "$(INSTDIR)\conf\extra"
985         -mkdir "$(INSTDIR)\conf\original"
986         -mkdir "$(INSTDIR)\conf\original\extra"
987         -mkdir "$(INSTDIR)\error"
988         -mkdir "$(INSTDIR)\htdocs"
989         -mkdir "$(INSTDIR)\manual"
990         -mkdir "$(INSTDIR)\icons"
991         -mkdir "$(INSTDIR)\include"
992         -mkdir "$(INSTDIR)\lib"
993         -mkdir "$(INSTDIR)\logs"
994         -mkdir "$(INSTDIR)\modules"
995         copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
996         copy CHANGES      "$(INSTDIR)\CHANGES.txt" <.y
997         copy INSTALL      "$(INSTDIR)\INSTALL.txt" <.y
998         copy LICENSE      "$(INSTDIR)\LICENSE.txt" <.y
999         copy NOTICE       "$(INSTDIR)\NOTICE.txt" <.y
1000         copy README       "$(INSTDIR)\README.txt" <.y
1001         type << >> "$(INSTDIR)\NOTICE.txt"
1002
1003 Regular expression support is provided by the PCRE library package,
1004 which is open source software, written by Philip Hazel, and copyright
1005 by the University of Cambridge, England. The original software is
1006 available from
1007   ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
1008 <<
1009         -awk -f <<script1.awk < "srclib\pcre\LICENCE" >> "$(INSTDIR)\LICENSE.txt"
1010 BEGIN {
1011     print "";
1012     print "For the pcre.dll component:";
1013     print "";
1014     while ( getline > 0 ) {
1015         if ( $$0 ~ /^End$$/ ) $$0 = "END OF PCRE LICENSE";
1016         print $$0;
1017    }
1018 }
1019 <<
1020 !IF EXIST("srclib\openssl")
1021         -copy srclib\openssl\apps\openssl.cnf "$(INSTDIR)\conf\openssl.cnf" <.y
1022         type << >> "$(INSTDIR)\NOTICE.txt"
1023
1024 This binary distribution includes cryptographic software written by
1025 Eric Young (eay@cryptsoft.com), software written by Tim Hudson 
1026 (tjh@cryptsoft.com), and software developed by the OpenSSL Project 
1027 for use in the OpenSSL Toolkit <http://www.openssl.org/>.
1028 <<
1029         -awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
1030 BEGIN {
1031     print "";
1032     print "For the libeay32.dll, ssleay32.dll and openssl.exe components:";
1033     print "";
1034     while ( getline > 0 ) {
1035         print $$0;
1036    }
1037 }
1038 <<
1039         copy << "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
1040
1041  Apache HTTP Server 2.4 Limited OpenSSL Distribution
1042
1043  This binary distribution includes the minimal components of OpenSSL required
1044  to support mod_ssl for Apache HTTP Server version 2.4 (details are listed 
1045  in OPENSSL-README.txt.)  For the complete list of CHANGES to this and later 
1046  versions of OpenSSL, please refer to the definative source,
1047  <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
1048  full binary or source distribution package from <http://www.openssl.org/>.
1049
1050  These OpenSSL binaries were built for distribution from the U.S. without 
1051  support for the patented encryption methods IDEA, MDC-2 or RC5.
1052
1053 --------------------------------------------------------------------------------
1054
1055 <<
1056         -copy "$(INSTDIR)\OPENSSL-NEWS.txt" \
1057             + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt"
1058         copy << "$(INSTDIR)\OPENSSL-README.txt" <.y
1059
1060  Apache HTTP Server 2.4 Limited OpenSSL Distribution
1061
1062  This binary installation of OpenSSL is a limited distribution of the
1063  files derived from the OpenSSL project:
1064
1065    LICENSE.txt (includes openssl LICENSE)
1066    OPENSSL-NEWS.txt
1067    OPENSSL-README.txt
1068    conf\openssl.cnf
1069    bin\libeay32.dll
1070    bin\ssleay32.dll
1071    bin\openssl.exe
1072
1073  These are the minimal libraries and tools required to use mod_ssl as 
1074  distributed with Apache HTTP Server version 2.4.  No library link files, 
1075  headers or sources are distributed with this binary distribution.  Please 
1076  refer to the <http://www.openssl.org/> site for complete source or binary 
1077  distributions.
1078
1079  These OpenSSL binaries were built for distribution from the U.S. without 
1080  support for the patented encryption methods IDEA, MDC-2 or RC5.
1081
1082  The Apache HTTP Project only supports the binary distribution of these files
1083  and development of the mod_ssl module.  We cannot provide support assistance
1084  for using or configuring the OpenSSL package or these modules.  Please refer
1085  all installation and configuration questions to the appropriate forum,
1086  such as the user supported lists, <http://httpd.apache.org/userslist.html> 
1087  the Apache HTTP Server user's list or <http://www.openssl.org/support/> the
1088  OpenSSL support page.
1089
1090 --------------------------------------------------------------------------------
1091
1092 <<
1093         -copy "$(INSTDIR)\OPENSSL-README.txt" \
1094             + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt"
1095 !ENDIF
1096 !IF EXIST("srclib\zlib")
1097         type << >> "$(INSTDIR)\NOTICE.txt"
1098
1099 This binary distribution of mod_deflate.so includes zlib compression code
1100 <http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
1101 and Mark Adler (madler@alumni.caltech.edu) .
1102 <<
1103         -awk -f <<script.awk < "srclib\zlib\README" >> "$(INSTDIR)\LICENSE.txt"
1104 BEGIN {
1105     while ( getline > 0 ) {
1106         if ( $$0 ~ /Copyright notice:/ ) {
1107             print "";
1108             print "For the mod_deflate zlib compression component:";
1109             while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
1110                 print $$0;
1111             }
1112             exit 0;
1113         }
1114     }
1115     exit 1;
1116 }
1117 <<
1118 !ENDIF
1119 !IF EXIST("srclib\lua")
1120         type << >> "$(INSTDIR)\NOTICE.txt"
1121
1122 This binary distribution of mod_lua.so includes the Lua language, 
1123 developed at Lua.org, a laboratory of the Department of Computer Science 
1124 of PUC-Rio (the Pontifical Catholic University of Rio de Janeiro in Brazil).
1125 For complete information, visit Lua's web site at http://www.lua.org/
1126 <<
1127         -awk -f <<script.awk < "srclib\lua\COPYRIGHT" >> "$(INSTDIR)\LICENSE.txt"
1128 BEGIN {
1129     print "";
1130     print "For the mod_lua language component:";
1131     print "";
1132     while ( getline > 0 && $$0 !~ /end of COPYRIGHT/ ) {
1133         print $$0;
1134     }
1135     exit 0;
1136 }
1137 <<
1138 !ENDIF
1139 !IF EXIST("srclib\libxml2")
1140         type << >> "$(INSTDIR)\NOTICE.txt"
1141
1142 This binary distributions of mod_proxy_html.so and mod_xml2enc.so include the
1143 libxml2 C library written by Daniel Veillard (daniel veillard.com), Bjorn 
1144 Reese (breese users.sourceforge.net) and Gary Pennington (Gary.Pennington 
1145 uk.sun.com). For complete information, visit LibXML2's web site at 
1146 https://http://www.xmlsoft.org/
1147 <<
1148         -awk -f <<script.awk < "srclib\libxml2\Copyright" >> "$(INSTDIR)\LICENSE.txt"
1149 BEGIN {
1150     print "";
1151     print "For the mod_proxy_html and mod_xml2enc components:";
1152     print "";
1153             while ( getline > 0 ) {
1154         print $$0;
1155     }
1156     exit 0;
1157 }
1158 <<
1159 !ENDIF
1160 !IF EXIST("srclib\nghttp2")
1161         type << >> "$(INSTDIR)\NOTICE.txt"
1162
1163 This binary distribution of mod_http2.so includes nghttp2 C library written 
1164 by Tatsuhiro Tsujikawa. For complete information, visit nghttp2's web site 
1165 at https://nghttp2.org/
1166 <<
1167         -awk -f <<script.awk < "srclib\nghttp2\COPYING" >> "$(INSTDIR)\LICENSE.txt"
1168 BEGIN {
1169     print "";
1170     print "For the mod_http2 component:";
1171     print "";
1172             while ( getline > 0 ) {
1173         print $$0;
1174     }
1175     exit 0;
1176 }
1177 <<
1178 !ENDIF
1179 !IF EXIST("srclib\brotli")
1180         type << >> "$(INSTDIR)\NOTICE.txt"
1181
1182 This binary distribution of mod_brotli.so includes Brotli C library written 
1183 by the Brotli Authors. For complete information, visit Brotli's web site 
1184 at https://github.com/google/brotli
1185 <<
1186         -awk -f <<script.awk < "srclib\brotli\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
1187 BEGIN {
1188     print "";
1189     print "For the mod_brotli component:";
1190     print "";
1191             while ( getline > 0 ) {
1192         print $$0;
1193     }
1194     exit 0;
1195 }
1196 <<
1197 !ENDIF
1198         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
1199                 _copybin src_exe=exe src_dll=dll src_so=so             \
1200                 inst_exe="$(INSTDIR)\bin"                              \
1201                 inst_dll="$(INSTDIR)\bin"                              \
1202                 inst_so="$(INSTDIR)\modules"
1203         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
1204                 _copybin src_exe=pdb src_dll=pdb src_so=pdb            \
1205                 inst_exe="$(INSTDIR)\bin"                              \
1206                 inst_dll="$(INSTDIR)\bin"                              \
1207                 inst_so="$(INSTDIR)\modules"
1208 !IF EXIST("srclib\apr-util")
1209         cd srclib\apr-iconv
1210         $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
1211                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
1212                 INSTALL_DIR="$(INSTDIR)\bin\iconv"
1213         cd ..\..
1214 !ENDIF
1215         copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
1216         -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
1217     BEGIN { 
1218         if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
1219             gsub( /\\/, "/", perlroot );
1220             print "#!" perlroot;
1221         }
1222     }
1223     {
1224         if ( $$0 !~ /^#!/ ) {
1225             print $$0;
1226         }
1227     }
1228 <<
1229         xcopy docs\error        "$(INSTDIR)\error" /s /d < .a
1230         xcopy docs\docroot      "$(INSTDIR)\htdocs" /d < .a
1231         xcopy docs\icons        "$(INSTDIR)\icons" /s /d < .a
1232         xcopy docs\manual       "$(INSTDIR)\manual" /s /d < .a
1233         for %f in ( \
1234                 srclib\expat\lib\expat.h \
1235                 srclib\apr-util\xml\expat\lib\expat.h \
1236                 srclib\apr\include\*.h \
1237                 srclib\apr-util\include\*.h \
1238                 include\*.h \
1239                 os\win32\os.h \
1240                 modules\cache\mod_cache.h \
1241                 modules\cache\cache_common.h \
1242                 modules\core\mod_so.h \
1243                 modules\core\mod_watchdog.h \
1244                 modules\database\mod_dbd.h \
1245                 modules\dav\main\mod_dav.h \
1246                 modules\filters\mod_include.h \
1247                 modules\generators\mod_cgi.h \
1248                 modules\generators\mod_status.h \
1249                 modules\loggers\mod_log_config.h \
1250                 modules\mappers\mod_rewrite.h \
1251                 modules\proxy\mod_proxy.h \
1252                 modules\ssl\mod_ssl.h \
1253                 modules\ssl\mod_ssl_openssl.h \
1254           ) do \
1255             @copy %f "$(INSTDIR)\include" < .y > nul
1256         copy srclib\apr\Lib$(SHORT)\apr-1.lib           "$(INSTDIR)\lib" <.y
1257         copy srclib\apr\Lib$(SHORT)\apr-1.pdb           "$(INSTDIR)\lib" <.y
1258         copy srclib\apr\$(LONG)\libapr-1.lib            "$(INSTDIR)\lib" <.y
1259         copy srclib\apr\$(LONG)\libapr-1.exp            "$(INSTDIR)\lib" <.y
1260 !IF EXIST("srclib\apr-util")
1261         copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib  "$(INSTDIR)\lib" <.y
1262         copy srclib\apr-util\Lib$(SHORT)\aprutil-1.pdb  "$(INSTDIR)\lib" <.y
1263         copy srclib\apr-util\$(EXPAT)\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
1264         copy srclib\apr-util\$(EXPAT)\Lib$(SHORT)\xml.pdb "$(INSTDIR)\lib" <.y
1265         copy srclib\apr-util\$(LONG)\libaprutil-1.lib   "$(INSTDIR)\lib" <.y
1266         copy srclib\apr-util\$(LONG)\libaprutil-1.exp   "$(INSTDIR)\lib" <.y
1267         copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib "$(INSTDIR)\lib" <.y
1268         copy srclib\apr-iconv\$(LONG)\libapriconv-1.exp "$(INSTDIR)\lib" <.y
1269 !ELSE
1270         copy srclib\expat\win32\$(LONG)\libexpatMT.lib  "$(INSTDIR)\lib" <.y
1271         copy srclib\expat\win32\$(LONG)\libexpatMT.exp  "$(INSTDIR)\lib" <.y
1272         copy srclib\expat\win32\$(LONG)\libexpat.lib    "$(INSTDIR)\lib" <.y
1273         copy srclib\expat\win32\$(LONG)\libexpat.exp    "$(INSTDIR)\lib" <.y
1274         copy srclib\expat\win32\$(LONG)\libexpat.dll    "$(INSTDIR)\bin" <.y
1275 !ENDIF
1276         copy $(LONG)\libhttpd.exp                       "$(INSTDIR)\lib" <.y
1277         copy $(LONG)\libhttpd.lib                       "$(INSTDIR)\lib" <.y
1278         copy modules\dav\main\$(LONG)\mod_dav.exp       "$(INSTDIR)\lib" <.y
1279         copy modules\dav\main\$(LONG)\mod_dav.lib       "$(INSTDIR)\lib" <.y
1280         for %f in ( charset.conv magic mime.types ) do ( \
1281           copy docs\conf\%f "$(INSTDIR)\conf\original\%f" <.y )
1282         awk -f build\installwinconf.awk $(DOMAINNAME) $(SERVERNAME) \
1283             $(SERVERADMIN) $(PORT) $(SSLPORT) "$(INSTDIR) " docs/conf/ 
1284         copy "support\dbmmanage.in" "$(INSTDIR)\bin\dbmmanage.pl"
1285         -awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
1286     { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
1287           sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" ); 
1288       }
1289       if ( $$0 !~ /^#!@perlbin@/ )
1290           print $$0;
1291     }
1292 <<
1293         del .y
1294         del .a