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