]> granicus.if.org Git - apache/blob - Makefile.win
XML updates.
[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 !IF EXIST("srclib\nghttp2")
604         cd modules\http2
605          $(MAKE) $(MAKEOPT) -f mod_http2.mak       CFG="mod_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
606          $(MAKE) $(MAKEOPT) -f mod_proxy_http2.mak CFG="mod_proxy_http2 - Win32 $(LONG)" RECURSE=0 $(CTARGET)
607         cd ..\..
608 !ENDIF
609         cd modules\loggers
610          $(MAKE) $(MAKEOPT) -f mod_log_config.mak  CFG="mod_log_config - Win32 $(LONG)" RECURSE=0 $(CTARGET)
611          $(MAKE) $(MAKEOPT) -f mod_log_debug.mak  CFG="mod_log_debug - Win32 $(LONG)" RECURSE=0 $(CTARGET)
612          $(MAKE) $(MAKEOPT) -f mod_log_forensic.mak CFG="mod_log_forensic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
613          $(MAKE) $(MAKEOPT) -f mod_logio.mak       CFG="mod_logio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
614         cd ..\..
615 !IF EXIST("srclib\lua")
616         cd modules\lua
617          $(MAKE) $(MAKEOPT) -f mod_lua.mak         CFG="mod_lua - Win32 $(LONG)" RECURSE=0 $(CTARGET)
618         cd ..\..
619 !ENDIF
620         cd modules\mappers
621          $(MAKE) $(MAKEOPT) -f mod_actions.mak     CFG="mod_actions - Win32 $(LONG)" RECURSE=0 $(CTARGET)
622          $(MAKE) $(MAKEOPT) -f mod_alias.mak       CFG="mod_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
623          $(MAKE) $(MAKEOPT) -f mod_dir.mak         CFG="mod_dir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
624          $(MAKE) $(MAKEOPT) -f mod_imagemap.mak    CFG="mod_imagemap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
625          $(MAKE) $(MAKEOPT) -f mod_negotiation.mak CFG="mod_negotiation - Win32 $(LONG)" RECURSE=0 $(CTARGET)
626          $(MAKE) $(MAKEOPT) -f mod_rewrite.mak     CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
627          $(MAKE) $(MAKEOPT) -f mod_speling.mak     CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
628          $(MAKE) $(MAKEOPT) -f mod_userdir.mak     CFG="mod_userdir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
629          $(MAKE) $(MAKEOPT) -f mod_vhost_alias.mak CFG="mod_vhost_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
630         cd ..\..
631         cd modules\metadata
632          $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak   CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
633          $(MAKE) $(MAKEOPT) -f mod_env.mak         CFG="mod_env - Win32 $(LONG)" RECURSE=0 $(CTARGET)
634          $(MAKE) $(MAKEOPT) -f mod_expires.mak     CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
635          $(MAKE) $(MAKEOPT) -f mod_headers.mak     CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
636          $(MAKE) $(MAKEOPT) -f mod_ident.mak       CFG="mod_ident - Win32 $(LONG)" RECURSE=0 $(CTARGET)
637          $(MAKE) $(MAKEOPT) -f mod_mime_magic.mak  CFG="mod_mime_magic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
638          $(MAKE) $(MAKEOPT) -f mod_remoteip.mak    CFG="mod_remoteip - Win32 $(LONG)" RECURSE=0 $(CTARGET)
639          $(MAKE) $(MAKEOPT) -f mod_setenvif.mak    CFG="mod_setenvif - Win32 $(LONG)" RECURSE=0 $(CTARGET)
640          $(MAKE) $(MAKEOPT) -f mod_unique_id.mak   CFG="mod_unique_id - Win32 $(LONG)" RECURSE=0 $(CTARGET)
641          $(MAKE) $(MAKEOPT) -f mod_usertrack.mak   CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
642          $(MAKE) $(MAKEOPT) -f mod_version.mak     CFG="mod_version - Win32 $(LONG)" RECURSE=0 $(CTARGET)
643         cd ..\..
644         cd modules\proxy
645          $(MAKE) $(MAKEOPT) -f mod_proxy.mak       CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
646          $(MAKE) $(MAKEOPT) -f mod_proxy_ajp.mak   CFG="mod_proxy_ajp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
647          $(MAKE) $(MAKEOPT) -f mod_proxy_balancer.mak  CFG="mod_proxy_balancer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
648          $(MAKE) $(MAKEOPT) -f mod_proxy_connect.mak CFG="mod_proxy_connect - Win32 $(LONG)" RECURSE=0 $(CTARGET)
649          $(MAKE) $(MAKEOPT) -f mod_proxy_express.mak CFG="mod_proxy_express - Win32 $(LONG)" RECURSE=0 $(CTARGET)
650          $(MAKE) $(MAKEOPT) -f mod_proxy_fcgi.mak  CFG="mod_proxy_fcgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
651          $(MAKE) $(MAKEOPT) -f mod_proxy_ftp.mak   CFG="mod_proxy_ftp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
652          $(MAKE) $(MAKEOPT) -f mod_proxy_hcheck.mak  CFG="mod_proxy_hcheck - Win32 $(LONG)" RECURSE=0 $(CTARGET)
653          $(MAKE) $(MAKEOPT) -f mod_proxy_http.mak  CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
654          $(MAKE) $(MAKEOPT) -f mod_proxy_scgi.mak  CFG="mod_proxy_scgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
655          $(MAKE) $(MAKEOPT) -f mod_proxy_uwsgi.mak  CFG="mod_proxy_uwsgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
656          $(MAKE) $(MAKEOPT) -f mod_proxy_wstunnel.mak  CFG="mod_proxy_wstunnel - Win32 $(LONG)" RECURSE=0 $(CTARGET)
657 !IF EXIST("srclib\serf")
658          $(MAKE) $(MAKEOPT) -f mod_serf.mak        CFG="mod_serf - Win32 $(LONG)" RECURSE=0 $(CTARGET)
659 !ENDIF
660         cd ..\..
661         cd modules\proxy\balancers
662          $(MAKE) $(MAKEOPT) -f mod_lbmethod_bybusyness.mak CFG="mod_lbmethod_bybusyness - Win32 $(LONG)" RECURSE=0 $(CTARGET)
663          $(MAKE) $(MAKEOPT) -f mod_lbmethod_byrequests.mak CFG="mod_lbmethod_byrequests - Win32 $(LONG)" RECURSE=0 $(CTARGET)
664          $(MAKE) $(MAKEOPT) -f mod_lbmethod_bytraffic.mak  CFG="mod_lbmethod_bytraffic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
665          $(MAKE) $(MAKEOPT) -f mod_lbmethod_heartbeat.mak  CFG="mod_lbmethod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
666         cd ..\..\..
667 !IFDEF ALL
668         cd modules\proxy\examples
669          $(MAKE) $(MAKEOPT) -f mod_lbmethod_rr.mak CFG="mod_lbmethod_rr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
670         cd ..\..\..
671 !ENDIF
672         cd modules\session
673          $(MAKE) $(MAKEOPT) -f mod_session.mak        CFG="mod_session - Win32 $(LONG)" RECURSE=0 $(CTARGET)
674          $(MAKE) $(MAKEOPT) -f mod_session_cookie.mak CFG="mod_session_cookie - Win32 $(LONG)" RECURSE=0 $(CTARGET)
675          $(MAKE) $(MAKEOPT) -f mod_session_dbd.mak    CFG="mod_session_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
676         cd ..\..
677         cd modules\slotmem
678          $(MAKE) $(MAKEOPT) -f mod_slotmem_plain.mak  CFG="mod_slotmem_plain - Win32 $(LONG)" RECURSE=0 $(CTARGET)
679          $(MAKE) $(MAKEOPT) -f mod_slotmem_shm.mak    CFG="mod_slotmem_shm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
680         cd ..\..
681 !IF EXIST("srclib\openssl")
682 #       cd modules\session
683 #        $(MAKE) $(MAKEOPT) -f mod_session_crypto.mak CFG="mod_session_crypto - Win32 $(LONG)" RECURSE=0 $(CTARGET)
684 #       cd ..\..
685         cd modules\ssl
686          $(MAKE) $(MAKEOPT) -f mod_ssl.mak         CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
687         cd ..\..
688         cd support
689          $(MAKE) $(MAKEOPT) -f abs.mak             CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
690         cd ..
691 !IF EXIST("srclib\jansson") && EXIST("srclib\curl")
692         cd modules\md
693          $(MAKE) $(MAKEOPT) $(SSLOPT) -f mod_md.mak          CFG="mod_md - Win32 $(LONG)" RECURSE=0 $(CTARGET)
694         cd ..\..
695 !ENDIF
696 !ENDIF
697         cd support
698          $(MAKE) $(MAKEOPT) -f ab.mak              CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
699 #        $(MAKE) $(MAKEOPT) -f fcgistarter.mak     CFG="fcgistarter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
700          $(MAKE) $(MAKEOPT) -f htcacheclean.mak    CFG="htcacheclean - Win32 $(LONG)" RECURSE=0 $(CTARGET)
701          $(MAKE) $(MAKEOPT) -f htdbm.mak           CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
702          $(MAKE) $(MAKEOPT) -f htdigest.mak        CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
703          $(MAKE) $(MAKEOPT) -f htpasswd.mak        CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
704          $(MAKE) $(MAKEOPT) -f httxt2dbm.mak       CFG="httxt2dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
705          $(MAKE) $(MAKEOPT) -f logresolve.mak      CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
706          $(MAKE) $(MAKEOPT) -f rotatelogs.mak      CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
707         cd ..
708         cd support\win32
709          $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak   CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
710          $(MAKE) $(MAKEOPT) -f wintty.mak          CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
711         cd ..\..
712
713 !ELSEIF $(USESLN) == 1
714
715 _cleanr:  
716         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
717
718 _cleand:  
719         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/clean" _build
720
721 _build:
722         echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
723 !IFDEF ALL
724         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project BuildAll
725 !ELSE
726         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project BuildBin
727 !ENDIF
728 !IF EXIST("srclib\openssl")
729         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_ssl
730         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project abs
731 !ENDIF
732 !IF EXIST("srclib\zlib")
733         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_deflate
734 !ENDIF
735 !IF EXIST("srclib\lua")
736         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_lua
737 !ENDIF
738 !IF EXIST("srclib\libxml2")
739         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_proxy_html
740         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_xml2enc
741 !ENDIF
742 !IF EXIST("srclib\serf")
743         devenv $(TLP).sln /useenv $(CTARGET) $(LONG) /project mod_serf
744 !ENDIF
745
746 !ELSE
747
748 _cleanr:  
749         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
750
751 _cleand:  
752         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/CLEAN" _build
753
754 _build:
755         @echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
756 !IFDEF ALL
757         @msdev $(TLP).dsw /USEENV /MAKE \
758                 "BuildAll - Win32 $(LONG)" $(CTARGET)
759 !ELSE
760         @msdev $(TLP).dsw /USEENV /MAKE \
761                 "BuildBin - Win32 $(LONG)" $(CTARGET)
762 !ENDIF
763 !IF "$(CTARGET)" == "/CLEAN"
764 !IF EXIST("srclib\apr-iconv")
765         @cd srclib\apr-iconv
766         @$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
767                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
768         @cd ..\..
769 !ENDIF
770 !ENDIF
771 !IF EXIST("srclib\openssl")
772         @msdev $(TLP).dsw /USEENV /MAKE \
773                 "mod_ssl - Win32 $(LONG)" \
774                 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
775 !ENDIF
776 !IF EXIST("srclib\zlib")
777         @msdev $(TLP).dsw /USEENV /MAKE \
778                 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
779 !ENDIF
780 !IF EXIST("srclib\lua")
781         @msdev $(TLP).dsw /USEENV /MAKE \
782                 "mod_lua - Win32 $(LONG)" /NORECURSE $(CTARGET)
783 !ENDIF
784 !IF EXIST("srclib\libxml2")
785         @msdev $(TLP).dsw /USEENV /MAKE \
786                 "mod_proxy_html - Win32 $(LONG)" /NORECURSE $(CTARGET)
787         @msdev $(TLP).dsw /USEENV /MAKE \
788                 "mod_xml2enc - Win32 $(LONG)" /NORECURSE $(CTARGET)
789 !ENDIF
790 !IF EXIST("srclib\serf")
791         @msdev $(TLP).dsw /USEENV /MAKE \
792                 "mod_serf - Win32 $(LONG)" /NORECURSE $(CTARGET)
793 !ENDIF
794
795 !ENDIF
796
797
798 _copybin:
799         copy $(LONG)\httpd.$(src_exe)                           "$(inst_exe)" <.y
800         copy $(LONG)\libapreq.$(src_dll)                        "$(inst_dll)" <.y
801         copy $(LONG)\libhttpd.$(src_dll)                        "$(inst_dll)" <.y
802         copy srclib\apr\$(LONG)\libapr-1.$(src_dll)             "$(inst_dll)" <.y
803 !IF EXIST("srclib\apr-util")
804         copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll)  "$(inst_dll)" <.y
805         copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll)    "$(inst_dll)" <.y
806         copy srclib\apr-util\ldap\$(LONG)\apr_ldap-1.$(src_dll) "$(inst_dll)" <.y
807 !ENDIF
808         for %d in (odbc $(DBD_LIST)) do ( \
809           copy srclib\$(UTILDIR)\dbd\$(LONG)\apr_dbd_%d-1.$(src_dll) "$(inst_dll)" <.y \
810         )
811         for %d in ($(DBM_LIST) x) do if not %d == x ( \
812           copy srclib\$(UTILDIR)\dbm\$(LONG)\apr_dbm_%d-1.$(src_dll) "$(inst_dll)" <.y \
813         )
814 !IF EXIST("srclib\serf")
815         copy srclib\serf\$(LONG)\libserf.$(src_dll)             "$(inst_dll)" <.y
816 !ENDIF
817 !IF "$(SHORT)" == "D"
818         copy srclib\pcre\pcred.$(src_dll)                       "$(inst_dll)" <.y
819 !ELSE
820         copy srclib\pcre\pcre.$(src_dll)                        "$(inst_dll)" <.y
821 !ENDIF  
822         copy modules\aaa\$(LONG)\mod_access_compat.$(src_so)    "$(inst_so)" <.y
823         copy modules\aaa\$(LONG)\mod_allowhandlers.$(src_so)    "$(inst_so)" <.y
824         copy modules\aaa\$(LONG)\mod_allowmethods.$(src_so)     "$(inst_so)" <.y
825         copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so)       "$(inst_so)" <.y
826         copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so)      "$(inst_so)" <.y
827         copy modules\aaa\$(LONG)\mod_auth_form.$(src_so)        "$(inst_so)" <.y
828         copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so)       "$(inst_so)" <.y
829         copy modules\aaa\$(LONG)\mod_authn_core.$(src_so)       "$(inst_so)" <.y
830         copy modules\aaa\$(LONG)\mod_authn_dbd.$(src_so)        "$(inst_so)" <.y
831         copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so)        "$(inst_so)" <.y
832         copy modules\aaa\$(LONG)\mod_authn_file.$(src_so)       "$(inst_so)" <.y
833         copy modules\aaa\$(LONG)\mod_authn_socache.$(src_so)    "$(inst_so)" <.y
834         copy modules\aaa\$(LONG)\mod_authnz_fcgi.$(src_so)      "$(inst_so)" <.y
835         copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so)      "$(inst_so)" <.y
836         copy modules\aaa\$(LONG)\mod_authz_core.$(src_so)       "$(inst_so)" <.y
837         copy modules\aaa\$(LONG)\mod_authz_dbd.$(src_so)        "$(inst_so)" <.y
838         copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so)        "$(inst_so)" <.y
839         copy modules\aaa\$(LONG)\mod_authz_core.$(src_so)       "$(inst_so)" <.y
840         copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so)  "$(inst_so)" <.y
841         copy modules\aaa\$(LONG)\mod_authz_host.$(src_so)       "$(inst_so)" <.y
842         copy modules\aaa\$(LONG)\mod_authz_owner.$(src_so)      "$(inst_so)" <.y
843         copy modules\aaa\$(LONG)\mod_authz_user.$(src_so)       "$(inst_so)" <.y
844         copy modules\apreq\$(LONG)\mod_apreq.$(src_so)  "$(inst_so)" <.y
845         copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so)     "$(inst_so)" <.y
846         copy modules\cache\$(LONG)\mod_cache.$(src_so)          "$(inst_so)" <.y
847         copy modules\cache\$(LONG)\mod_cache_disk.$(src_so)     "$(inst_so)" <.y
848         copy modules\cache\$(LONG)\mod_cache_socache.$(src_so)  "$(inst_so)" <.y
849         copy modules\cache\$(LONG)\mod_file_cache.$(src_so)     "$(inst_so)" <.y
850         copy modules\cache\$(LONG)\mod_socache_dbm.$(src_so)    "$(inst_so)" <.y
851 #       copy modules\cache\$(LONG)\mod_socache_dc.$(src_so)     "$(inst_so)" <.y
852         copy modules\cache\$(LONG)\mod_socache_memcache.$(src_so) "$(inst_so)" <.y
853         copy modules\cache\$(LONG)\mod_socache_shmcb.$(src_so)  "$(inst_so)" <.y
854         copy modules\cache\$(LONG)\mod_socache_redis.$(src_so)  "$(inst_so)" <.y
855         copy modules\core\$(LONG)\mod_macro.$(src_so)   "$(inst_so)" <.y
856         copy modules\core\$(LONG)\mod_watchdog.$(src_so)        "$(inst_so)" <.y
857         copy modules\cluster\$(LONG)\mod_heartbeat.$(src_so)    "$(inst_so)" <.y
858         copy modules\cluster\$(LONG)\mod_heartmonitor.$(src_so) "$(inst_so)" <.y
859         copy modules\database\$(LONG)\mod_dbd.$(src_so)         "$(inst_so)" <.y
860         copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so)        "$(inst_so)" <.y
861         copy modules\dav\lock\$(LONG)\mod_dav_lock.$(src_so)    "$(inst_so)" <.y
862         copy modules\dav\main\$(LONG)\mod_dav.$(src_so)         "$(inst_so)" <.y
863 !IFDEF ALL
864         copy modules\debugging\$(LONG)\mod_bucketeer.$(src_so)  "$(inst_so)" <.y
865 !ENDIF
866         copy modules\debugging\$(LONG)\mod_dumpio.$(src_so)     "$(inst_so)" <.y
867 !IFDEF ALL
868         copy modules\echo\$(LONG)\mod_echo.$(src_so)            "$(inst_so)" <.y
869         copy modules\examples\$(LONG)\mod_case_filter.$(src_so)    "$(inst_so)" <.y
870         copy modules\examples\$(LONG)\mod_case_filter_in.$(src_so) "$(inst_so)" <.y
871         copy modules\examples\$(LONG)\mod_example_hooks.$(src_so)  "$(inst_so)" <.y
872         copy modules\examples\$(LONG)\mod_example_ipc.$(src_so)    "$(inst_so)" <.y
873 !ENDIF
874 !IF EXIST("srclib\brotli")
875         copy modules\filters\$(LONG)\mod_brotli.$(src_so)       "$(inst_so)" <.y
876 !ENDIF
877         copy modules\filters\$(LONG)\mod_buffer.$(src_so)       "$(inst_so)" <.y
878         copy modules\filters\$(LONG)\mod_charset_lite.$(src_so) "$(inst_so)" <.y
879         copy modules\filters\$(LONG)\mod_data.$(src_so) "$(inst_so)" <.y
880 !IF EXIST("srclib\zlib")
881         copy modules\filters\$(LONG)\mod_deflate.$(src_so)      "$(inst_so)" <.y
882 !IF EXIST("srclib\zlib\zlib1.$(src_dll)")
883         copy srclib\zlib\zlib1.$(src_dll)                       "$(inst_dll)" <.y
884 !ENDIF
885 !ENDIF
886         copy modules\filters\$(LONG)\mod_ext_filter.$(src_so)   "$(inst_so)" <.y
887         copy modules\filters\$(LONG)\mod_filter.$(src_so)       "$(inst_so)" <.y
888         copy modules\filters\$(LONG)\mod_include.$(src_so)      "$(inst_so)" <.y
889 !IF EXIST("srclib\libxml2")
890         copy modules\filters\$(LONG)\mod_proxy_html.$(src_so)   "$(inst_so)" <.y
891         copy modules\filters\$(LONG)\mod_xml2enc.$(src_so)      "$(inst_so)" <.y
892 !IF EXIST("srclib\libxml2\win32\bin.msvc\libxml2.$(src_dll)")
893         copy srclib\libxml2\win32\bin.msvc\libxml2.$(src_dll)                   "$(inst_dll)" <.y
894 !ENDIF
895 !ENDIF
896         copy modules\filters\$(LONG)\mod_ratelimit.$(src_so)    "$(inst_so)" <.y
897         copy modules\filters\$(LONG)\mod_reflector.$(src_so)    "$(inst_so)" <.y
898         copy modules\filters\$(LONG)\mod_reqtimeout.$(src_so)   "$(inst_so)" <.y
899         copy modules\filters\$(LONG)\mod_request.$(src_so)      "$(inst_so)" <.y
900         copy modules\filters\$(LONG)\mod_sed.$(src_so)          "$(inst_so)" <.y
901         copy modules\filters\$(LONG)\mod_substitute.$(src_so)   "$(inst_so)" <.y
902         copy modules\generators\$(LONG)\mod_asis.$(src_so)      "$(inst_so)" <.y
903         copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
904         copy modules\generators\$(LONG)\mod_cgi.$(src_so)       "$(inst_so)" <.y
905         copy modules\generators\$(LONG)\mod_info.$(src_so)      "$(inst_so)" <.y
906         copy modules\generators\$(LONG)\mod_status.$(src_so)    "$(inst_so)" <.y
907         copy modules\http\$(LONG)\mod_mime.$(src_so)            "$(inst_so)" <.y
908 !IF EXIST("srclib\nghttp2")
909         copy modules\http2\$(LONG)\mod_http2.$(src_so)          "$(inst_so)" <.y
910         copy modules\http2\$(LONG)\mod_proxy_http2.$(src_so)    "$(inst_so)" <.y
911 !IF "$(SHORT)" == "D"
912         copy srclib\nghttp2\lib\MSVC_obj\nghttp2d.$(src_dll)                    "$(inst_dll)" <.y
913 !ELSE
914         copy srclib\nghttp2\lib\MSVC_obj\nghttp2.$(src_dll)                     "$(inst_dll)" <.y
915 !ENDIF
916 !ENDIF
917         copy modules\ldap\$(LONG)\mod_ldap.$(src_so)            "$(inst_so)" <.y
918         copy modules\loggers\$(LONG)\mod_log_config.$(src_so)   "$(inst_so)" <.y
919         copy modules\loggers\$(LONG)\mod_log_debug.$(src_so)    "$(inst_so)" <.y
920         copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
921         copy modules\loggers\$(LONG)\mod_logio.$(src_so)        "$(inst_so)" <.y
922 !IF EXIST("srclib\lua")
923         copy modules\lua\$(LONG)\mod_lua.$(src_so)              "$(inst_so)" <.y
924 !IF EXIST("srclib\lua\src\lua51.$(src_dll)")
925         copy srclib\lua\src\lua51.$(src_dll)                    "$(inst_dll)" <.y
926 !ENDIF
927 !ENDIF
928         copy modules\mappers\$(LONG)\mod_actions.$(src_so)      "$(inst_so)" <.y
929         copy modules\mappers\$(LONG)\mod_alias.$(src_so)        "$(inst_so)" <.y
930         copy modules\mappers\$(LONG)\mod_dir.$(src_so)          "$(inst_so)" <.y
931         copy modules\mappers\$(LONG)\mod_imagemap.$(src_so)     "$(inst_so)" <.y
932         copy modules\mappers\$(LONG)\mod_negotiation.$(src_so)  "$(inst_so)" <.y
933         copy modules\mappers\$(LONG)\mod_rewrite.$(src_so)      "$(inst_so)" <.y
934         copy modules\mappers\$(LONG)\mod_speling.$(src_so)      "$(inst_so)" <.y
935         copy modules\mappers\$(LONG)\mod_userdir.$(src_so)      "$(inst_so)" <.y
936         copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so)  "$(inst_so)" <.y
937         copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so)   "$(inst_so)" <.y
938         copy modules\metadata\$(LONG)\mod_env.$(src_so)         "$(inst_so)" <.y
939         copy modules\metadata\$(LONG)\mod_expires.$(src_so)     "$(inst_so)" <.y
940         copy modules\metadata\$(LONG)\mod_headers.$(src_so)     "$(inst_so)" <.y
941         copy modules\metadata\$(LONG)\mod_ident.$(src_so)       "$(inst_so)" <.y
942         copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so)  "$(inst_so)" <.y
943         copy modules\metadata\$(LONG)\mod_remoteip.$(src_so)    "$(inst_so)" <.y
944         copy modules\metadata\$(LONG)\mod_setenvif.$(src_so)    "$(inst_so)" <.y
945         copy modules\metadata\$(LONG)\mod_unique_id.$(src_so)   "$(inst_so)" <.y
946         copy modules\metadata\$(LONG)\mod_usertrack.$(src_so)   "$(inst_so)" <.y
947         copy modules\metadata\$(LONG)\mod_version.$(src_so)     "$(inst_so)" <.y
948         copy modules\proxy\$(LONG)\mod_proxy.$(src_so)          "$(inst_so)" <.y
949         copy modules\proxy\$(LONG)\mod_proxy_ajp.$(src_so)      "$(inst_so)" <.y
950         copy modules\proxy\$(LONG)\mod_proxy_balancer.$(src_so) "$(inst_so)" <.y
951         copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so)  "$(inst_so)" <.y
952         copy modules\proxy\$(LONG)\mod_proxy_express.$(src_so)  "$(inst_so)" <.y
953         copy modules\proxy\$(LONG)\mod_proxy_fcgi.$(src_so)     "$(inst_so)" <.y
954         copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so)      "$(inst_so)" <.y
955         copy modules\proxy\$(LONG)\mod_proxy_hcheck.$(src_so)   "$(inst_so)" <.y
956         copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so)     "$(inst_so)" <.y
957         copy modules\proxy\$(LONG)\mod_proxy_scgi.$(src_so)     "$(inst_so)" <.y
958         copy modules\proxy\$(LONG)\mod_proxy_uwsgi.$(src_so)    "$(inst_so)" <.y
959         copy modules\proxy\$(LONG)\mod_proxy_wstunnel.$(src_so)         "$(inst_so)" <.y
960 !IF EXIST("srclib\serf")
961         copy modules\proxy\$(LONG)\mod_serf.$(src_so)           "$(inst_so)" <.y
962 !ENDIF
963         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bybusyness.$(src_so) "$(inst_so)" <.y
964         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_byrequests.$(src_so) "$(inst_so)" <.y
965         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bytraffic.$(src_so)  "$(inst_so)" <.y
966         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_heartbeat.$(src_so)  "$(inst_so)" <.y
967 !IFDEF ALL
968         copy modules\proxy\examples\$(LONG)\mod_lbmethod_rr.$(src_so) "$(inst_so)" <.y
969 !ENDIF
970         copy modules\session\$(LONG)\mod_session.$(src_so)        "$(inst_so)" <.y
971         copy modules\session\$(LONG)\mod_session_cookie.$(src_so) "$(inst_so)" <.y
972         copy modules\session\$(LONG)\mod_session_dbd.$(src_so)    "$(inst_so)" <.y
973         copy modules\slotmem\$(LONG)\mod_slotmem_plain.$(src_so)    "$(inst_so)" <.y
974         copy modules\slotmem\$(LONG)\mod_slotmem_shm.$(src_so)    "$(inst_so)" <.y
975 !IF EXIST("srclib\openssl")
976 !IF EXIST("srclib\jansson") &&  EXIST("srclib\curl")
977         copy modules\md\$(LONG)\mod_md.$(src_so)                "$(inst_so)" <.y
978         -copy srclib\jansson\bin\jansson.$(src_dll)             "$(inst_dll)" <.y
979         -copy srclib\curl\bin\libcurl.$(src_dll)                "$(inst_dll)" <.y
980 !ENDIF
981 #       copy modules\session\$(LONG)\mod_session_crypto.$(src_so) "$(inst_so)" <.y
982         copy modules\ssl\$(LONG)\mod_ssl.$(src_so)              "$(inst_so)" <.y
983         -copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll)      "$(inst_dll)" <.y
984         -copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll)      "$(inst_dll)" <.y
985         -copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe)       "$(inst_exe)" <.y
986         copy support\$(LONG)\abs.$(src_exe)                     "$(inst_exe)" <.y
987 !ENDIF
988         copy support\$(LONG)\ab.$(src_exe)                      "$(inst_exe)" <.y
989 #       copy support\$(LONG)\fcgistarter.$(src_exe)             "$(inst_exe)" <.y
990         copy support\$(LONG)\htcacheclean.$(src_exe)            "$(inst_exe)" <.y
991         copy support\$(LONG)\htdbm.$(src_exe)                   "$(inst_exe)" <.y
992         copy support\$(LONG)\htdigest.$(src_exe)                "$(inst_exe)" <.y
993         copy support\$(LONG)\htpasswd.$(src_exe)                "$(inst_exe)" <.y
994         copy support\$(LONG)\httxt2dbm.$(src_exe)               "$(inst_exe)" <.y
995         copy support\$(LONG)\logresolve.$(src_exe)              "$(inst_exe)" <.y
996         copy support\$(LONG)\rotatelogs.$(src_exe)              "$(inst_exe)" <.y
997         copy support\win32\$(LONG)\ApacheMonitor.$(src_exe)     "$(inst_exe)" <.y
998         copy support\win32\$(LONG)\wintty.$(src_exe)            "$(inst_exe)" <.y
999
1000
1001 # First we create the tree and populate the README so that 
1002 # whatever happens, all licensing has already propagated.  
1003 # Then repeatedly invoke the _copybin build to copy the
1004 # real binaries, then pdb symbols, anf finally dbg syms.
1005 # Then hit docs of various sorts, then includes and libs,
1006 # and finally do the .conf magic.
1007 #
1008 _install:
1009         echo Y >.y
1010         echo A >.A
1011         -mkdir "$(INSTDIR)"
1012         -mkdir "$(INSTDIR)\bin"
1013 !IF EXIST("srclib\apr-util")
1014         -mkdir "$(INSTDIR)\bin\iconv"
1015 !ENDIF
1016         -mkdir "$(INSTDIR)\cgi-bin"
1017         -mkdir "$(INSTDIR)\conf"
1018         -mkdir "$(INSTDIR)\conf\extra"
1019         -mkdir "$(INSTDIR)\conf\original"
1020         -mkdir "$(INSTDIR)\conf\original\extra"
1021         -mkdir "$(INSTDIR)\error"
1022         -mkdir "$(INSTDIR)\htdocs"
1023         -mkdir "$(INSTDIR)\manual"
1024         -mkdir "$(INSTDIR)\icons"
1025         -mkdir "$(INSTDIR)\include"
1026         -mkdir "$(INSTDIR)\lib"
1027         -mkdir "$(INSTDIR)\logs"
1028         -mkdir "$(INSTDIR)\modules"
1029         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
1030                 _copybin src_exe=exe src_dll=dll src_so=so             \
1031                 inst_exe="$(INSTDIR)\bin"                              \
1032                 inst_dll="$(INSTDIR)\bin"                              \
1033                 inst_so="$(INSTDIR)\modules"
1034         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
1035                 _copybin src_exe=pdb src_dll=pdb src_so=pdb            \
1036                 inst_exe="$(INSTDIR)\bin"                              \
1037                 inst_dll="$(INSTDIR)\bin"                              \
1038                 inst_so="$(INSTDIR)\modules"
1039 !IF EXIST("srclib\apr-util")
1040         cd srclib\apr-iconv
1041         $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
1042                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
1043                 INSTALL_DIR="$(INSTDIR)\bin\iconv"
1044         cd ..\..
1045 !ENDIF
1046         copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
1047         copy docs\cgi-examples\printenv.vbs "$(INSTDIR)\cgi-bin\printenv.vbs" <.y
1048         copy docs\cgi-examples\printenv.wsf "$(INSTDIR)\cgi-bin\printenv.wsf" <.y
1049         xcopy docs\error        "$(INSTDIR)\error" /s /d < .a
1050         xcopy docs\docroot      "$(INSTDIR)\htdocs" /d < .a
1051         xcopy docs\icons        "$(INSTDIR)\icons" /s /d < .a
1052         xcopy docs\manual       "$(INSTDIR)\manual" /s /d < .a
1053         for %f in ( \
1054                 srclib\expat\lib\expat.h \
1055                 srclib\apr-util\xml\expat\lib\expat.h \
1056                 srclib\apr\include\*.h \
1057                 srclib\apr-util\include\*.h \
1058 !IF EXIST("srclib\serf")
1059                 srclib\serf\*.h \
1060 !ENDIF
1061                 include\*.h \
1062                 os\win32\os.h \
1063                 modules\cache\mod_cache.h \
1064                 modules\cache\cache_common.h \
1065                 modules\core\mod_so.h \
1066                 modules\core\mod_watchdog.h \
1067                 modules\database\mod_dbd.h \
1068                 modules\dav\main\mod_dav.h \
1069                 modules\filters\mod_include.h \
1070                 modules\generators\mod_cgi.h \
1071                 modules\generators\mod_status.h \
1072                 modules\loggers\mod_log_config.h \
1073                 modules\mappers\mod_rewrite.h \
1074                 modules\proxy\mod_proxy.h \
1075                 modules\proxy\mod_serf.h \
1076                 modules\ssl\mod_ssl.h \
1077                 modules\ssl\mod_ssl_openssl.h \
1078           ) do \
1079             @copy %f "$(INSTDIR)\include" < .y > nul
1080         copy srclib\apr\Lib$(SHORT)\apr-1.lib           "$(INSTDIR)\lib" <.y
1081         copy srclib\apr\Lib$(SHORT)\apr-1.pdb           "$(INSTDIR)\lib" <.y
1082         copy srclib\apr\$(LONG)\libapr-1.lib            "$(INSTDIR)\lib" <.y
1083         copy srclib\apr\$(LONG)\libapr-1.exp            "$(INSTDIR)\lib" <.y
1084 !IF EXIST("srclib\apr-util")
1085         copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib  "$(INSTDIR)\lib" <.y
1086         copy srclib\apr-util\Lib$(SHORT)\aprutil-1.pdb  "$(INSTDIR)\lib" <.y
1087         copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
1088         copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.pdb "$(INSTDIR)\lib" <.y
1089         copy srclib\apr-util\$(LONG)\libaprutil-1.lib   "$(INSTDIR)\lib" <.y
1090         copy srclib\apr-util\$(LONG)\libaprutil-1.exp   "$(INSTDIR)\lib" <.y
1091         copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib "$(INSTDIR)\lib" <.y
1092         copy srclib\apr-iconv\$(LONG)\libapriconv-1.exp "$(INSTDIR)\lib" <.y
1093 !ELSE
1094         copy srclib\expat\win32\$(LONG)\libexpatMT.lib  "$(INSTDIR)\lib" <.y
1095         copy srclib\expat\win32\$(LONG)\libexpatMT.exp  "$(INSTDIR)\lib" <.y
1096         copy srclib\expat\win32\$(LONG)\libexpat.lib    "$(INSTDIR)\lib" <.y
1097         copy srclib\expat\win32\$(LONG)\libexpat.exp    "$(INSTDIR)\lib" <.y
1098         copy srclib\expat\win32\$(LONG)\libexpat.dll    "$(INSTDIR)\bin" <.y
1099 !ENDIF
1100 !IF EXIST("srclib\serf")
1101         copy srclib\serf\$(LONG)\libserf.lib            "$(INSTDIR)\lib" <.y
1102         copy srclib\serf\$(LONG)\libserf.exp            "$(INSTDIR)\lib" <.y
1103 !ENDIF
1104         copy $(LONG)\libhttpd.exp                       "$(INSTDIR)\lib" <.y
1105         copy $(LONG)\libhttpd.lib                       "$(INSTDIR)\lib" <.y
1106         copy modules\dav\main\$(LONG)\mod_dav.exp       "$(INSTDIR)\lib" <.y
1107         copy modules\dav\main\$(LONG)\mod_dav.lib       "$(INSTDIR)\lib" <.y
1108         for %f in ( charset.conv magic mime.types ) do ( \
1109           copy docs\conf\%f "$(INSTDIR)\conf\original\%f" <.y )
1110         awk -f build\installwinconf.awk $(DOMAINNAME) $(SERVERNAME) \
1111             $(SERVERADMIN) $(PORT) $(SSLPORT) "$(INSTDIR) " docs/conf/ 
1112         copy "support\dbmmanage.in" "$(INSTDIR)\bin\dbmmanage.pl"
1113         -awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
1114     { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
1115           sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" ); 
1116       }
1117       if ( $$0 !~ /^#!@perlbin@/ )
1118           print $$0;
1119     }
1120 <<
1121         del .y
1122         del .a
1123
1124 _fixshebang:
1125 !IF EXIST("$(INSTDIR)\cgi-bin")
1126         -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
1127     BEGIN { 
1128         if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
1129             gsub( /\\/, "/", perlroot );
1130             print "#!" perlroot;
1131         }
1132     }
1133     {
1134         if ( $$0 !~ /^#!/ ) {
1135             print $$0;
1136         }
1137     }
1138 <<
1139         -cscript -nologo <<script.vbs "docs/cgi-examples/printenv.vbs" "$(INSTDIR)\cgi-bin\printenv.vbs"
1140     Dim fso, f, c
1141     Set fso = CreateObject("Scripting.FileSystemObject")
1142     Set f = fso.OpenTextFile(WScript.Arguments(0), 1)
1143     f.SkipLine
1144     c = f.ReadAll
1145     f.Close
1146     Set f = fso.OpenTextFile(WScript.Arguments(1), 2, TRUE)
1147     f.WriteLine "'!" & Replace(WScript.FullName, "\", "/") & " -nologo"
1148     f.Write c
1149     f.Close
1150 <<
1151         -cscript -nologo <<script.vbs "docs/cgi-examples/printenv.wsf" "$(INSTDIR)\cgi-bin\printenv.wsf"
1152     Dim fso, f, c
1153     Set fso = CreateObject("Scripting.FileSystemObject")
1154     Set f = fso.OpenTextFile(WScript.Arguments(0), 1)
1155     f.SkipLine
1156     c = f.ReadAll
1157     f.Close
1158     Set f = fso.OpenTextFile(WScript.Arguments(1), 2, TRUE)
1159     f.WriteLine "'!" & Replace(WScript.FullName, "\", "/") & " -nologo"
1160     f.Write c
1161     f.Close
1162 <<
1163 !ENDIF
1164
1165