]> granicus.if.org Git - apache/blob - Makefile.win
Merge r1745039 from trunk:
[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 _trydb:
299 !IF $(USEMAK) == 1
300         cd srclib\$(UTILDIR)\dbd
301         for %d in (odbc $(DBD_LIST)) do \
302           $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak CFG="apr_dbd_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
303         cd ..\dbm
304         for %d in ($(DBM_LIST) x) do if not %d == x \
305           $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak CFG="apr_dbm_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
306         cd ..\..\..
307 !ELSEIF $(USESLN) == 1
308         for %d in (odbc $(DBD_LIST)) do \
309           devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project apr_dbd_%d
310         for %d in ($(DBM_LIST) x) do if not %d == x \
311           devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project apr_dbm_%d
312 !ELSE
313         @for %d in (odbc $(DBD_LIST)) do \
314           msdev $(TLP).dsw /USEENV /MAKE \
315                 "apr_dbd_%d - Win32 $(LONG)" /NORECURSE $(CTARGET)
316         @for %d in ($(DBM_LIST) x) do if not %d == x \
317           msdev $(TLP).dsw /USEENV /MAKE \
318                 "apr_dbm_%d - Win32 $(LONG)" /NORECURSE $(CTARGET)
319 !ENDIF
320
321
322 !IF "$(INSTDIR)" == ""
323 INSTDIR=\Apache24
324 !ENDIF
325 !IF "$(DOMAINNAME)" == ""
326 DOMAINNAME=example.com
327 !ENDIF 
328 !IF "$(SERVERNAME)" == ""
329 SERVERNAME=www.$(DOMAINNAME)
330 !ENDIF
331 !IF "$(SERVERADMIN)" == ""
332 SERVERADMIN=admin@$(DOMAINNAME)
333 !ENDIF
334 !IF "$(PORT)" == ""
335 PORT=80
336 !ENDIF 
337 !IF "$(SSLPORT)" == ""
338 SSLPORT=443
339 !ENDIF 
340
341 !IF "$(LONG)" == ""
342 !MESSAGE
343 !MESSAGE INSTDIR     = $(INSTDIR)
344 !MESSAGE DOMAINNAME  = $(DOMAINNAME)
345 !MESSAGE SERVERNAME  = $(SERVERNAME)
346 !MESSAGE SERVERADMIN = $(SERVERADMIN)
347 !MESSAGE PORT        = $(PORT)
348 !IF EXIST("srclib\openssl")
349 !MESSAGE SSLPORT     = $(SSLPORT)
350 !ENDIF
351 !MESSAGE
352 !MESSAGE To change these options use 'nmake -f Makefile.win [option=value]'
353 !MESSAGE Example: nmake -f Makefile.win PORT=8080
354 !MESSAGE
355 !MESSAGE
356 !ENDIF
357
358 !IFNDEF MAKEOPT
359 # Only default the behavior if MAKEOPT= is omitted
360 !IFDEF _NMAKE_VER
361 # Microsoft NMake options
362 MAKEOPT=-nologo
363 !ELSEIF "$(MAKE)" == "make"
364 # Borland make options?  Not really supported (yet)
365 MAKEOPT=-s -N
366 !ENDIF
367 !ENDIF
368
369 _dummy:
370
371 _browse:
372         cd Browse
373           bscmake.exe -nologo -Iu -o Apache.bsc *.sbr
374         cd ..
375
376 _buildr: 
377         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build
378
379 _buildd: 
380         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build
381
382 installr: 
383         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install
384
385 installd: 
386         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build _install
387
388 clean:  _cleanr _cleand
389         -if exist Browse\. rd /s Browse < << > nul
390 y
391 <<
392
393 !IF $(USEMAK) == 1
394
395 _cleanr:
396         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
397
398 _cleand:  
399         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET=CLEAN _build
400
401 _build:
402         echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
403 !IF !EXIST("srclib\apr-util")
404         cd srclib\expat\lib
405          $(MAKE) $(MAKEOPT) -f expat.mak             CFG="expat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
406         cd ..\..\..
407 !ENDIF
408         cd srclib\apr
409          $(MAKE) $(MAKEOPT) -f apr.mak             CFG="apr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
410          $(MAKE) $(MAKEOPT) -f libapr.mak          CFG="libapr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
411         cd ..\..
412 !IF EXIST("srclib\apr-util")
413         cd srclib\apr-iconv
414          $(MAKE) $(MAKEOPT) -f apriconv.mak  CFG="apriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
415          $(MAKE) $(MAKEOPT) -f libapriconv.mak  CFG="libapriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
416 !IF "$(CTARGET)" == "CLEAN"
417         $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
418                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
419 !ELSE
420         cd ccs
421         $(MAKE) $(MAKEOPT) -f Makefile.win all \
422                 BUILD_MODE=$(LONG) BIND_MODE=shared
423         cd ..\ces
424         $(MAKE) $(MAKEOPT) -f Makefile.win all \
425                 BUILD_MODE=$(LONG) BIND_MODE=shared
426         cd ..
427 !ENDIF
428         cd ..\..
429         cd srclib\apr-util\$(EXPAT)
430          $(MAKE) $(MAKEOPT) -f xml.mak             CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET)
431         cd $(EXPBCK)
432          $(MAKE) $(MAKEOPT) $(SSLOPT) -f aprutil.mak         CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
433          $(MAKE) $(MAKEOPT) $(SSLOPT) -f libaprutil.mak      CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
434         cd ldap
435          $(MAKE) $(MAKEOPT) -f apr_ldap.mak        CFG="apr_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
436         cd ..
437 !ELSE
438         # DBD, DBM components live now in apr
439         cd srclib\apr
440 !ENDIF
441         cd dbd
442           for %d in (odbc $(DBD_LIST)) do \
443             $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak   CFG="apr_dbd_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
444         cd ..
445         cd dbm
446           for %d in ($(DBM_LIST) x) do if not %d == x \
447             $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak   CFG="apr_dbm_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
448         cd ..
449         cd ..\..
450         cd server
451          $(MAKE) $(MAKEOPT) -f gen_test_char.mak   CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET)
452         cd ..
453          $(MAKE) $(MAKEOPT) -f libhttpd.mak        CFG="libhttpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
454          $(MAKE) $(MAKEOPT) -f httpd.mak           CFG="httpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
455 # build ldap prior to authnz_ldap
456         cd modules\ldap
457          $(MAKE) $(MAKEOPT) -f mod_ldap.mak        CFG="mod_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
458         cd ..\..
459         cd modules\database
460          $(MAKE) $(MAKEOPT) -f mod_dbd.mak         CFG="mod_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
461         cd ..\..
462         cd modules\aaa
463          $(MAKE) $(MAKEOPT) -f mod_access_compat.mak CFG="mod_access_compat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
464          $(MAKE) $(MAKEOPT) -f mod_allowmethods.mak CFG="mod_allowmethods - Win32 $(LONG)" RECURSE=0 $(CTARGET)
465          $(MAKE) $(MAKEOPT) -f mod_auth_basic.mak  CFG="mod_auth_basic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
466          $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
467          $(MAKE) $(MAKEOPT) -f mod_auth_form.mak   CFG="mod_auth_form - Win32 $(LONG)" RECURSE=0 $(CTARGET)
468          $(MAKE) $(MAKEOPT) -f mod_authn_anon.mak  CFG="mod_authn_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
469          $(MAKE) $(MAKEOPT) -f mod_authn_core.mak  CFG="mod_authn_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
470          $(MAKE) $(MAKEOPT) -f mod_authn_dbd.mak   CFG="mod_authn_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
471          $(MAKE) $(MAKEOPT) -f mod_authn_dbm.mak   CFG="mod_authn_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
472          $(MAKE) $(MAKEOPT) -f mod_authn_file.mak  CFG="mod_authn_file - Win32 $(LONG)" RECURSE=0 $(CTARGET)
473          $(MAKE) $(MAKEOPT) -f mod_authn_socache.mak  CFG="mod_authn_socache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
474          $(MAKE) $(MAKEOPT) -f mod_authnz_fcgi.mak CFG="mod_authnz_fcgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
475          $(MAKE) $(MAKEOPT) -f mod_authnz_ldap.mak CFG="mod_authnz_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
476          $(MAKE) $(MAKEOPT) -f mod_authz_core.mak  CFG="mod_authz_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
477          $(MAKE) $(MAKEOPT) -f mod_authz_dbd.mak   CFG="mod_authz_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
478          $(MAKE) $(MAKEOPT) -f mod_authz_dbm.mak   CFG="mod_authz_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
479          $(MAKE) $(MAKEOPT) -f mod_authz_groupfile.mak CFG="mod_authz_groupfile - Win32 $(LONG)" RECURSE=0 $(CTARGET)
480          $(MAKE) $(MAKEOPT) -f mod_authz_host.mak  CFG="mod_authz_host - Win32 $(LONG)" RECURSE=0 $(CTARGET)
481          $(MAKE) $(MAKEOPT) -f mod_authz_owner.mak CFG="mod_authz_owner - Win32 $(LONG)" RECURSE=0 $(CTARGET)
482          $(MAKE) $(MAKEOPT) -f mod_authz_user.mak  CFG="mod_authz_user - Win32 $(LONG)" RECURSE=0 $(CTARGET)
483         cd ..\..
484         cd modules\arch\win32
485          $(MAKE) $(MAKEOPT) -f mod_isapi.mak       CFG="mod_isapi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
486         cd ..\..\..
487         cd modules\cache
488          $(MAKE) $(MAKEOPT) -f mod_cache.mak       CFG="mod_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
489          $(MAKE) $(MAKEOPT) -f mod_cache_disk.mak  CFG="mod_cache_disk - Win32 $(LONG)" RECURSE=0 $(CTARGET)
490          $(MAKE) $(MAKEOPT) -f mod_cache_socache.mak  CFG="mod_cache_socache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
491          $(MAKE) $(MAKEOPT) -f mod_file_cache.mak  CFG="mod_file_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
492          $(MAKE) $(MAKEOPT) -f mod_socache_dbm.mak CFG="mod_socache_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
493 #        $(MAKE) $(MAKEOPT) -f mod_socache_dc.mak  CFG="mod_socache_dc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
494          $(MAKE) $(MAKEOPT) -f mod_socache_memcache.mak CFG="mod_socache_memcache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
495          $(MAKE) $(MAKEOPT) -f mod_socache_shmcb.mak CFG="mod_socache_shmcb - Win32 $(LONG)" RECURSE=0 $(CTARGET)
496         cd ..\..
497         cd modules\core
498          $(MAKE) $(MAKEOPT) -f mod_macro.mak    CFG="mod_macro - Win32 $(LONG)" RECURSE=0 $(CTARGET)
499          $(MAKE) $(MAKEOPT) -f mod_watchdog.mak    CFG="mod_watchdog - Win32 $(LONG)" RECURSE=0 $(CTARGET)
500         cd ..\..
501         cd modules\cluster
502          $(MAKE) $(MAKEOPT) -f mod_heartbeat.mak   CFG="mod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
503          $(MAKE) $(MAKEOPT) -f mod_heartmonitor.mak CFG="mod_heartmonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
504         cd ..\..
505         cd modules\dav\main
506          $(MAKE) $(MAKEOPT) -f mod_dav.mak         CFG="mod_dav - Win32 $(LONG)" RECURSE=0 $(CTARGET)
507         cd ..\..\..
508         cd modules\dav\fs
509          $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak      CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
510         cd ..\..\..
511         cd modules\dav\lock
512          $(MAKE) $(MAKEOPT) -f mod_dav_lock.mak    CFG="mod_dav_lock - Win32 $(LONG)" RECURSE=0 $(CTARGET)
513         cd ..\..\..
514         cd modules\debugging
515 !IFDEF ALL
516          $(MAKE) $(MAKEOPT) -f mod_bucketeer.mak   CFG="mod_bucketeer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
517 !ENDIF
518          $(MAKE) $(MAKEOPT) -f mod_dumpio.mak      CFG="mod_dumpio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
519         cd ..\..
520         cd modules\echo
521 !IFDEF ALL
522          $(MAKE) $(MAKEOPT) -f mod_echo.mak        CFG="mod_echo - Win32 $(LONG)" RECURSE=0 $(CTARGET)
523 !ENDIF
524         cd ..\..
525 !IFDEF ALL
526         cd modules\examples
527          $(MAKE) $(MAKEOPT) -f mod_case_filter.mak    CFG="mod_case_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
528          $(MAKE) $(MAKEOPT) -f mod_case_filter_in.mak CFG="mod_case_filter_in - Win32 $(LONG)" RECURSE=0 $(CTARGET)
529          $(MAKE) $(MAKEOPT) -f mod_example_hooks.mak  CFG="mod_example_hooks - Win32 $(LONG)" RECURSE=0 $(CTARGET)
530          $(MAKE) $(MAKEOPT) -f mod_example_ipc.mak    CFG="mod_example_ipc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
531         cd ..\..
532 !ENDIF
533         cd modules\filters
534 !IF EXIST("srclib\brotli")
535          $(MAKE) $(MAKEOPT) -f mod_brotli.mak      CFG="mod_brotli - Win32 $(LONG)" RECURSE=0 $(CTARGET)
536 !ENDIF
537          $(MAKE) $(MAKEOPT) -f mod_buffer.mak      CFG="mod_buffer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
538          $(MAKE) $(MAKEOPT) -f mod_charset_lite.mak CFG="mod_charset_lite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
539          $(MAKE) $(MAKEOPT) -f mod_data.mak        CFG="mod_data - Win32 $(LONG)" RECURSE=0 $(CTARGET)
540 !IF EXIST("srclib\zlib")
541          $(MAKE) $(MAKEOPT) -f mod_deflate.mak     CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
542 !ENDIF
543          $(MAKE) $(MAKEOPT) -f mod_ext_filter.mak  CFG="mod_ext_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
544          $(MAKE) $(MAKEOPT) -f mod_filter.mak      CFG="mod_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
545          $(MAKE) $(MAKEOPT) -f mod_include.mak     CFG="mod_include - Win32 $(LONG)" RECURSE=0 $(CTARGET)
546 !IF EXIST("srclib\libxml2")
547          $(MAKE) $(MAKEOPT) -f mod_proxy_html.mak     CFG="mod_proxy_html - Win32 $(LONG)" RECURSE=0 $(CTARGET)
548          $(MAKE) $(MAKEOPT) -f mod_xml2enc.mak     CFG="mod_xml2enc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
549 !ENDIF
550          $(MAKE) $(MAKEOPT) -f mod_ratelimit.mak   CFG="mod_ratelimit - Win32 $(LONG)" RECURSE=0 $(CTARGET)
551          $(MAKE) $(MAKEOPT) -f mod_reflector.mak   CFG="mod_reflector - Win32 $(LONG)" RECURSE=0 $(CTARGET)
552          $(MAKE) $(MAKEOPT) -f mod_reqtimeout.mak  CFG="mod_reqtimeout - Win32 $(LONG)" RECURSE=0 $(CTARGET)
553          $(MAKE) $(MAKEOPT) -f mod_request.mak     CFG="mod_request - Win32 $(LONG)" RECURSE=0 $(CTARGET)
554          $(MAKE) $(MAKEOPT) -f mod_sed.mak         CFG="mod_sed - Win32 $(LONG)" RECURSE=0 $(CTARGET)
555          $(MAKE) $(MAKEOPT) -f mod_substitute.mak  CFG="mod_substitute - Win32 $(LONG)" RECURSE=0 $(CTARGET)
556         cd ..\..
557         cd modules\generators
558          $(MAKE) $(MAKEOPT) -f mod_asis.mak        CFG="mod_asis - Win32 $(LONG)" RECURSE=0 $(CTARGET)
559          $(MAKE) $(MAKEOPT) -f mod_autoindex.mak   CFG="mod_autoindex - Win32 $(LONG)" RECURSE=0 $(CTARGET)
560          $(MAKE) $(MAKEOPT) -f mod_cgi.mak         CFG="mod_cgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
561          $(MAKE) $(MAKEOPT) -f mod_info.mak        CFG="mod_info - Win32 $(LONG)" RECURSE=0 $(CTARGET)
562          $(MAKE) $(MAKEOPT) -f mod_status.mak      CFG="mod_status - Win32 $(LONG)" RECURSE=0 $(CTARGET)
563         cd ..\..
564         cd modules\http
565          $(MAKE) $(MAKEOPT) -f mod_mime.mak        CFG="mod_mime - Win32 $(LONG)" RECURSE=0 $(CTARGET)
566         cd ..\..
567         cd modules\loggers
568          $(MAKE) $(MAKEOPT) -f mod_log_config.mak  CFG="mod_log_config - Win32 $(LONG)" RECURSE=0 $(CTARGET)
569          $(MAKE) $(MAKEOPT) -f mod_log_debug.mak  CFG="mod_log_debug - Win32 $(LONG)" RECURSE=0 $(CTARGET)
570          $(MAKE) $(MAKEOPT) -f mod_log_forensic.mak CFG="mod_log_forensic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
571          $(MAKE) $(MAKEOPT) -f mod_logio.mak       CFG="mod_logio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
572         cd ..\..
573 !IF EXIST("srclib\lua")
574         cd modules\lua
575          $(MAKE) $(MAKEOPT) -f mod_lua.mak         CFG="mod_lua - Win32 $(LONG)" RECURSE=0 $(CTARGET)
576         cd ..\..
577 !ENDIF
578         cd modules\mappers
579          $(MAKE) $(MAKEOPT) -f mod_actions.mak     CFG="mod_actions - Win32 $(LONG)" RECURSE=0 $(CTARGET)
580          $(MAKE) $(MAKEOPT) -f mod_alias.mak       CFG="mod_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
581          $(MAKE) $(MAKEOPT) -f mod_dir.mak         CFG="mod_dir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
582          $(MAKE) $(MAKEOPT) -f mod_imagemap.mak    CFG="mod_imagemap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
583          $(MAKE) $(MAKEOPT) -f mod_negotiation.mak CFG="mod_negotiation - Win32 $(LONG)" RECURSE=0 $(CTARGET)
584          $(MAKE) $(MAKEOPT) -f mod_rewrite.mak     CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
585          $(MAKE) $(MAKEOPT) -f mod_speling.mak     CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
586          $(MAKE) $(MAKEOPT) -f mod_userdir.mak     CFG="mod_userdir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
587          $(MAKE) $(MAKEOPT) -f mod_vhost_alias.mak CFG="mod_vhost_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
588         cd ..\..
589         cd modules\metadata
590          $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak   CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
591          $(MAKE) $(MAKEOPT) -f mod_env.mak         CFG="mod_env - Win32 $(LONG)" RECURSE=0 $(CTARGET)
592          $(MAKE) $(MAKEOPT) -f mod_expires.mak     CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
593          $(MAKE) $(MAKEOPT) -f mod_headers.mak     CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
594          $(MAKE) $(MAKEOPT) -f mod_ident.mak       CFG="mod_ident - Win32 $(LONG)" RECURSE=0 $(CTARGET)
595          $(MAKE) $(MAKEOPT) -f mod_mime_magic.mak  CFG="mod_mime_magic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
596          $(MAKE) $(MAKEOPT) -f mod_remoteip.mak    CFG="mod_remoteip - Win32 $(LONG)" RECURSE=0 $(CTARGET)
597          $(MAKE) $(MAKEOPT) -f mod_setenvif.mak    CFG="mod_setenvif - Win32 $(LONG)" RECURSE=0 $(CTARGET)
598          $(MAKE) $(MAKEOPT) -f mod_unique_id.mak   CFG="mod_unique_id - Win32 $(LONG)" RECURSE=0 $(CTARGET)
599          $(MAKE) $(MAKEOPT) -f mod_usertrack.mak   CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
600          $(MAKE) $(MAKEOPT) -f mod_version.mak     CFG="mod_version - Win32 $(LONG)" RECURSE=0 $(CTARGET)
601         cd ..\..
602         cd modules\proxy
603          $(MAKE) $(MAKEOPT) -f mod_proxy.mak       CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
604          $(MAKE) $(MAKEOPT) -f mod_proxy_ajp.mak   CFG="mod_proxy_ajp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
605          $(MAKE) $(MAKEOPT) -f mod_proxy_balancer.mak  CFG="mod_proxy_balancer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
606          $(MAKE) $(MAKEOPT) -f mod_proxy_connect.mak CFG="mod_proxy_connect - Win32 $(LONG)" RECURSE=0 $(CTARGET)
607          $(MAKE) $(MAKEOPT) -f mod_proxy_express.mak CFG="mod_proxy_express - Win32 $(LONG)" RECURSE=0 $(CTARGET)
608          $(MAKE) $(MAKEOPT) -f mod_proxy_fcgi.mak  CFG="mod_proxy_fcgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
609          $(MAKE) $(MAKEOPT) -f mod_proxy_ftp.mak   CFG="mod_proxy_ftp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
610          $(MAKE) $(MAKEOPT) -f mod_proxy_hcheck.mak  CFG="mod_proxy_hcheck - Win32 $(LONG)" RECURSE=0 $(CTARGET)
611          $(MAKE) $(MAKEOPT) -f mod_proxy_http.mak  CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
612          $(MAKE) $(MAKEOPT) -f mod_proxy_scgi.mak  CFG="mod_proxy_scgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
613          $(MAKE) $(MAKEOPT) -f mod_proxy_wstunnel.mak  CFG="mod_proxy_wstunnel - Win32 $(LONG)" RECURSE=0 $(CTARGET)
614         cd ..\..
615         cd modules\proxy\balancers
616          $(MAKE) $(MAKEOPT) -f mod_lbmethod_bybusyness.mak CFG="mod_lbmethod_bybusyness - Win32 $(LONG)" RECURSE=0 $(CTARGET)
617          $(MAKE) $(MAKEOPT) -f mod_lbmethod_byrequests.mak CFG="mod_lbmethod_byrequests - Win32 $(LONG)" RECURSE=0 $(CTARGET)
618          $(MAKE) $(MAKEOPT) -f mod_lbmethod_bytraffic.mak  CFG="mod_lbmethod_bytraffic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
619          $(MAKE) $(MAKEOPT) -f mod_lbmethod_heartbeat.mak  CFG="mod_lbmethod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
620         cd ..\..\..
621 # mod_proxy_http2 must be built after mod_proxy and mod_http2
622 !IF EXIST("srclib\nghttp2")
623         cd modules\http2
624          $(MAKE) $(MAKEOPT) -f mod_http2.mak         CFG="mod_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
625          $(MAKE) $(MAKEOPT) -f mod_proxy_http2.mak   CFG="mod_proxy_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
626         cd ..\..
627 !ENDIF
628         cd modules\session
629          $(MAKE) $(MAKEOPT) -f mod_session.mak        CFG="mod_session - Win32 $(LONG)" RECURSE=0 $(CTARGET)
630          $(MAKE) $(MAKEOPT) -f mod_session_cookie.mak CFG="mod_session_cookie - Win32 $(LONG)" RECURSE=0 $(CTARGET)
631          $(MAKE) $(MAKEOPT) -f mod_session_dbd.mak    CFG="mod_session_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
632         cd ..\..
633         cd modules\slotmem
634          $(MAKE) $(MAKEOPT) -f mod_slotmem_plain.mak  CFG="mod_slotmem_plain - Win32 $(LONG)" RECURSE=0 $(CTARGET)
635          $(MAKE) $(MAKEOPT) -f mod_slotmem_shm.mak    CFG="mod_slotmem_shm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
636         cd ..\..
637 !IF EXIST("srclib\openssl")
638 #       cd modules\session
639 #        $(MAKE) $(MAKEOPT) -f mod_session_crypto.mak CFG="mod_session_crypto - Win32 $(LONG)" RECURSE=0 $(CTARGET)
640 #       cd ..\..
641         cd modules\ssl
642          $(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_ssl.mak         CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
643         cd ..\..
644         cd support
645          $(MAKE) $(MAKEOPT) $(SSLOPT) -f abs.mak             CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
646         cd ..
647 !ENDIF
648         cd support
649          $(MAKE) $(MAKEOPT) -f ab.mak              CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
650 #        $(MAKE) $(MAKEOPT) -f fcgistarter.mak     CFG="fcgistarter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
651          $(MAKE) $(MAKEOPT) -f htcacheclean.mak    CFG="htcacheclean - Win32 $(LONG)" RECURSE=0 $(CTARGET)
652          $(MAKE) $(MAKEOPT) -f htdbm.mak           CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
653          $(MAKE) $(MAKEOPT) -f htdigest.mak        CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
654          $(MAKE) $(MAKEOPT) -f htpasswd.mak        CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
655          $(MAKE) $(MAKEOPT) -f httxt2dbm.mak       CFG="httxt2dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
656          $(MAKE) $(MAKEOPT) -f logresolve.mak      CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
657          $(MAKE) $(MAKEOPT) -f rotatelogs.mak      CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
658         cd ..
659         cd support\win32
660          $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak   CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
661          $(MAKE) $(MAKEOPT) -f wintty.mak          CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
662         cd ..\..
663
664 !ELSEIF $(USESLN) == 1
665
666 _cleanr:  
667         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
668
669 _cleand:  
670         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/clean" _build
671
672 _build:
673         echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
674 !IFDEF ALL
675         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project BuildAll
676 !ELSE
677         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project BuildBin
678 !ENDIF
679 !IF EXIST("srclib\openssl")
680         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_ssl
681         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project abs
682 !ENDIF
683 !IF EXIST("srclib\zlib")
684         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_deflate
685 !ENDIF
686 !IF EXIST("srclib\lua")
687         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_lua
688 !ENDIF
689 !IF EXIST("srclib\libxml2")
690         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_proxy_html
691         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_xml2enc
692 !ENDIF
693
694 !ELSE
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         @msdev $(TLP).dsw /USEENV /MAKE \
706                 "BuildAll - Win32 $(LONG)" $(CTARGET)
707 !ELSE
708         @msdev $(TLP).dsw /USEENV /MAKE \
709                 "BuildBin - Win32 $(LONG)" $(CTARGET)
710 !ENDIF
711 !IF "$(CTARGET)" == "/CLEAN"
712 !IF EXIST("srclib\apr-iconv")
713         @cd srclib\apr-iconv
714         @$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
715                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
716         @cd ..\..
717 !ENDIF
718 !ENDIF
719 !IF EXIST("srclib\openssl")
720         @msdev $(TLP).dsw /USEENV /MAKE \
721                 "mod_ssl - Win32 $(LONG)" \
722                 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
723 !ENDIF
724 !IF EXIST("srclib\zlib")
725         @msdev $(TLP).dsw /USEENV /MAKE \
726                 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
727 !ENDIF
728 !IF EXIST("srclib\lua")
729         @msdev $(TLP).dsw /USEENV /MAKE \
730                 "mod_lua - Win32 $(LONG)" /NORECURSE $(CTARGET)
731 !ENDIF
732 !IF EXIST("srclib\libxml2")
733         @msdev $(TLP).dsw /USEENV /MAKE \
734                 "mod_proxy_html - Win32 $(LONG)" /NORECURSE $(CTARGET)
735         @msdev $(TLP).dsw /USEENV /MAKE \
736                 "mod_xml2enc - Win32 $(LONG)" /NORECURSE $(CTARGET)
737 !ENDIF
738
739 !ENDIF
740
741
742 _copybin:
743         copy $(LONG)\httpd.$(src_exe)                           "$(inst_exe)" <.y
744         copy $(LONG)\libhttpd.$(src_dll)                        "$(inst_dll)" <.y
745         copy srclib\apr\$(LONG)\libapr-1.$(src_dll)             "$(inst_dll)" <.y
746 !IF EXIST("srclib\apr-util")
747         copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll)  "$(inst_dll)" <.y
748         copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll)    "$(inst_dll)" <.y
749         copy srclib\apr-util\ldap\$(LONG)\apr_ldap-1.$(src_dll) "$(inst_dll)" <.y
750 !ENDIF
751         for %d in (odbc $(DBD_LIST)) do ( \
752           copy srclib\$(UTILDIR)\dbd\$(LONG)\apr_dbd_%d-1.$(src_dll) "$(inst_dll)" <.y \
753         )
754         for %d in ($(DBM_LIST) x) do if not %d == x ( \
755           copy srclib\$(UTILDIR)\dbm\$(LONG)\apr_dbm_%d-1.$(src_dll) "$(inst_dll)" <.y \
756         )
757 !IF "$(SHORT)" == "D"
758         copy srclib\pcre\pcred.$(src_dll)                       "$(inst_dll)" <.y
759 !ELSE
760         copy srclib\pcre\pcre.$(src_dll)                        "$(inst_dll)" <.y
761 !ENDIF  
762         copy modules\aaa\$(LONG)\mod_access_compat.$(src_so)    "$(inst_so)" <.y
763         copy modules\aaa\$(LONG)\mod_allowmethods.$(src_so)     "$(inst_so)" <.y
764         copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so)       "$(inst_so)" <.y
765         copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so)      "$(inst_so)" <.y
766         copy modules\aaa\$(LONG)\mod_auth_form.$(src_so)        "$(inst_so)" <.y
767         copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so)       "$(inst_so)" <.y
768         copy modules\aaa\$(LONG)\mod_authn_core.$(src_so)       "$(inst_so)" <.y
769         copy modules\aaa\$(LONG)\mod_authn_dbd.$(src_so)        "$(inst_so)" <.y
770         copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so)        "$(inst_so)" <.y
771         copy modules\aaa\$(LONG)\mod_authn_file.$(src_so)       "$(inst_so)" <.y
772         copy modules\aaa\$(LONG)\mod_authn_socache.$(src_so)    "$(inst_so)" <.y
773         copy modules\aaa\$(LONG)\mod_authnz_fcgi.$(src_so)      "$(inst_so)" <.y
774         copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so)      "$(inst_so)" <.y
775         copy modules\aaa\$(LONG)\mod_authz_core.$(src_so)       "$(inst_so)" <.y
776         copy modules\aaa\$(LONG)\mod_authz_dbd.$(src_so)        "$(inst_so)" <.y
777         copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so)        "$(inst_so)" <.y
778         copy modules\aaa\$(LONG)\mod_authz_core.$(src_so)       "$(inst_so)" <.y
779         copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so)  "$(inst_so)" <.y
780         copy modules\aaa\$(LONG)\mod_authz_host.$(src_so)       "$(inst_so)" <.y
781         copy modules\aaa\$(LONG)\mod_authz_owner.$(src_so)      "$(inst_so)" <.y
782         copy modules\aaa\$(LONG)\mod_authz_user.$(src_so)       "$(inst_so)" <.y
783         copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so)     "$(inst_so)" <.y
784         copy modules\cache\$(LONG)\mod_cache.$(src_so)          "$(inst_so)" <.y
785         copy modules\cache\$(LONG)\mod_cache_disk.$(src_so)     "$(inst_so)" <.y
786         copy modules\cache\$(LONG)\mod_cache_socache.$(src_so)  "$(inst_so)" <.y
787         copy modules\cache\$(LONG)\mod_file_cache.$(src_so)     "$(inst_so)" <.y
788         copy modules\cache\$(LONG)\mod_socache_dbm.$(src_so)    "$(inst_so)" <.y
789 #       copy modules\cache\$(LONG)\mod_socache_dc.$(src_so)     "$(inst_so)" <.y
790         copy modules\cache\$(LONG)\mod_socache_memcache.$(src_so) "$(inst_so)" <.y
791         copy modules\cache\$(LONG)\mod_socache_shmcb.$(src_so)  "$(inst_so)" <.y
792         copy modules\core\$(LONG)\mod_macro.$(src_so)   "$(inst_so)" <.y
793         copy modules\core\$(LONG)\mod_watchdog.$(src_so)        "$(inst_so)" <.y
794         copy modules\cluster\$(LONG)\mod_heartbeat.$(src_so)    "$(inst_so)" <.y
795         copy modules\cluster\$(LONG)\mod_heartmonitor.$(src_so) "$(inst_so)" <.y
796         copy modules\database\$(LONG)\mod_dbd.$(src_so)         "$(inst_so)" <.y
797         copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so)        "$(inst_so)" <.y
798         copy modules\dav\lock\$(LONG)\mod_dav_lock.$(src_so)    "$(inst_so)" <.y
799         copy modules\dav\main\$(LONG)\mod_dav.$(src_so)         "$(inst_so)" <.y
800 !IFDEF ALL
801         copy modules\debugging\$(LONG)\mod_bucketeer.$(src_so)  "$(inst_so)" <.y
802 !ENDIF
803         copy modules\debugging\$(LONG)\mod_dumpio.$(src_so)     "$(inst_so)" <.y
804 !IFDEF ALL
805         copy modules\echo\$(LONG)\mod_echo.$(src_so)            "$(inst_so)" <.y
806         copy modules\examples\$(LONG)\mod_case_filter.$(src_so)    "$(inst_so)" <.y
807         copy modules\examples\$(LONG)\mod_case_filter_in.$(src_so) "$(inst_so)" <.y
808         copy modules\examples\$(LONG)\mod_example_hooks.$(src_so)  "$(inst_so)" <.y
809         copy modules\examples\$(LONG)\mod_example_ipc.$(src_so)    "$(inst_so)" <.y
810 !ENDIF
811 !IF EXIST("srclib\brotli")
812         copy modules\filters\$(LONG)\mod_brotli.$(src_so)       "$(inst_so)" <.y
813 !ENDIF
814         copy modules\filters\$(LONG)\mod_buffer.$(src_so)       "$(inst_so)" <.y
815         copy modules\filters\$(LONG)\mod_charset_lite.$(src_so) "$(inst_so)" <.y
816         copy modules\filters\$(LONG)\mod_data.$(src_so) "$(inst_so)" <.y
817 !IF EXIST("srclib\zlib")
818         copy modules\filters\$(LONG)\mod_deflate.$(src_so)      "$(inst_so)" <.y
819 !IF EXIST("srclib\zlib\zlib1.$(src_dll)")
820         copy srclib\zlib\zlib1.$(src_dll)                       "$(inst_dll)" <.y
821 !ENDIF
822 !ENDIF
823         copy modules\filters\$(LONG)\mod_ext_filter.$(src_so)   "$(inst_so)" <.y
824         copy modules\filters\$(LONG)\mod_filter.$(src_so)       "$(inst_so)" <.y
825         copy modules\filters\$(LONG)\mod_include.$(src_so)      "$(inst_so)" <.y
826 !IF EXIST("srclib\libxml2")
827         copy modules\filters\$(LONG)\mod_proxy_html.$(src_so)   "$(inst_so)" <.y
828         copy modules\filters\$(LONG)\mod_xml2enc.$(src_so)      "$(inst_so)" <.y
829 !IF EXIST("srclib\libxml2\win32\bin.msvc\libxml2.$(src_dll)")
830         copy srclib\libxml2\win32\bin.msvc\libxml2.$(src_dll)                   "$(inst_dll)" <.y
831 !ENDIF
832 !ENDIF
833         copy modules\filters\$(LONG)\mod_ratelimit.$(src_so)    "$(inst_so)" <.y
834         copy modules\filters\$(LONG)\mod_reflector.$(src_so)    "$(inst_so)" <.y
835         copy modules\filters\$(LONG)\mod_reqtimeout.$(src_so)   "$(inst_so)" <.y
836         copy modules\filters\$(LONG)\mod_request.$(src_so)      "$(inst_so)" <.y
837         copy modules\filters\$(LONG)\mod_sed.$(src_so)          "$(inst_so)" <.y
838         copy modules\filters\$(LONG)\mod_substitute.$(src_so)   "$(inst_so)" <.y
839         copy modules\generators\$(LONG)\mod_asis.$(src_so)      "$(inst_so)" <.y
840         copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
841         copy modules\generators\$(LONG)\mod_cgi.$(src_so)       "$(inst_so)" <.y
842         copy modules\generators\$(LONG)\mod_info.$(src_so)      "$(inst_so)" <.y
843         copy modules\generators\$(LONG)\mod_status.$(src_so)    "$(inst_so)" <.y
844         copy modules\http\$(LONG)\mod_mime.$(src_so)            "$(inst_so)" <.y
845 !IF EXIST("srclib\nghttp2")
846         copy modules\http2\$(LONG)\mod_http2.$(src_so)          "$(inst_so)" <.y
847         copy modules\http2\$(LONG)\mod_proxy_http2.$(src_so)            "$(inst_so)" <.y
848 !IF "$(SHORT)" == "D"
849         copy srclib\nghttp2\lib\MSVC_obj\nghttp2d.$(src_dll)                    "$(inst_dll)" <.y
850 !ELSE
851         copy srclib\nghttp2\lib\MSVC_obj\nghttp2.$(src_dll)                     "$(inst_dll)" <.y
852 !ENDIF
853 !ENDIF
854         copy modules\ldap\$(LONG)\mod_ldap.$(src_so)            "$(inst_so)" <.y
855         copy modules\loggers\$(LONG)\mod_log_config.$(src_so)   "$(inst_so)" <.y
856         copy modules\loggers\$(LONG)\mod_log_debug.$(src_so)    "$(inst_so)" <.y
857         copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
858         copy modules\loggers\$(LONG)\mod_logio.$(src_so)        "$(inst_so)" <.y
859 !IF EXIST("srclib\lua")
860         copy modules\lua\$(LONG)\mod_lua.$(src_so)              "$(inst_so)" <.y
861 !IF EXIST("srclib\lua\src\lua51.$(src_dll)")
862         copy srclib\lua\src\lua51.$(src_dll)                    "$(inst_dll)" <.y
863 !ENDIF
864 !ENDIF
865         copy modules\mappers\$(LONG)\mod_actions.$(src_so)      "$(inst_so)" <.y
866         copy modules\mappers\$(LONG)\mod_alias.$(src_so)        "$(inst_so)" <.y
867         copy modules\mappers\$(LONG)\mod_dir.$(src_so)          "$(inst_so)" <.y
868         copy modules\mappers\$(LONG)\mod_imagemap.$(src_so)     "$(inst_so)" <.y
869         copy modules\mappers\$(LONG)\mod_negotiation.$(src_so)  "$(inst_so)" <.y
870         copy modules\mappers\$(LONG)\mod_rewrite.$(src_so)      "$(inst_so)" <.y
871         copy modules\mappers\$(LONG)\mod_speling.$(src_so)      "$(inst_so)" <.y
872         copy modules\mappers\$(LONG)\mod_userdir.$(src_so)      "$(inst_so)" <.y
873         copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so)  "$(inst_so)" <.y
874         copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so)   "$(inst_so)" <.y
875         copy modules\metadata\$(LONG)\mod_env.$(src_so)         "$(inst_so)" <.y
876         copy modules\metadata\$(LONG)\mod_expires.$(src_so)     "$(inst_so)" <.y
877         copy modules\metadata\$(LONG)\mod_headers.$(src_so)     "$(inst_so)" <.y
878         copy modules\metadata\$(LONG)\mod_ident.$(src_so)       "$(inst_so)" <.y
879         copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so)  "$(inst_so)" <.y
880         copy modules\metadata\$(LONG)\mod_remoteip.$(src_so)    "$(inst_so)" <.y
881         copy modules\metadata\$(LONG)\mod_setenvif.$(src_so)    "$(inst_so)" <.y
882         copy modules\metadata\$(LONG)\mod_unique_id.$(src_so)   "$(inst_so)" <.y
883         copy modules\metadata\$(LONG)\mod_usertrack.$(src_so)   "$(inst_so)" <.y
884         copy modules\metadata\$(LONG)\mod_version.$(src_so)     "$(inst_so)" <.y
885         copy modules\proxy\$(LONG)\mod_proxy.$(src_so)          "$(inst_so)" <.y
886         copy modules\proxy\$(LONG)\mod_proxy_ajp.$(src_so)      "$(inst_so)" <.y
887         copy modules\proxy\$(LONG)\mod_proxy_balancer.$(src_so) "$(inst_so)" <.y
888         copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so)  "$(inst_so)" <.y
889         copy modules\proxy\$(LONG)\mod_proxy_express.$(src_so)  "$(inst_so)" <.y
890         copy modules\proxy\$(LONG)\mod_proxy_fcgi.$(src_so)     "$(inst_so)" <.y
891         copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so)      "$(inst_so)" <.y
892         copy modules\proxy\$(LONG)\mod_proxy_hcheck.$(src_so)   "$(inst_so)" <.y
893         copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so)     "$(inst_so)" <.y
894         copy modules\proxy\$(LONG)\mod_proxy_scgi.$(src_so)     "$(inst_so)" <.y
895         copy modules\proxy\$(LONG)\mod_proxy_wstunnel.$(src_so)         "$(inst_so)" <.y
896         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bybusyness.$(src_so) "$(inst_so)" <.y
897         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_byrequests.$(src_so) "$(inst_so)" <.y
898         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bytraffic.$(src_so)  "$(inst_so)" <.y
899         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_heartbeat.$(src_so)  "$(inst_so)" <.y
900         copy modules\session\$(LONG)\mod_session.$(src_so)        "$(inst_so)" <.y
901         copy modules\session\$(LONG)\mod_session_cookie.$(src_so) "$(inst_so)" <.y
902         copy modules\session\$(LONG)\mod_session_dbd.$(src_so)    "$(inst_so)" <.y
903         copy modules\slotmem\$(LONG)\mod_slotmem_plain.$(src_so)    "$(inst_so)" <.y
904         copy modules\slotmem\$(LONG)\mod_slotmem_shm.$(src_so)    "$(inst_so)" <.y
905 !IF EXIST("srclib\openssl")
906 #       copy modules\session\$(LONG)\mod_session_crypto.$(src_so) "$(inst_so)" <.y
907         copy modules\ssl\$(LONG)\mod_ssl.$(src_so)              "$(inst_so)" <.y
908         -copy srclib\openssl\$(SSLBIN)\$(SSLCRP)*.$(src_dll)    "$(inst_dll)" <.y
909         -copy srclib\openssl\$(SSLBIN)\$(SSLLIB)*.$(src_dll)    "$(inst_dll)" <.y
910         -copy srclib\openssl\$(SSLAPP)\openssl.$(src_exe)       "$(inst_exe)" <.y
911         copy support\$(LONG)\abs.$(src_exe)                     "$(inst_exe)" <.y
912 !ENDIF
913         copy support\$(LONG)\ab.$(src_exe)                      "$(inst_exe)" <.y
914 #       copy support\$(LONG)\fcgistarter.$(src_exe)             "$(inst_exe)" <.y
915         copy support\$(LONG)\htcacheclean.$(src_exe)            "$(inst_exe)" <.y
916         copy support\$(LONG)\htdbm.$(src_exe)                   "$(inst_exe)" <.y
917         copy support\$(LONG)\htdigest.$(src_exe)                "$(inst_exe)" <.y
918         copy support\$(LONG)\htpasswd.$(src_exe)                "$(inst_exe)" <.y
919         copy support\$(LONG)\httxt2dbm.$(src_exe)               "$(inst_exe)" <.y
920         copy support\$(LONG)\logresolve.$(src_exe)              "$(inst_exe)" <.y
921         copy support\$(LONG)\rotatelogs.$(src_exe)              "$(inst_exe)" <.y
922         copy support\win32\$(LONG)\ApacheMonitor.$(src_exe)     "$(inst_exe)" <.y
923         copy support\win32\$(LONG)\wintty.$(src_exe)            "$(inst_exe)" <.y
924
925
926 # First we create the tree and populate the README so that 
927 # whatever happens, all licensing has already propagated.  
928 # Then repeatedly invoke the _copybin build to copy the
929 # real binaries, then pdb symbols, anf finally dbg syms.
930 # Then hit docs of various sorts, then includes and libs,
931 # and finally do the .conf magic.
932 #
933 _install:
934         echo Y >.y
935         echo A >.A
936         -mkdir "$(INSTDIR)"
937         -mkdir "$(INSTDIR)\bin"
938 !IF EXIST("srclib\apr-util")
939         -mkdir "$(INSTDIR)\bin\iconv"
940 !ENDIF
941         -mkdir "$(INSTDIR)\cgi-bin"
942         -mkdir "$(INSTDIR)\conf"
943         -mkdir "$(INSTDIR)\conf\extra"
944         -mkdir "$(INSTDIR)\conf\original"
945         -mkdir "$(INSTDIR)\conf\original\extra"
946         -mkdir "$(INSTDIR)\error"
947         -mkdir "$(INSTDIR)\htdocs"
948         -mkdir "$(INSTDIR)\manual"
949         -mkdir "$(INSTDIR)\icons"
950         -mkdir "$(INSTDIR)\include"
951         -mkdir "$(INSTDIR)\lib"
952         -mkdir "$(INSTDIR)\logs"
953         -mkdir "$(INSTDIR)\modules"
954         copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
955         copy CHANGES      "$(INSTDIR)\CHANGES.txt" <.y
956         copy INSTALL      "$(INSTDIR)\INSTALL.txt" <.y
957         copy LICENSE      "$(INSTDIR)\LICENSE.txt" <.y
958         copy NOTICE       "$(INSTDIR)\NOTICE.txt" <.y
959         copy README       "$(INSTDIR)\README.txt" <.y
960         type << >> "$(INSTDIR)\NOTICE.txt"
961
962 Regular expression support is provided by the PCRE library package,
963 which is open source software, written by Philip Hazel, and copyright
964 by the University of Cambridge, England. The original software is
965 available from
966   ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
967 <<
968         -awk -f <<script1.awk < "srclib\pcre\LICENCE" >> "$(INSTDIR)\LICENSE.txt"
969 BEGIN {
970     print "";
971     print "For the pcre.dll component:";
972     print "";
973     while ( getline > 0 ) {
974         if ( $$0 ~ /^End$$/ ) $$0 = "END OF PCRE LICENSE";
975         print $$0;
976    }
977 }
978 <<
979 !IF EXIST("srclib\openssl")
980         -copy srclib\openssl\apps\openssl.cnf "$(INSTDIR)\conf\openssl.cnf" <.y
981         type << >> "$(INSTDIR)\NOTICE.txt"
982
983 This binary distribution includes cryptographic software written by
984 Eric Young (eay@cryptsoft.com), software written by Tim Hudson 
985 (tjh@cryptsoft.com), and software developed by the OpenSSL Project 
986 for use in the OpenSSL Toolkit <http://www.openssl.org/>.
987 <<
988         -awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
989 BEGIN {
990     print "";
991     print "For the libeay32.dll, ssleay32.dll and openssl.exe components:";
992     print "";
993     while ( getline > 0 ) {
994         print $$0;
995    }
996 }
997 <<
998         copy << "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
999
1000  Apache HTTP Server 2.4 Limited OpenSSL Distribution
1001
1002  This binary distribution includes the minimal components of OpenSSL required
1003  to support mod_ssl for Apache HTTP Server version 2.4 (details are listed 
1004  in OPENSSL-README.txt.)  For the complete list of CHANGES to this and later 
1005  versions of OpenSSL, please refer to the definative source,
1006  <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
1007  full binary or source distribution package from <http://www.openssl.org/>.
1008
1009  These OpenSSL binaries were built for distribution from the U.S. without 
1010  support for the patented encryption methods IDEA, MDC-2 or RC5.
1011
1012 --------------------------------------------------------------------------------
1013
1014 <<
1015         -copy "$(INSTDIR)\OPENSSL-NEWS.txt" \
1016             + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt"
1017         copy << "$(INSTDIR)\OPENSSL-README.txt" <.y
1018
1019  Apache HTTP Server 2.4 Limited OpenSSL Distribution
1020
1021  This binary installation of OpenSSL is a limited distribution of the
1022  files derived from the OpenSSL project:
1023
1024    LICENSE.txt (includes openssl LICENSE)
1025    OPENSSL-NEWS.txt
1026    OPENSSL-README.txt
1027    conf\openssl.cnf
1028    bin\libeay32.dll
1029    bin\ssleay32.dll
1030    bin\openssl.exe
1031
1032  These are the minimal libraries and tools required to use mod_ssl as 
1033  distributed with Apache HTTP Server version 2.4.  No library link files, 
1034  headers or sources are distributed with this binary distribution.  Please 
1035  refer to the <http://www.openssl.org/> site for complete source or binary 
1036  distributions.
1037
1038  These OpenSSL binaries were built for distribution from the U.S. without 
1039  support for the patented encryption methods IDEA, MDC-2 or RC5.
1040
1041  The Apache HTTP Project only supports the binary distribution of these files
1042  and development of the mod_ssl module.  We cannot provide support assistance
1043  for using or configuring the OpenSSL package or these modules.  Please refer
1044  all installation and configuration questions to the appropriate forum,
1045  such as the user supported lists, <http://httpd.apache.org/userslist.html> 
1046  the Apache HTTP Server user's list or <http://www.openssl.org/support/> the
1047  OpenSSL support page.
1048
1049 --------------------------------------------------------------------------------
1050
1051 <<
1052         -copy "$(INSTDIR)\OPENSSL-README.txt" \
1053             + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt"
1054 !ENDIF
1055 !IF EXIST("srclib\zlib")
1056         type << >> "$(INSTDIR)\NOTICE.txt"
1057
1058 This binary distribution of mod_deflate.so includes zlib compression code
1059 <http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
1060 and Mark Adler (madler@alumni.caltech.edu) .
1061 <<
1062         -awk -f <<script.awk < "srclib\zlib\README" >> "$(INSTDIR)\LICENSE.txt"
1063 BEGIN {
1064     while ( getline > 0 ) {
1065         if ( $$0 ~ /Copyright notice:/ ) {
1066             print "";
1067             print "For the mod_deflate zlib compression component:";
1068             while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
1069                 print $$0;
1070             }
1071             exit 0;
1072         }
1073     }
1074     exit 1;
1075 }
1076 <<
1077 !ENDIF
1078 !IF EXIST("srclib\lua")
1079         type << >> "$(INSTDIR)\NOTICE.txt"
1080
1081 This binary distribution of mod_lua.so includes the Lua language, 
1082 developed at Lua.org, a laboratory of the Department of Computer Science 
1083 of PUC-Rio (the Pontifical Catholic University of Rio de Janeiro in Brazil).
1084 For complete information, visit Lua's web site at http://www.lua.org/
1085 <<
1086         -awk -f <<script.awk < "srclib\lua\COPYRIGHT" >> "$(INSTDIR)\LICENSE.txt"
1087 BEGIN {
1088     print "";
1089     print "For the mod_lua language component:";
1090     print "";
1091     while ( getline > 0 && $$0 !~ /end of COPYRIGHT/ ) {
1092         print $$0;
1093     }
1094     exit 0;
1095 }
1096 <<
1097 !ENDIF
1098 !IF EXIST("srclib\libxml2")
1099         type << >> "$(INSTDIR)\NOTICE.txt"
1100
1101 This binary distributions of mod_proxy_html.so and mod_xml2enc.so include the
1102 libxml2 C library written by Daniel Veillard (daniel veillard.com), Bjorn 
1103 Reese (breese users.sourceforge.net) and Gary Pennington (Gary.Pennington 
1104 uk.sun.com). For complete information, visit LibXML2's web site at 
1105 https://http://www.xmlsoft.org/
1106 <<
1107         -awk -f <<script.awk < "srclib\libxml2\Copyright" >> "$(INSTDIR)\LICENSE.txt"
1108 BEGIN {
1109     print "";
1110     print "For the mod_proxy_html and mod_xml2enc components:";
1111     print "";
1112             while ( getline > 0 ) {
1113         print $$0;
1114     }
1115     exit 0;
1116 }
1117 <<
1118 !ENDIF
1119 !IF EXIST("srclib\nghttp2")
1120         type << >> "$(INSTDIR)\NOTICE.txt"
1121
1122 This binary distribution of mod_http2.so includes nghttp2 C library written 
1123 by Tatsuhiro Tsujikawa. For complete information, visit nghttp2's web site 
1124 at https://nghttp2.org/
1125 <<
1126         -awk -f <<script.awk < "srclib\nghttp2\COPYING" >> "$(INSTDIR)\LICENSE.txt"
1127 BEGIN {
1128     print "";
1129     print "For the mod_http2 component:";
1130     print "";
1131             while ( getline > 0 ) {
1132         print $$0;
1133     }
1134     exit 0;
1135 }
1136 <<
1137 !ENDIF
1138 !IF EXIST("srclib\brotli")
1139         type << >> "$(INSTDIR)\NOTICE.txt"
1140
1141 This binary distribution of mod_brotli.so includes Brotli C library written 
1142 by the Brotli Authors. For complete information, visit Brotli's web site 
1143 at https://github.com/google/brotli
1144 <<
1145         -awk -f <<script.awk < "srclib\brotli\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
1146 BEGIN {
1147     print "";
1148     print "For the mod_brotli component:";
1149     print "";
1150             while ( getline > 0 ) {
1151         print $$0;
1152     }
1153     exit 0;
1154 }
1155 <<
1156 !ENDIF
1157         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
1158                 _copybin src_exe=exe src_dll=dll src_so=so             \
1159                 inst_exe="$(INSTDIR)\bin"                              \
1160                 inst_dll="$(INSTDIR)\bin"                              \
1161                 inst_so="$(INSTDIR)\modules"
1162         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
1163                 _copybin src_exe=pdb src_dll=pdb src_so=pdb            \
1164                 inst_exe="$(INSTDIR)\bin"                              \
1165                 inst_dll="$(INSTDIR)\bin"                              \
1166                 inst_so="$(INSTDIR)\modules"
1167 !IF EXIST("srclib\apr-util")
1168         cd srclib\apr-iconv
1169         $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
1170                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
1171                 INSTALL_DIR="$(INSTDIR)\bin\iconv"
1172         cd ..\..
1173 !ENDIF
1174         copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
1175         -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
1176     BEGIN { 
1177         if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
1178             gsub( /\\/, "/", perlroot );
1179             print "#!" perlroot;
1180         }
1181     }
1182     {
1183         if ( $$0 !~ /^#!/ ) {
1184             print $$0;
1185         }
1186     }
1187 <<
1188         xcopy docs\error        "$(INSTDIR)\error" /s /d < .a
1189         xcopy docs\docroot      "$(INSTDIR)\htdocs" /d < .a
1190         xcopy docs\icons        "$(INSTDIR)\icons" /s /d < .a
1191         xcopy docs\manual       "$(INSTDIR)\manual" /s /d < .a
1192         for %f in ( \
1193                 srclib\expat\lib\expat.h \
1194                 srclib\apr-util\xml\expat\lib\expat.h \
1195                 srclib\apr\include\*.h \
1196                 srclib\apr-util\include\*.h \
1197                 include\*.h \
1198                 os\win32\os.h \
1199                 modules\cache\mod_cache.h \
1200                 modules\cache\cache_common.h \
1201                 modules\core\mod_so.h \
1202                 modules\core\mod_watchdog.h \
1203                 modules\database\mod_dbd.h \
1204                 modules\dav\main\mod_dav.h \
1205                 modules\filters\mod_include.h \
1206                 modules\generators\mod_cgi.h \
1207                 modules\generators\mod_status.h \
1208                 modules\loggers\mod_log_config.h \
1209                 modules\mappers\mod_rewrite.h \
1210                 modules\proxy\mod_proxy.h \
1211                 modules\ssl\mod_ssl.h \
1212                 modules\ssl\mod_ssl_openssl.h \
1213           ) do \
1214             @copy %f "$(INSTDIR)\include" < .y > nul
1215         copy srclib\apr\Lib$(SHORT)\apr-1.lib           "$(INSTDIR)\lib" <.y
1216         copy srclib\apr\Lib$(SHORT)\apr-1.pdb           "$(INSTDIR)\lib" <.y
1217         copy srclib\apr\$(LONG)\libapr-1.lib            "$(INSTDIR)\lib" <.y
1218         copy srclib\apr\$(LONG)\libapr-1.exp            "$(INSTDIR)\lib" <.y
1219 !IF EXIST("srclib\apr-util")
1220         copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib  "$(INSTDIR)\lib" <.y
1221         copy srclib\apr-util\Lib$(SHORT)\aprutil-1.pdb  "$(INSTDIR)\lib" <.y
1222         copy srclib\apr-util\$(EXPAT)\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
1223         copy srclib\apr-util\$(EXPAT)\Lib$(SHORT)\xml.pdb "$(INSTDIR)\lib" <.y
1224         copy srclib\apr-util\$(LONG)\libaprutil-1.lib   "$(INSTDIR)\lib" <.y
1225         copy srclib\apr-util\$(LONG)\libaprutil-1.exp   "$(INSTDIR)\lib" <.y
1226         copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib "$(INSTDIR)\lib" <.y
1227         copy srclib\apr-iconv\$(LONG)\libapriconv-1.exp "$(INSTDIR)\lib" <.y
1228 !ELSE
1229         copy srclib\expat\win32\$(LONG)\libexpatMT.lib  "$(INSTDIR)\lib" <.y
1230         copy srclib\expat\win32\$(LONG)\libexpatMT.exp  "$(INSTDIR)\lib" <.y
1231         copy srclib\expat\win32\$(LONG)\libexpat.lib    "$(INSTDIR)\lib" <.y
1232         copy srclib\expat\win32\$(LONG)\libexpat.exp    "$(INSTDIR)\lib" <.y
1233         copy srclib\expat\win32\$(LONG)\libexpat.dll    "$(INSTDIR)\bin" <.y
1234 !ENDIF
1235         copy $(LONG)\libhttpd.exp                       "$(INSTDIR)\lib" <.y
1236         copy $(LONG)\libhttpd.lib                       "$(INSTDIR)\lib" <.y
1237         copy modules\dav\main\$(LONG)\mod_dav.exp       "$(INSTDIR)\lib" <.y
1238         copy modules\dav\main\$(LONG)\mod_dav.lib       "$(INSTDIR)\lib" <.y
1239         for %f in ( charset.conv magic mime.types ) do ( \
1240           copy docs\conf\%f "$(INSTDIR)\conf\original\%f" <.y )
1241         awk -f build\installwinconf.awk $(DOMAINNAME) $(SERVERNAME) \
1242             $(SERVERADMIN) $(PORT) $(SSLPORT) "$(INSTDIR) " docs/conf/ 
1243         copy "support\dbmmanage.in" "$(INSTDIR)\bin\dbmmanage.pl"
1244         -awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
1245     { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
1246           sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" ); 
1247       }
1248       if ( $$0 !~ /^#!@perlbin@/ )
1249           print $$0;
1250     }
1251 <<
1252         del .y
1253         del .a