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