]> granicus.if.org Git - apache/blob - Makefile.win
* Vote
[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_http.mak  CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
557          $(MAKE) $(MAKEOPT) -f mod_proxy_scgi.mak  CFG="mod_proxy_scgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
558          $(MAKE) $(MAKEOPT) -f mod_proxy_wstunnel.mak  CFG="mod_proxy_wstunnel - Win32 $(LONG)" RECURSE=0 $(CTARGET)
559         cd ..\..
560         cd modules\proxy\balancers
561          $(MAKE) $(MAKEOPT) -f mod_lbmethod_bybusyness.mak CFG="mod_lbmethod_bybusyness - Win32 $(LONG)" RECURSE=0 $(CTARGET)
562          $(MAKE) $(MAKEOPT) -f mod_lbmethod_byrequests.mak CFG="mod_lbmethod_byrequests - Win32 $(LONG)" RECURSE=0 $(CTARGET)
563          $(MAKE) $(MAKEOPT) -f mod_lbmethod_bytraffic.mak  CFG="mod_lbmethod_bytraffic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
564          $(MAKE) $(MAKEOPT) -f mod_lbmethod_heartbeat.mak  CFG="mod_lbmethod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
565         cd ..\..\..
566 # mod_proxy_http2 must be built after mod_proxy and mod_http2
567 !IF EXIST("srclib\nghttp2")
568         cd modules\http2
569          $(MAKE) $(MAKEOPT) -f mod_http2.mak         CFG="mod_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
570          $(MAKE) $(MAKEOPT) -f mod_proxy_http2.mak   CFG="mod_proxy_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
571         cd ..\..
572 !ENDIF
573         cd modules\session
574          $(MAKE) $(MAKEOPT) -f mod_session.mak        CFG="mod_session - Win32 $(LONG)" RECURSE=0 $(CTARGET)
575          $(MAKE) $(MAKEOPT) -f mod_session_cookie.mak CFG="mod_session_cookie - Win32 $(LONG)" RECURSE=0 $(CTARGET)
576          $(MAKE) $(MAKEOPT) -f mod_session_dbd.mak    CFG="mod_session_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
577         cd ..\..
578         cd modules\slotmem
579          $(MAKE) $(MAKEOPT) -f mod_slotmem_plain.mak  CFG="mod_slotmem_plain - Win32 $(LONG)" RECURSE=0 $(CTARGET)
580          $(MAKE) $(MAKEOPT) -f mod_slotmem_shm.mak    CFG="mod_slotmem_shm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
581         cd ..\..
582 !IF EXIST("srclib\openssl")
583 #       cd modules\session
584 #        $(MAKE) $(MAKEOPT) -f mod_session_crypto.mak CFG="mod_session_crypto - Win32 $(LONG)" RECURSE=0 $(CTARGET)
585 #       cd ..\..
586         cd modules\ssl
587          $(MAKE) $(MAKEOPT) -f mod_ssl.mak         CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
588         cd ..\..
589         cd support
590          $(MAKE) $(MAKEOPT) -f abs.mak             CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
591         cd ..
592 !ENDIF
593         cd support
594          $(MAKE) $(MAKEOPT) -f ab.mak              CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
595 #        $(MAKE) $(MAKEOPT) -f fcgistarter.mak     CFG="fcgistarter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
596          $(MAKE) $(MAKEOPT) -f htcacheclean.mak    CFG="htcacheclean - Win32 $(LONG)" RECURSE=0 $(CTARGET)
597          $(MAKE) $(MAKEOPT) -f htdbm.mak           CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
598          $(MAKE) $(MAKEOPT) -f htdigest.mak        CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
599          $(MAKE) $(MAKEOPT) -f htpasswd.mak        CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
600          $(MAKE) $(MAKEOPT) -f httxt2dbm.mak       CFG="httxt2dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
601          $(MAKE) $(MAKEOPT) -f logresolve.mak      CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
602          $(MAKE) $(MAKEOPT) -f rotatelogs.mak      CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
603         cd ..
604         cd support\win32
605          $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak   CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
606          $(MAKE) $(MAKEOPT) -f wintty.mak          CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
607         cd ..\..
608
609 !ELSEIF $(USESLN) == 1
610
611 _cleanr:  
612         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
613
614 _cleand:  
615         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/clean" _build
616
617 _build:
618         echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
619 !IFDEF ALL
620         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project BuildAll
621 !ELSE
622         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project BuildBin
623 !ENDIF
624 !IF EXIST("srclib\openssl")
625         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_ssl
626         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project abs
627 !ENDIF
628 !IF EXIST("srclib\zlib")
629         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_deflate
630 !ENDIF
631 !IF EXIST("srclib\lua")
632         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_lua
633 !ENDIF
634 !IF EXIST("srclib\libxml2")
635         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_proxy_html
636         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_xml2enc
637 !ENDIF
638
639 !ELSE
640
641 _cleanr:  
642         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
643
644 _cleand:  
645         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/CLEAN" _build
646
647 _build:
648         @echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
649 !IFDEF ALL
650         @msdev $(TLP).dsw /USEENV /MAKE \
651                 "BuildAll - Win32 $(LONG)" $(CTARGET)
652 !ELSE
653         @msdev $(TLP).dsw /USEENV /MAKE \
654                 "BuildBin - Win32 $(LONG)" $(CTARGET)
655 !ENDIF
656 !IF "$(CTARGET)" == "/CLEAN"
657 !IF EXIST("srclib\apr-iconv")
658         @cd srclib\apr-iconv
659         @$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
660                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
661         @cd ..\..
662 !ENDIF
663 !ENDIF
664 !IF EXIST("srclib\openssl")
665         @msdev $(TLP).dsw /USEENV /MAKE \
666                 "mod_ssl - Win32 $(LONG)" \
667                 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
668 !ENDIF
669 !IF EXIST("srclib\zlib")
670         @msdev $(TLP).dsw /USEENV /MAKE \
671                 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
672 !ENDIF
673 !IF EXIST("srclib\lua")
674         @msdev $(TLP).dsw /USEENV /MAKE \
675                 "mod_lua - Win32 $(LONG)" /NORECURSE $(CTARGET)
676 !ENDIF
677 !IF EXIST("srclib\libxml2")
678         @msdev $(TLP).dsw /USEENV /MAKE \
679                 "mod_proxy_html - Win32 $(LONG)" /NORECURSE $(CTARGET)
680         @msdev $(TLP).dsw /USEENV /MAKE \
681                 "mod_xml2enc - Win32 $(LONG)" /NORECURSE $(CTARGET)
682 !ENDIF
683
684 !ENDIF
685
686
687 _copybin:
688         copy $(LONG)\httpd.$(src_exe)                           "$(inst_exe)" <.y
689         copy $(LONG)\libhttpd.$(src_dll)                        "$(inst_dll)" <.y
690         copy srclib\apr\$(LONG)\libapr-1.$(src_dll)             "$(inst_dll)" <.y
691 !IF EXIST("srclib\apr-util")
692         copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll)  "$(inst_dll)" <.y
693         copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll)    "$(inst_dll)" <.y
694         copy srclib\apr-util\ldap\$(LONG)\apr_ldap-1.$(src_dll) "$(inst_dll)" <.y
695 !ENDIF
696         for %d in (odbc $(DBD_LIST)) do ( \
697           copy srclib\$(UTILDIR)\dbd\$(LONG)\apr_dbd_%d-1.$(src_dll) "$(inst_dll)" <.y \
698         )
699         for %d in ($(DBM_LIST) x) do if not %d == x ( \
700           copy srclib\$(UTILDIR)\dbm\$(LONG)\apr_dbm_%d-1.$(src_dll) "$(inst_dll)" <.y \
701         )
702 !IF "$(SHORT)" == "D"
703         copy srclib\pcre\pcred.$(src_dll)                       "$(inst_dll)" <.y
704 !ELSE
705         copy srclib\pcre\pcre.$(src_dll)                        "$(inst_dll)" <.y
706 !ENDIF  
707         copy modules\aaa\$(LONG)\mod_access_compat.$(src_so)    "$(inst_so)" <.y
708         copy modules\aaa\$(LONG)\mod_allowmethods.$(src_so)     "$(inst_so)" <.y
709         copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so)       "$(inst_so)" <.y
710         copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so)      "$(inst_so)" <.y
711         copy modules\aaa\$(LONG)\mod_auth_form.$(src_so)        "$(inst_so)" <.y
712         copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so)       "$(inst_so)" <.y
713         copy modules\aaa\$(LONG)\mod_authn_core.$(src_so)       "$(inst_so)" <.y
714         copy modules\aaa\$(LONG)\mod_authn_dbd.$(src_so)        "$(inst_so)" <.y
715         copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so)        "$(inst_so)" <.y
716         copy modules\aaa\$(LONG)\mod_authn_file.$(src_so)       "$(inst_so)" <.y
717         copy modules\aaa\$(LONG)\mod_authn_socache.$(src_so)    "$(inst_so)" <.y
718         copy modules\aaa\$(LONG)\mod_authnz_fcgi.$(src_so)      "$(inst_so)" <.y
719         copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so)      "$(inst_so)" <.y
720         copy modules\aaa\$(LONG)\mod_authz_core.$(src_so)       "$(inst_so)" <.y
721         copy modules\aaa\$(LONG)\mod_authz_dbd.$(src_so)        "$(inst_so)" <.y
722         copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so)        "$(inst_so)" <.y
723         copy modules\aaa\$(LONG)\mod_authz_core.$(src_so)       "$(inst_so)" <.y
724         copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so)  "$(inst_so)" <.y
725         copy modules\aaa\$(LONG)\mod_authz_host.$(src_so)       "$(inst_so)" <.y
726         copy modules\aaa\$(LONG)\mod_authz_owner.$(src_so)      "$(inst_so)" <.y
727         copy modules\aaa\$(LONG)\mod_authz_user.$(src_so)       "$(inst_so)" <.y
728         copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so)     "$(inst_so)" <.y
729         copy modules\cache\$(LONG)\mod_cache.$(src_so)          "$(inst_so)" <.y
730         copy modules\cache\$(LONG)\mod_cache_disk.$(src_so)     "$(inst_so)" <.y
731         copy modules\cache\$(LONG)\mod_cache_socache.$(src_so)  "$(inst_so)" <.y
732         copy modules\cache\$(LONG)\mod_file_cache.$(src_so)     "$(inst_so)" <.y
733         copy modules\cache\$(LONG)\mod_socache_dbm.$(src_so)    "$(inst_so)" <.y
734 #       copy modules\cache\$(LONG)\mod_socache_dc.$(src_so)     "$(inst_so)" <.y
735         copy modules\cache\$(LONG)\mod_socache_memcache.$(src_so) "$(inst_so)" <.y
736         copy modules\cache\$(LONG)\mod_socache_shmcb.$(src_so)  "$(inst_so)" <.y
737         copy modules\core\$(LONG)\mod_macro.$(src_so)   "$(inst_so)" <.y
738         copy modules\core\$(LONG)\mod_watchdog.$(src_so)        "$(inst_so)" <.y
739         copy modules\cluster\$(LONG)\mod_heartbeat.$(src_so)    "$(inst_so)" <.y
740         copy modules\cluster\$(LONG)\mod_heartmonitor.$(src_so) "$(inst_so)" <.y
741         copy modules\database\$(LONG)\mod_dbd.$(src_so)         "$(inst_so)" <.y
742         copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so)        "$(inst_so)" <.y
743         copy modules\dav\lock\$(LONG)\mod_dav_lock.$(src_so)    "$(inst_so)" <.y
744         copy modules\dav\main\$(LONG)\mod_dav.$(src_so)         "$(inst_so)" <.y
745 !IFDEF ALL
746         copy modules\debugging\$(LONG)\mod_bucketeer.$(src_so)  "$(inst_so)" <.y
747 !ENDIF
748         copy modules\debugging\$(LONG)\mod_dumpio.$(src_so)     "$(inst_so)" <.y
749 !IFDEF ALL
750         copy modules\echo\$(LONG)\mod_echo.$(src_so)            "$(inst_so)" <.y
751         copy modules\examples\$(LONG)\mod_case_filter.$(src_so)    "$(inst_so)" <.y
752         copy modules\examples\$(LONG)\mod_case_filter_in.$(src_so) "$(inst_so)" <.y
753         copy modules\examples\$(LONG)\mod_example_hooks.$(src_so)  "$(inst_so)" <.y
754         copy modules\examples\$(LONG)\mod_example_ipc.$(src_so)    "$(inst_so)" <.y
755 !ENDIF
756         copy modules\filters\$(LONG)\mod_buffer.$(src_so)       "$(inst_so)" <.y
757         copy modules\filters\$(LONG)\mod_charset_lite.$(src_so) "$(inst_so)" <.y
758         copy modules\filters\$(LONG)\mod_data.$(src_so) "$(inst_so)" <.y
759 !IF EXIST("srclib\zlib")
760         copy modules\filters\$(LONG)\mod_deflate.$(src_so)      "$(inst_so)" <.y
761 !IF EXIST("srclib\zlib\zlib1.$(src_dll)")
762         copy srclib\zlib\zlib1.$(src_dll)                       "$(inst_dll)" <.y
763 !ENDIF
764 !ENDIF
765         copy modules\filters\$(LONG)\mod_ext_filter.$(src_so)   "$(inst_so)" <.y
766         copy modules\filters\$(LONG)\mod_filter.$(src_so)       "$(inst_so)" <.y
767         copy modules\filters\$(LONG)\mod_include.$(src_so)      "$(inst_so)" <.y
768 !IF EXIST("srclib\libxml2")
769         copy modules\filters\$(LONG)\mod_proxy_html.$(src_so)   "$(inst_so)" <.y
770         copy modules\filters\$(LONG)\mod_xml2enc.$(src_so)      "$(inst_so)" <.y
771 !IF EXIST("srclib\libxml2\win32\bin.msvc\libxml2.$(src_dll)")
772         copy srclib\libxml2\win32\bin.msvc\libxml2.$(src_dll)                   "$(inst_dll)" <.y
773 !ENDIF
774 !ENDIF
775         copy modules\filters\$(LONG)\mod_ratelimit.$(src_so)    "$(inst_so)" <.y
776         copy modules\filters\$(LONG)\mod_reflector.$(src_so)    "$(inst_so)" <.y
777         copy modules\filters\$(LONG)\mod_reqtimeout.$(src_so)   "$(inst_so)" <.y
778         copy modules\filters\$(LONG)\mod_request.$(src_so)      "$(inst_so)" <.y
779         copy modules\filters\$(LONG)\mod_sed.$(src_so)          "$(inst_so)" <.y
780         copy modules\filters\$(LONG)\mod_substitute.$(src_so)   "$(inst_so)" <.y
781         copy modules\generators\$(LONG)\mod_asis.$(src_so)      "$(inst_so)" <.y
782         copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
783         copy modules\generators\$(LONG)\mod_cgi.$(src_so)       "$(inst_so)" <.y
784         copy modules\generators\$(LONG)\mod_info.$(src_so)      "$(inst_so)" <.y
785         copy modules\generators\$(LONG)\mod_status.$(src_so)    "$(inst_so)" <.y
786         copy modules\http\$(LONG)\mod_mime.$(src_so)            "$(inst_so)" <.y
787 !IF EXIST("srclib\nghttp2")
788         copy modules\http2\$(LONG)\mod_http2.$(src_so)          "$(inst_so)" <.y
789         copy modules\http2\$(LONG)\mod_proxy_http2.$(src_so)            "$(inst_so)" <.y
790 !IF "$(SHORT)" == "D"
791         copy srclib\nghttp2\lib\MSVC_obj\nghttp2d.$(src_dll)                    "$(inst_dll)" <.y
792 !ELSE
793         copy srclib\nghttp2\lib\MSVC_obj\nghttp2.$(src_dll)                     "$(inst_dll)" <.y
794 !ENDIF
795 !ENDIF
796         copy modules\ldap\$(LONG)\mod_ldap.$(src_so)            "$(inst_so)" <.y
797         copy modules\loggers\$(LONG)\mod_log_config.$(src_so)   "$(inst_so)" <.y
798         copy modules\loggers\$(LONG)\mod_log_debug.$(src_so)    "$(inst_so)" <.y
799         copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
800         copy modules\loggers\$(LONG)\mod_logio.$(src_so)        "$(inst_so)" <.y
801 !IF EXIST("srclib\lua")
802         copy modules\lua\$(LONG)\mod_lua.$(src_so)              "$(inst_so)" <.y
803 !IF EXIST("srclib\lua\src\lua51.$(src_dll)")
804         copy srclib\lua\src\lua51.$(src_dll)                    "$(inst_dll)" <.y
805 !ENDIF
806 !ENDIF
807         copy modules\mappers\$(LONG)\mod_actions.$(src_so)      "$(inst_so)" <.y
808         copy modules\mappers\$(LONG)\mod_alias.$(src_so)        "$(inst_so)" <.y
809         copy modules\mappers\$(LONG)\mod_dir.$(src_so)          "$(inst_so)" <.y
810         copy modules\mappers\$(LONG)\mod_imagemap.$(src_so)     "$(inst_so)" <.y
811         copy modules\mappers\$(LONG)\mod_negotiation.$(src_so)  "$(inst_so)" <.y
812         copy modules\mappers\$(LONG)\mod_rewrite.$(src_so)      "$(inst_so)" <.y
813         copy modules\mappers\$(LONG)\mod_speling.$(src_so)      "$(inst_so)" <.y
814         copy modules\mappers\$(LONG)\mod_userdir.$(src_so)      "$(inst_so)" <.y
815         copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so)  "$(inst_so)" <.y
816         copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so)   "$(inst_so)" <.y
817         copy modules\metadata\$(LONG)\mod_env.$(src_so)         "$(inst_so)" <.y
818         copy modules\metadata\$(LONG)\mod_expires.$(src_so)     "$(inst_so)" <.y
819         copy modules\metadata\$(LONG)\mod_headers.$(src_so)     "$(inst_so)" <.y
820         copy modules\metadata\$(LONG)\mod_ident.$(src_so)       "$(inst_so)" <.y
821         copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so)  "$(inst_so)" <.y
822         copy modules\metadata\$(LONG)\mod_remoteip.$(src_so)    "$(inst_so)" <.y
823         copy modules\metadata\$(LONG)\mod_setenvif.$(src_so)    "$(inst_so)" <.y
824         copy modules\metadata\$(LONG)\mod_unique_id.$(src_so)   "$(inst_so)" <.y
825         copy modules\metadata\$(LONG)\mod_usertrack.$(src_so)   "$(inst_so)" <.y
826         copy modules\metadata\$(LONG)\mod_version.$(src_so)     "$(inst_so)" <.y
827         copy modules\proxy\$(LONG)\mod_proxy.$(src_so)          "$(inst_so)" <.y
828         copy modules\proxy\$(LONG)\mod_proxy_ajp.$(src_so)      "$(inst_so)" <.y
829         copy modules\proxy\$(LONG)\mod_proxy_balancer.$(src_so) "$(inst_so)" <.y
830         copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so)  "$(inst_so)" <.y
831         copy modules\proxy\$(LONG)\mod_proxy_express.$(src_so)  "$(inst_so)" <.y
832         copy modules\proxy\$(LONG)\mod_proxy_fcgi.$(src_so)     "$(inst_so)" <.y
833         copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so)      "$(inst_so)" <.y
834         copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so)     "$(inst_so)" <.y
835         copy modules\proxy\$(LONG)\mod_proxy_scgi.$(src_so)     "$(inst_so)" <.y
836         copy modules\proxy\$(LONG)\mod_proxy_wstunnel.$(src_so)         "$(inst_so)" <.y
837         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bybusyness.$(src_so) "$(inst_so)" <.y
838         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_byrequests.$(src_so) "$(inst_so)" <.y
839         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bytraffic.$(src_so)  "$(inst_so)" <.y
840         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_heartbeat.$(src_so)  "$(inst_so)" <.y
841         copy modules\session\$(LONG)\mod_session.$(src_so)        "$(inst_so)" <.y
842         copy modules\session\$(LONG)\mod_session_cookie.$(src_so) "$(inst_so)" <.y
843         copy modules\session\$(LONG)\mod_session_dbd.$(src_so)    "$(inst_so)" <.y
844         copy modules\slotmem\$(LONG)\mod_slotmem_plain.$(src_so)    "$(inst_so)" <.y
845         copy modules\slotmem\$(LONG)\mod_slotmem_shm.$(src_so)    "$(inst_so)" <.y
846 !IF EXIST("srclib\openssl")
847 #       copy modules\session\$(LONG)\mod_session_crypto.$(src_so) "$(inst_so)" <.y
848         copy modules\ssl\$(LONG)\mod_ssl.$(src_so)              "$(inst_so)" <.y
849         -copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll)      "$(inst_dll)" <.y
850         -copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll)      "$(inst_dll)" <.y
851         -copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe)       "$(inst_exe)" <.y
852         copy support\$(LONG)\abs.$(src_exe)                     "$(inst_exe)" <.y
853 !ENDIF
854         copy support\$(LONG)\ab.$(src_exe)                      "$(inst_exe)" <.y
855 #       copy support\$(LONG)\fcgistarter.$(src_exe)             "$(inst_exe)" <.y
856         copy support\$(LONG)\htcacheclean.$(src_exe)            "$(inst_exe)" <.y
857         copy support\$(LONG)\htdbm.$(src_exe)                   "$(inst_exe)" <.y
858         copy support\$(LONG)\htdigest.$(src_exe)                "$(inst_exe)" <.y
859         copy support\$(LONG)\htpasswd.$(src_exe)                "$(inst_exe)" <.y
860         copy support\$(LONG)\httxt2dbm.$(src_exe)               "$(inst_exe)" <.y
861         copy support\$(LONG)\logresolve.$(src_exe)              "$(inst_exe)" <.y
862         copy support\$(LONG)\rotatelogs.$(src_exe)              "$(inst_exe)" <.y
863         copy support\win32\$(LONG)\ApacheMonitor.$(src_exe)     "$(inst_exe)" <.y
864         copy support\win32\$(LONG)\wintty.$(src_exe)            "$(inst_exe)" <.y
865
866
867 # First we create the tree and populate the README so that 
868 # whatever happens, all licensing has already propagated.  
869 # Then repeatedly invoke the _copybin build to copy the
870 # real binaries, then pdb symbols, anf finally dbg syms.
871 # Then hit docs of various sorts, then includes and libs,
872 # and finally do the .conf magic.
873 #
874 _install:
875         echo Y >.y
876         echo A >.A
877         -mkdir "$(INSTDIR)"
878         -mkdir "$(INSTDIR)\bin"
879 !IF EXIST("srclib\apr-util")
880         -mkdir "$(INSTDIR)\bin\iconv"
881 !ENDIF
882         -mkdir "$(INSTDIR)\cgi-bin"
883         -mkdir "$(INSTDIR)\conf"
884         -mkdir "$(INSTDIR)\conf\extra"
885         -mkdir "$(INSTDIR)\conf\original"
886         -mkdir "$(INSTDIR)\conf\original\extra"
887         -mkdir "$(INSTDIR)\error"
888         -mkdir "$(INSTDIR)\htdocs"
889         -mkdir "$(INSTDIR)\manual"
890         -mkdir "$(INSTDIR)\icons"
891         -mkdir "$(INSTDIR)\include"
892         -mkdir "$(INSTDIR)\lib"
893         -mkdir "$(INSTDIR)\logs"
894         -mkdir "$(INSTDIR)\modules"
895         copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
896         copy CHANGES      "$(INSTDIR)\CHANGES.txt" <.y
897         copy INSTALL      "$(INSTDIR)\INSTALL.txt" <.y
898         copy LICENSE      "$(INSTDIR)\LICENSE.txt" <.y
899         copy NOTICE       "$(INSTDIR)\NOTICE.txt" <.y
900         copy README       "$(INSTDIR)\README.txt" <.y
901         type << >> "$(INSTDIR)\NOTICE.txt"
902
903 Regular expression support is provided by the PCRE library package,
904 which is open source software, written by Philip Hazel, and copyright
905 by the University of Cambridge, England. The original software is
906 available from
907   ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
908 <<
909         -awk -f <<script1.awk < "srclib\pcre\LICENCE" >> "$(INSTDIR)\LICENSE.txt"
910 BEGIN {
911     print "";
912     print "For the pcre.dll component:";
913     print "";
914     while ( getline > 0 ) {
915         if ( $$0 ~ /^End$$/ ) $$0 = "END OF PCRE LICENSE";
916         print $$0;
917    }
918 }
919 <<
920 !IF EXIST("srclib\openssl")
921         -copy srclib\openssl\apps\openssl.cnf "$(INSTDIR)\conf\openssl.cnf" <.y
922         type << >> "$(INSTDIR)\NOTICE.txt"
923
924 This binary distribution includes cryptographic software written by
925 Eric Young (eay@cryptsoft.com), software written by Tim Hudson 
926 (tjh@cryptsoft.com), and software developed by the OpenSSL Project 
927 for use in the OpenSSL Toolkit <http://www.openssl.org/>.
928 <<
929         -awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
930 BEGIN {
931     print "";
932     print "For the libeay32.dll, ssleay32.dll and openssl.exe components:";
933     print "";
934     while ( getline > 0 ) {
935         print $$0;
936    }
937 }
938 <<
939         copy << "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
940
941  Apache HTTP Server 2.4 Limited OpenSSL Distribution
942
943  This binary distribution includes the minimal components of OpenSSL required
944  to support mod_ssl for Apache HTTP Server version 2.4 (details are listed 
945  in OPENSSL-README.txt.)  For the complete list of CHANGES to this and later 
946  versions of OpenSSL, please refer to the definative source,
947  <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
948  full binary or source distribution package from <http://www.openssl.org/>.
949
950  These OpenSSL binaries were built for distribution from the U.S. without 
951  support for the patented encryption methods IDEA, MDC-2 or RC5.
952
953 --------------------------------------------------------------------------------
954
955 <<
956         -copy "$(INSTDIR)\OPENSSL-NEWS.txt" \
957             + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt"
958         copy << "$(INSTDIR)\OPENSSL-README.txt" <.y
959
960  Apache HTTP Server 2.4 Limited OpenSSL Distribution
961
962  This binary installation of OpenSSL is a limited distribution of the
963  files derived from the OpenSSL project:
964
965    LICENSE.txt (includes openssl LICENSE)
966    OPENSSL-NEWS.txt
967    OPENSSL-README.txt
968    conf\openssl.cnf
969    bin\libeay32.dll
970    bin\ssleay32.dll
971    bin\openssl.exe
972
973  These are the minimal libraries and tools required to use mod_ssl as 
974  distributed with Apache HTTP Server version 2.4.  No library link files, 
975  headers or sources are distributed with this binary distribution.  Please 
976  refer to the <http://www.openssl.org/> site for complete source or binary 
977  distributions.
978
979  These OpenSSL binaries were built for distribution from the U.S. without 
980  support for the patented encryption methods IDEA, MDC-2 or RC5.
981
982  The Apache HTTP Project only supports the binary distribution of these files
983  and development of the mod_ssl module.  We cannot provide support assistance
984  for using or configuring the OpenSSL package or these modules.  Please refer
985  all installation and configuration questions to the appropriate forum,
986  such as the user supported lists, <http://httpd.apache.org/userslist.html> 
987  the Apache HTTP Server user's list or <http://www.openssl.org/support/> the
988  OpenSSL support page.
989
990 --------------------------------------------------------------------------------
991
992 <<
993         -copy "$(INSTDIR)\OPENSSL-README.txt" \
994             + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt"
995 !ENDIF
996 !IF EXIST("srclib\zlib")
997         type << >> "$(INSTDIR)\NOTICE.txt"
998
999 This binary distribution of mod_deflate.so includes zlib compression code
1000 <http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
1001 and Mark Adler (madler@alumni.caltech.edu) .
1002 <<
1003         -awk -f <<script.awk < "srclib\zlib\README" >> "$(INSTDIR)\LICENSE.txt"
1004 BEGIN {
1005     while ( getline > 0 ) {
1006         if ( $$0 ~ /Copyright notice:/ ) {
1007             print "";
1008             print "For the mod_deflate zlib compression component:";
1009             while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
1010                 print $$0;
1011             }
1012             exit 0;
1013         }
1014     }
1015     exit 1;
1016 }
1017 <<
1018 !ENDIF
1019 !IF EXIST("srclib\lua")
1020         type << >> "$(INSTDIR)\NOTICE.txt"
1021
1022 This binary distribution of mod_lua.so includes the Lua language, 
1023 developed at Lua.org, a laboratory of the Department of Computer Science 
1024 of PUC-Rio (the Pontifical Catholic University of Rio de Janeiro in Brazil).
1025 For complete information, visit Lua's web site at http://www.lua.org/
1026 <<
1027         -awk -f <<script.awk < "srclib\lua\COPYRIGHT" >> "$(INSTDIR)\LICENSE.txt"
1028 BEGIN {
1029     print "";
1030     print "For the mod_lua language component:";
1031     print "";
1032     while ( getline > 0 && $$0 !~ /end of COPYRIGHT/ ) {
1033         print $$0;
1034     }
1035     exit 0;
1036 }
1037 <<
1038 !ENDIF
1039 !IF EXIST("srclib\libxml2")
1040         type << >> "$(INSTDIR)\NOTICE.txt"
1041
1042 This binary distributions of mod_proxy_html.so and mod_xml2enc.so include the
1043 libxml2 C library written by Daniel Veillard (daniel veillard.com), Bjorn 
1044 Reese (breese users.sourceforge.net) and Gary Pennington (Gary.Pennington 
1045 uk.sun.com). For complete information, visit LibXML2's web site at 
1046 https://http://www.xmlsoft.org/
1047 <<
1048         -awk -f <<script.awk < "srclib\libxml2\Copyright" >> "$(INSTDIR)\LICENSE.txt"
1049 BEGIN {
1050     print "";
1051     print "For the mod_proxy_html and mod_xml2enc components:";
1052     print "";
1053             while ( getline > 0 ) {
1054         print $$0;
1055     }
1056     exit 0;
1057 }
1058 <<
1059 !ENDIF
1060 !IF EXIST("srclib\nghttp2")
1061         type << >> "$(INSTDIR)\NOTICE.txt"
1062
1063 This binary distribution of mod_http2.so includes nghttp2 C library written 
1064 by Tatsuhiro Tsujikawa. For complete information, visit nghttp2's web site 
1065 at https://nghttp2.org/
1066 <<
1067         -awk -f <<script.awk < "srclib\nghttp2\COPYING" >> "$(INSTDIR)\LICENSE.txt"
1068 BEGIN {
1069     print "";
1070     print "For the mod_http2 component:";
1071     print "";
1072             while ( getline > 0 ) {
1073         print $$0;
1074     }
1075     exit 0;
1076 }
1077 <<
1078 !ENDIF
1079         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
1080                 _copybin src_exe=exe src_dll=dll src_so=so             \
1081                 inst_exe="$(INSTDIR)\bin"                              \
1082                 inst_dll="$(INSTDIR)\bin"                              \
1083                 inst_so="$(INSTDIR)\modules"
1084         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
1085                 _copybin src_exe=pdb src_dll=pdb src_so=pdb            \
1086                 inst_exe="$(INSTDIR)\bin"                              \
1087                 inst_dll="$(INSTDIR)\bin"                              \
1088                 inst_so="$(INSTDIR)\modules"
1089 !IF EXIST("srclib\apr-util")
1090         cd srclib\apr-iconv
1091         $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
1092                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
1093                 INSTALL_DIR="$(INSTDIR)\bin\iconv"
1094         cd ..\..
1095 !ENDIF
1096         copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
1097         -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
1098     BEGIN { 
1099         if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
1100             gsub( /\\/, "/", perlroot );
1101             print "#!" perlroot;
1102         }
1103     }
1104     {
1105         if ( $$0 !~ /^#!/ ) {
1106             print $$0;
1107         }
1108     }
1109 <<
1110         xcopy docs\error        "$(INSTDIR)\error" /s /d < .a
1111         xcopy docs\docroot      "$(INSTDIR)\htdocs" /d < .a
1112         xcopy docs\icons        "$(INSTDIR)\icons" /s /d < .a
1113         xcopy docs\manual       "$(INSTDIR)\manual" /s /d < .a
1114         for %f in ( \
1115                 srclib\expat\lib\expat.h \
1116                 srclib\apr-util\xml\expat\lib\expat.h \
1117                 srclib\apr\include\*.h \
1118                 srclib\apr-util\include\*.h \
1119                 include\*.h \
1120                 os\win32\os.h \
1121                 modules\cache\mod_cache.h \
1122                 modules\cache\cache_common.h \
1123                 modules\core\mod_so.h \
1124                 modules\core\mod_watchdog.h \
1125                 modules\database\mod_dbd.h \
1126                 modules\dav\main\mod_dav.h \
1127                 modules\filters\mod_include.h \
1128                 modules\generators\mod_cgi.h \
1129                 modules\generators\mod_status.h \
1130                 modules\loggers\mod_log_config.h \
1131                 modules\mappers\mod_rewrite.h \
1132                 modules\proxy\mod_proxy.h \
1133                 modules\ssl\mod_ssl.h \
1134                 modules\ssl\mod_ssl_openssl.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