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