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