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