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