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