]> granicus.if.org Git - apache/blob - Makefile.win
Make code match warning message: disable nonce-checking
[apache] / Makefile.win
1 # Makefile for Windows NT and Windows 95/98/2000
2
3 # Targets are:
4 #   _apacher   - build Apache in Release mode
5 #   _apached   - 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 #
13 # The following install defaults may be customized;
14 #
15 #   Option      Default
16 #   INSTDIR     /Apache2x
17 #   PORT        80
18 #   SSLPORT     443
19 #   DOMAINNAME  example.com
20 #   SERVERNAME  www.example.com
21 #   SERVERNAME  admin@example.com
22 #
23 #   ALL         (unset)     Includes additional modules for build testing
24 #
25 # Provide a DBD_LIST argument after configuring LIB and INCLUDE with
26 # the SDK paths of the corresponding client support libraries.
27 # The ODBC driver is always built on Windows
28 #
29 #     DBD_LIST="sqlite3 pgsql oracle mysql freetds"
30 #
31 # Provide a DBM_LIST argument after configuring LIB and INCLUDE with
32 # the SDK paths of the corresponding client support libraries.
33 # The sdbm driver is always built in.
34 #
35 #     DBM_LIST="db gdbm"
36 #
37 # For example;
38 #
39 #   nmake -f Makefile.win PORT=80 INSTDIR="d:\Program Files\Apache" installr
40 #
41 # Be aware that certain awk's will not accept backslashed names,
42 # so the server root should be given in forward slashes (quoted),
43 # preferably with the drive designation!
44
45 !IF EXIST("httpd.vcproj") && ([devenv /help > NUL 2>&1] == 0) \
46     && !defined(USEMAK) && !defined(USEDSW)
47 USESLN=1
48 USEMAK=0
49 USEDSW=0
50 !ELSEIF EXIST("httpd.mak") && !defined(USEDSW)
51 USESLN=0
52 USEMAK=1
53 USEDSW=0
54 !ELSE
55 USESLN=0
56 USEMAK=0
57 USEDSW=1
58 !ENDIF
59
60 default: _apacher
61
62 !IF ("$(CTARGET)" == "") && ($(USESLN) == 1)
63 CTARGET=/build
64 !ENDIF
65
66 !IF !EXIST("srclib\apr") || !EXIST("srclib\apr-util") || !EXIST("srclib\apr-iconv")
67 !MESSAGE Please check out or download and unpack the Apache Portability Runtime
68 !MESSAGE sources (apr, apr-iconv and apr-util) into your srclib dir.
69 !MESSAGE Apache cannot build without these libraries!
70 !MESSAGE 
71 !ERROR Need srclib\  apr, apr-iconv and apr-util
72 !ENDIF
73
74 !IF !EXIST("srclib\pcre")
75 !MESSAGE Please check out or download and unpack the current PCRE library source
76 !MESSAGE under your srclib dir, and compile the pcre.dll with CMake options
77 !MESSAGE BUILD_SHARED_LIBS and CMAKE_BUILD_TYPE RelWithDebInfo.
78 !MESSAGE Apache cannot build without this library!
79 !MESSAGE 
80 !ERROR Need srclib\pcre
81 !ENDIF
82
83
84 # Note; _tryfoo: blocks are used only by the msvc developer studio environment 
85 #       to 'fix up' the build, since conditional dependencies aren't supported.
86 #
87
88 !IF EXIST("srclib\openssl")
89 !IF "$(LONG)" == "Debug" && EXIST("srclib\openssl\out32dll.dbg\openssl.exe")
90 SSLBIN=out32dll.dbg
91 !ELSE
92 SSLBIN=out32dll
93 !ENDIF
94
95 _tryssl:
96 !IF $(USEMAK) == 1
97         cd modules\ssl
98         $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
99         cd ..\..
100         cd support
101         $(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
102         cd ..
103 !ELSEIF $(USESLN) == 1
104         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
105         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
106 !ELSE
107         @msdev Apache.dsw /USEENV /MAKE \
108                 "mod_ssl - Win32 $(LONG)" \
109                 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
110 !ENDIF
111
112 !ELSE
113 #     NOT EXIST("srclib\openssl")
114
115 _tryssl:
116         @echo -----
117         @echo mod_ssl and ab/ssl will not build unless openssl is installed
118         @echo in srclib\openssl.  They must be precompiled using the 
119         @echo ms/ntdll.mak file, see srclib\openssl\INSTALL.W32.  The most
120         @echo recent version confirmed to build with mod_ssl and ab is 0.9.8d.
121         @echo Available from http://www.openssl.org/
122 !ENDIF
123
124
125 !IF EXIST("srclib\zlib")
126
127 _tryzlib:
128 !IF $(USEMAK) == 1
129         cd modules\filters
130         $(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
131         cd ..\..
132 !ELSEIF $(USESLN) == 1
133         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
134 !ELSE
135         @msdev Apache.dsw /USEENV /MAKE \
136                 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
137 !ENDIF
138
139 !ELSE
140 #     NOT EXIST("srclib\zlib")
141
142 _tryzlib:
143         @echo -----
144         @echo mod_deflate will not build unless zlib is installed in srclib\zlib.  
145         @echo Version 1.2.1 and later available from http://www.gzip.org/zlib/
146         @echo built w/ nmake -f win32/Makefile.msc will satisfy this requirement.
147
148 !ENDIF
149
150
151 !IF EXIST("srclib\lua")
152
153 _trylua:
154 !IF $(USEMAK) == 1
155         cd modules\lua
156         $(MAKE) $(MAKEOPT) -f mod_lua.mak CFG="mod_lua - Win32 $(LONG)" RECURSE=0 $(CTARGET)
157         cd ..\..
158 !ELSEIF $(USESLN) == 1
159         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_lua
160 !ELSE
161         @msdev Apache.dsw /USEENV /MAKE \
162                 "mod_lua - Win32 $(LONG)" /NORECURSE $(CTARGET)
163 !ENDIF
164
165 !ELSE
166 #     NOT EXIST("srclib\lua")
167
168 _trylua:
169         @echo -----
170         @echo mod_lua will not build unless lua is installed in srclib\lua.
171         @echo Version 5.1 includes an etc\luavs.bat that will satisfy this requirement.
172
173 !ENDIF
174
175
176 _trydb:
177 !IF $(USEMAK) == 1
178         cd srclib\apr-util\dbd
179         for %d in (odbc $(DBD_LIST)) do \
180           $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak CFG="apr_dbd_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
181         cd ..\dbm
182         for %d in ($(DBM_LIST) x) do if not %d == x \
183           $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak CFG="apr_dbm_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
184         cd ..\..\..
185 !ELSEIF $(USESLN) == 1
186         for %d in (odbc $(DBD_LIST)) do \
187           devenv Apache.sln /useenv $(CTARGET) $(LONG) /project apr_dbd_%d
188         for %d in ($(DBM_LIST) x) do if not %d == x \
189           devenv Apache.sln /useenv $(CTARGET) $(LONG) /project apr_dbm_%d
190 !ELSE
191         @for %d in (odbc $(DBD_LIST)) do \
192           msdev Apache.dsw /USEENV /MAKE \
193                 "apr_dbd_%d - Win32 $(LONG)" /NORECURSE $(CTARGET)
194         @for %d in ($(DBM_LIST) x) do if not %d == x \
195           msdev Apache.dsw /USEENV /MAKE \
196                 "apr_dbm_%d - Win32 $(LONG)" /NORECURSE $(CTARGET)
197 !ENDIF
198
199
200 !IF "$(INSTDIR)" == ""
201 INSTDIR=\Apache2x
202 !ENDIF
203 !IF "$(DOMAINNAME)" == ""
204 DOMAINNAME=example.com
205 !ENDIF 
206 !IF "$(SERVERNAME)" == ""
207 SERVERNAME=www.$(DOMAINNAME)
208 !ENDIF
209 !IF "$(SERVERADMIN)" == ""
210 SERVERADMIN=admin@$(DOMAINNAME)
211 !ENDIF
212 !IF "$(PORT)" == ""
213 PORT=80
214 !ENDIF 
215 !IF "$(SSLPORT)" == ""
216 SSLPORT=443
217 !ENDIF 
218
219 !IF "$(LONG)" == ""
220 !MESSAGE
221 !MESSAGE INSTDIR     = $(INSTDIR)
222 !MESSAGE DOMAINNAME  = $(DOMAINNAME)
223 !MESSAGE SERVERNAME  = $(SERVERNAME)
224 !MESSAGE SERVERADMIN = $(SERVERADMIN)
225 !MESSAGE PORT        = $(PORT)
226 !IF EXIST("srclib\openssl")
227 !MESSAGE SSLPORT     = $(SSLPORT)
228 !ENDIF
229 !MESSAGE
230 !MESSAGE To change these options use 'nmake -f Makefile.win [option=value]'
231 !MESSAGE Example: nmake -f Makefile.win PORT=8080
232 !MESSAGE
233 !MESSAGE
234 !ENDIF
235
236 !IFNDEF MAKEOPT
237 # Only default the behavior if MAKEOPT= is omitted
238 !IFDEF _NMAKE_VER
239 # Microsoft NMake options
240 MAKEOPT=-nologo
241 !ELSEIF "$(MAKE)" == "make"
242 # Borland make options?  Not really supported (yet)
243 MAKEOPT=-s -N
244 !ENDIF
245 !ENDIF
246
247 _dummy:
248
249 _browse:
250         cd Browse
251           bscmake.exe -nologo -Iu -o Apache.bsc *.sbr
252         cd ..
253
254 _apacher: 
255         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build
256
257 _apached: 
258         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build
259
260 installr: 
261         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install
262
263 installd: 
264         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build _install
265
266 clean:  _cleanr _cleand
267         -if exist Browse\. rd /s Browse < << > nul
268 y
269 <<
270
271 !IF $(USEMAK) == 1
272
273 _cleanr:
274         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
275
276 _cleand:  
277         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET=CLEAN _build
278
279 _build:
280         echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
281         cd srclib\apr
282          $(MAKE) $(MAKEOPT) -f apr.mak             CFG="apr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
283          $(MAKE) $(MAKEOPT) -f libapr.mak          CFG="libapr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
284         cd ..\..
285         cd srclib\apr-iconv
286          $(MAKE) $(MAKEOPT) -f apriconv.mak  CFG="apriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
287          $(MAKE) $(MAKEOPT) -f libapriconv.mak  CFG="libapriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
288 !IF "$(CTARGET)" == "CLEAN"
289         $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
290                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
291 !ELSE
292         cd ccs
293         $(MAKE) $(MAKEOPT) -f Makefile.win all \
294                 BUILD_MODE=$(LONG) BIND_MODE=shared
295         cd ..\ces
296         $(MAKE) $(MAKEOPT) -f Makefile.win all \
297                 BUILD_MODE=$(LONG) BIND_MODE=shared
298         cd ..
299 !ENDIF
300         cd ..\..
301         cd srclib\apr-util\xml\expat\lib
302          $(MAKE) $(MAKEOPT) -f xml.mak             CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET)
303         cd ..\..\..
304          $(MAKE) $(MAKEOPT) -f aprutil.mak         CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
305          $(MAKE) $(MAKEOPT) -f libaprutil.mak      CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
306         cd ldap
307          $(MAKE) $(MAKEOPT) -f apr_ldap.mak        CFG="apr_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
308         cd ..
309         cd dbd
310           for %d in (odbc $(DBD_LIST)) do \
311             $(MAKE) $(MAKEOPT) -f apr_dbd_%d.mak   CFG="apr_dbd_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
312         cd ..
313         cd dbm
314           for %d in ($(DBM_LIST) x) do if not %d == x \
315             $(MAKE) $(MAKEOPT) -f apr_dbm_%d.mak   CFG="apr_dbm_%d - Win32 $(LONG)" RECURSE=0 $(CTARGET)
316         cd ..
317         cd ..\..
318         cd server
319          $(MAKE) $(MAKEOPT) -f gen_test_char.mak   CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET)
320         cd ..
321          $(MAKE) $(MAKEOPT) -f libhttpd.mak        CFG="libhttpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
322          $(MAKE) $(MAKEOPT) -f httpd.mak           CFG="httpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
323 # build ldap prior to authnz_ldap
324         cd modules\ldap
325          $(MAKE) $(MAKEOPT) -f mod_ldap.mak        CFG="mod_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
326         cd ..\..
327         cd modules\database
328          $(MAKE) $(MAKEOPT) -f mod_dbd.mak         CFG="mod_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
329         cd ..\..
330         cd modules\aaa
331          $(MAKE) $(MAKEOPT) -f mod_access_compat.mak CFG="mod_access_compat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
332          $(MAKE) $(MAKEOPT) -f mod_auth_basic.mak  CFG="mod_auth_basic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
333          $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
334          $(MAKE) $(MAKEOPT) -f mod_auth_form.mak   CFG="mod_auth_form - Win32 $(LONG)" RECURSE=0 $(CTARGET)
335          $(MAKE) $(MAKEOPT) -f mod_authn_anon.mak  CFG="mod_authn_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
336          $(MAKE) $(MAKEOPT) -f mod_authn_core.mak  CFG="mod_authn_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
337          $(MAKE) $(MAKEOPT) -f mod_authn_dbd.mak   CFG="mod_authn_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
338          $(MAKE) $(MAKEOPT) -f mod_authn_dbm.mak   CFG="mod_authn_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
339          $(MAKE) $(MAKEOPT) -f mod_authn_file.mak  CFG="mod_authn_file - Win32 $(LONG)" RECURSE=0 $(CTARGET)
340          $(MAKE) $(MAKEOPT) -f mod_authnz_ldap.mak CFG="mod_authnz_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
341          $(MAKE) $(MAKEOPT) -f mod_authz_core.mak  CFG="mod_authz_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
342          $(MAKE) $(MAKEOPT) -f mod_authz_dbd.mak   CFG="mod_authz_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
343          $(MAKE) $(MAKEOPT) -f mod_authz_dbm.mak   CFG="mod_authz_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
344          $(MAKE) $(MAKEOPT) -f mod_authz_groupfile.mak CFG="mod_authz_groupfile - Win32 $(LONG)" RECURSE=0 $(CTARGET)
345          $(MAKE) $(MAKEOPT) -f mod_authz_host.mak  CFG="mod_authz_host - Win32 $(LONG)" RECURSE=0 $(CTARGET)
346          $(MAKE) $(MAKEOPT) -f mod_authz_owner.mak CFG="mod_authz_owner - Win32 $(LONG)" RECURSE=0 $(CTARGET)
347          $(MAKE) $(MAKEOPT) -f mod_authz_user.mak  CFG="mod_authz_user - Win32 $(LONG)" RECURSE=0 $(CTARGET)
348         cd ..\..
349         cd modules\arch\win32
350          $(MAKE) $(MAKEOPT) -f mod_isapi.mak       CFG="mod_isapi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
351         cd ..\..\..
352         cd modules\cache
353          $(MAKE) $(MAKEOPT) -f mod_cache.mak       CFG="mod_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
354          $(MAKE) $(MAKEOPT) -f mod_file_cache.mak  CFG="mod_file_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
355          $(MAKE) $(MAKEOPT) -f mod_disk_cache.mak  CFG="mod_disk_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
356          $(MAKE) $(MAKEOPT) -f mod_socache_dbm.mak CFG="mod_socache_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
357 #        $(MAKE) $(MAKEOPT) -f mod_socache_dc.mak  CFG="mod_socache_dc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
358          $(MAKE) $(MAKEOPT) -f mod_socache_memcache.mak CFG="mod_socache_memcache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
359          $(MAKE) $(MAKEOPT) -f mod_socache_shmcb.mak CFG="mod_socache_shmcb - Win32 $(LONG)" RECURSE=0 $(CTARGET)
360         cd ..\..
361         cd modules\core
362          $(MAKE) $(MAKEOPT) -f mod_watchdog.mak    CFG="mod_watchdog - Win32 $(LONG)" RECURSE=0 $(CTARGET)
363         cd ..\..
364         cd modules\cluster
365          $(MAKE) $(MAKEOPT) -f mod_heartbeat.mak   CFG="mod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
366          $(MAKE) $(MAKEOPT) -f mod_heartmonitor.mak CFG="mod_heartmonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
367         cd ..\..
368         cd modules\dav\main
369          $(MAKE) $(MAKEOPT) -f mod_dav.mak         CFG="mod_dav - Win32 $(LONG)" RECURSE=0 $(CTARGET)
370         cd ..\..\..
371         cd modules\dav\fs
372          $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak      CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
373         cd ..\..\..
374         cd modules\dav\lock
375          $(MAKE) $(MAKEOPT) -f mod_dav_lock.mak    CFG="mod_dav_lock - Win32 $(LONG)" RECURSE=0 $(CTARGET)
376         cd ..\..\..
377         cd modules\debugging
378 !IFDEF ALL
379          $(MAKE) $(MAKEOPT) -f mod_bucketeer.mak   CFG="mod_bucketeer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
380 !ENDIF
381          $(MAKE) $(MAKEOPT) -f mod_dumpio.mak      CFG="mod_dumpio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
382         cd ..\..
383         cd modules\echo
384 !IFDEF ALL
385          $(MAKE) $(MAKEOPT) -f mod_echo.mak        CFG="mod_echo - Win32 $(LONG)" RECURSE=0 $(CTARGET)
386 !ENDIF
387         cd ..\..
388 !IFDEF ALL
389         cd modules\examples
390          $(MAKE) $(MAKEOPT) -f mod_case_filter.mak    CFG="mod_case_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
391          $(MAKE) $(MAKEOPT) -f mod_case_filter_in.mak CFG="mod_case_filter_in - Win32 $(LONG)" RECURSE=0 $(CTARGET)
392          $(MAKE) $(MAKEOPT) -f mod_example_hooks.mak  CFG="mod_example_hooks - Win32 $(LONG)" RECURSE=0 $(CTARGET)
393          $(MAKE) $(MAKEOPT) -f mod_example_ipc.mak    CFG="mod_example_ipc - Win32 $(LONG)" RECURSE=0 $(CTARGET)
394         cd ..\..
395 !ENDIF
396         cd modules\filters
397          $(MAKE) $(MAKEOPT) -f mod_buffer.mak      CFG="mod_buffer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
398          $(MAKE) $(MAKEOPT) -f mod_charset_lite.mak CFG="mod_charset_lite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
399 !IF EXIST("srclib\zlib")
400          $(MAKE) $(MAKEOPT) -f mod_deflate.mak     CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
401 !ENDIF
402          $(MAKE) $(MAKEOPT) -f mod_ext_filter.mak  CFG="mod_ext_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
403          $(MAKE) $(MAKEOPT) -f mod_filter.mak      CFG="mod_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
404          $(MAKE) $(MAKEOPT) -f mod_include.mak     CFG="mod_include - Win32 $(LONG)" RECURSE=0 $(CTARGET)
405          $(MAKE) $(MAKEOPT) -f mod_ratelimit.mak   CFG="mod_ratelimit - Win32 $(LONG)" RECURSE=0 $(CTARGET)
406          $(MAKE) $(MAKEOPT) -f mod_request.mak     CFG="mod_request - Win32 $(LONG)" RECURSE=0 $(CTARGET)
407          $(MAKE) $(MAKEOPT) -f mod_sed.mak         CFG="mod_sed - Win32 $(LONG)" RECURSE=0 $(CTARGET)
408          $(MAKE) $(MAKEOPT) -f mod_substitute.mak  CFG="mod_substitute - Win32 $(LONG)" RECURSE=0 $(CTARGET)
409         cd ..\..
410         cd modules\generators
411          $(MAKE) $(MAKEOPT) -f mod_asis.mak        CFG="mod_asis - Win32 $(LONG)" RECURSE=0 $(CTARGET)
412          $(MAKE) $(MAKEOPT) -f mod_autoindex.mak   CFG="mod_autoindex - Win32 $(LONG)" RECURSE=0 $(CTARGET)
413          $(MAKE) $(MAKEOPT) -f mod_cgi.mak         CFG="mod_cgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
414          $(MAKE) $(MAKEOPT) -f mod_info.mak        CFG="mod_info - Win32 $(LONG)" RECURSE=0 $(CTARGET)
415          $(MAKE) $(MAKEOPT) -f mod_status.mak      CFG="mod_status - Win32 $(LONG)" RECURSE=0 $(CTARGET)
416         cd ..\..
417         cd modules\http
418          $(MAKE) $(MAKEOPT) -f mod_mime.mak        CFG="mod_mime - Win32 $(LONG)" RECURSE=0 $(CTARGET)
419         cd ..\..
420         cd modules\loggers
421          $(MAKE) $(MAKEOPT) -f mod_log_config.mak  CFG="mod_log_config - Win32 $(LONG)" RECURSE=0 $(CTARGET)
422          $(MAKE) $(MAKEOPT) -f mod_log_forensic.mak CFG="mod_log_forensic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
423          $(MAKE) $(MAKEOPT) -f mod_logio.mak       CFG="mod_logio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
424         cd ..\..
425 !IF EXIST("srclib\lua")
426         cd modules\lua
427          $(MAKE) $(MAKEOPT) -f mod_lua.mak         CFG="mod_lua - Win32 $(LONG)" RECURSE=0 $(CTARGET)
428         cd ..\..
429 !ENDIF
430         cd modules\mappers
431          $(MAKE) $(MAKEOPT) -f mod_actions.mak     CFG="mod_actions - Win32 $(LONG)" RECURSE=0 $(CTARGET)
432          $(MAKE) $(MAKEOPT) -f mod_alias.mak       CFG="mod_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
433          $(MAKE) $(MAKEOPT) -f mod_dir.mak         CFG="mod_dir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
434          $(MAKE) $(MAKEOPT) -f mod_imagemap.mak    CFG="mod_imagemap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
435          $(MAKE) $(MAKEOPT) -f mod_negotiation.mak CFG="mod_negotiation - Win32 $(LONG)" RECURSE=0 $(CTARGET)
436          $(MAKE) $(MAKEOPT) -f mod_rewrite.mak     CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
437          $(MAKE) $(MAKEOPT) -f mod_speling.mak     CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
438          $(MAKE) $(MAKEOPT) -f mod_userdir.mak     CFG="mod_userdir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
439          $(MAKE) $(MAKEOPT) -f mod_vhost_alias.mak CFG="mod_vhost_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
440         cd ..\..
441         cd modules\metadata
442          $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak   CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
443          $(MAKE) $(MAKEOPT) -f mod_env.mak         CFG="mod_env - Win32 $(LONG)" RECURSE=0 $(CTARGET)
444          $(MAKE) $(MAKEOPT) -f mod_expires.mak     CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
445          $(MAKE) $(MAKEOPT) -f mod_headers.mak     CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
446          $(MAKE) $(MAKEOPT) -f mod_ident.mak       CFG="mod_ident - Win32 $(LONG)" RECURSE=0 $(CTARGET)
447          $(MAKE) $(MAKEOPT) -f mod_mime_magic.mak  CFG="mod_mime_magic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
448          $(MAKE) $(MAKEOPT) -f mod_remoteip.mak    CFG="mod_remoteip - Win32 $(LONG)" RECURSE=0 $(CTARGET)
449          $(MAKE) $(MAKEOPT) -f mod_setenvif.mak    CFG="mod_setenvif - Win32 $(LONG)" RECURSE=0 $(CTARGET)
450          $(MAKE) $(MAKEOPT) -f mod_unique_id.mak   CFG="mod_unique_id - Win32 $(LONG)" RECURSE=0 $(CTARGET)
451          $(MAKE) $(MAKEOPT) -f mod_usertrack.mak   CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
452          $(MAKE) $(MAKEOPT) -f mod_version.mak     CFG="mod_version - Win32 $(LONG)" RECURSE=0 $(CTARGET)
453         cd ..\..
454         cd modules\proxy
455          $(MAKE) $(MAKEOPT) -f mod_proxy.mak       CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
456          $(MAKE) $(MAKEOPT) -f mod_proxy_ajp.mak   CFG="mod_proxy_ajp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
457          $(MAKE) $(MAKEOPT) -f mod_proxy_balancer.mak  CFG="mod_proxy_balancer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
458          $(MAKE) $(MAKEOPT) -f mod_proxy_connect.mak CFG="mod_proxy_connect - Win32 $(LONG)" RECURSE=0 $(CTARGET)
459          $(MAKE) $(MAKEOPT) -f mod_proxy_fcgi.mak  CFG="mod_proxy_fcgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
460          $(MAKE) $(MAKEOPT) -f mod_proxy_ftp.mak   CFG="mod_proxy_ftp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
461          $(MAKE) $(MAKEOPT) -f mod_proxy_http.mak  CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
462         cd ..\..
463         cd modules\proxy\balancers
464          $(MAKE) $(MAKEOPT) -f mod_lbmethod_bybusyness.mak CFG="mod_lbmethod_bybusyness - Win32 $(LONG)" RECURSE=0 $(CTARGET)
465          $(MAKE) $(MAKEOPT) -f mod_lbmethod_byrequests.mak CFG="mod_lbmethod_byrequests - Win32 $(LONG)" RECURSE=0 $(CTARGET)
466          $(MAKE) $(MAKEOPT) -f mod_lbmethod_bytraffic.mak  CFG="mod_lbmethod_bytraffic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
467          $(MAKE) $(MAKEOPT) -f mod_lbmethod_heartbeat.mak  CFG="mod_lbmethod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
468         cd ..\..\..
469 !IFDEF ALL
470         cd modules\proxy\examples
471          $(MAKE) $(MAKEOPT) -f mod_lbmethod_rr.mak CFG="mod_lbmethod_rr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
472         cd ..\..\..
473 !ENDIF
474         cd modules\session
475          $(MAKE) $(MAKEOPT) -f mod_session.mak        CFG="mod_session - Win32 $(LONG)" RECURSE=0 $(CTARGET)
476          $(MAKE) $(MAKEOPT) -f mod_session_cookie.mak CFG="mod_session_cookie - Win32 $(LONG)" RECURSE=0 $(CTARGET)
477          $(MAKE) $(MAKEOPT) -f mod_session_dbd.mak    CFG="mod_session_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
478         cd ..\..
479 !IF EXIST("srclib\openssl")
480         #cd modules\session
481         # $(MAKE) $(MAKEOPT) -f mod_session_crypto.mak CFG="mod_session_crypto - Win32 $(LONG)" RECURSE=0 $(CTARGET)
482         #cd ..\..
483         cd modules\ssl
484          $(MAKE) $(MAKEOPT) -f mod_ssl.mak         CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
485         cd ..\..
486         cd support
487          $(MAKE) $(MAKEOPT) -f abs.mak             CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
488         cd ..
489 !ENDIF
490         cd support
491          $(MAKE) $(MAKEOPT) -f ab.mak              CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
492 #        $(MAKE) $(MAKEOPT) -f fcgistarter.mak     CFG="fcgistarter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
493          $(MAKE) $(MAKEOPT) -f htcacheclean.mak    CFG="htcacheclean - Win32 $(LONG)" RECURSE=0 $(CTARGET)
494          $(MAKE) $(MAKEOPT) -f htdbm.mak           CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
495          $(MAKE) $(MAKEOPT) -f htdigest.mak        CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
496          $(MAKE) $(MAKEOPT) -f htpasswd.mak        CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
497          $(MAKE) $(MAKEOPT) -f httxt2dbm.mak       CFG="httxt2dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
498          $(MAKE) $(MAKEOPT) -f logresolve.mak      CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
499          $(MAKE) $(MAKEOPT) -f rotatelogs.mak      CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
500         cd ..
501         cd support\win32
502          $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak   CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
503          $(MAKE) $(MAKEOPT) -f wintty.mak          CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
504         cd ..\..
505
506 !ELSEIF $(USESLN) == 1
507
508 _cleanr:  
509         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
510
511 _cleand:  
512         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/clean" _build
513
514 _build:
515         echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
516 !IFDEF ALL
517         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildAll
518 !ELSE
519         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildBin
520 !ENDIF
521 !IF EXIST("srclib\openssl")
522         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
523         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
524 !ENDIF
525 !IF EXIST("srclib\zlib")
526         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
527 !ENDIF
528 !IF EXIST("srclib\lua")
529         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_lua
530 !ENDIF
531
532 !ELSE
533
534 _cleanr:  
535         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
536
537 _cleand:  
538         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/CLEAN" _build
539
540 _build:
541         @echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
542 !IFDEF ALL
543         @msdev Apache.dsw /USEENV /MAKE \
544                 "BuildAll - Win32 $(LONG)" $(CTARGET)
545 !ELSE
546         @msdev Apache.dsw /USEENV /MAKE \
547                 "BuildBin - Win32 $(LONG)" $(CTARGET)
548 !ENDIF
549 !IF "$(CTARGET)" == "/CLEAN"
550         @cd srclib\apr-iconv
551         @$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
552                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
553         @cd ..\..
554 !ENDIF
555 !IF EXIST("srclib\openssl")
556         @msdev Apache.dsw /USEENV /MAKE \
557                 "mod_ssl - Win32 $(LONG)" \
558                 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
559 !ENDIF
560 !IF EXIST("srclib\zlib")
561         @msdev Apache.dsw /USEENV /MAKE \
562                 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
563 !ENDIF
564 !IF EXIST("srclib\lua")
565         @msdev Apache.dsw /USEENV /MAKE \
566                 "mod_lua - Win32 $(LONG)" /NORECURSE $(CTARGET)
567 !ENDIF
568
569 !ENDIF
570
571
572 _copybin:
573         copy $(LONG)\httpd.$(src_exe)                           "$(inst_exe)" <.y
574         copy $(LONG)\libhttpd.$(src_dll)                        "$(inst_dll)" <.y
575         copy srclib\apr\$(LONG)\libapr-1.$(src_dll)             "$(inst_dll)" <.y
576         copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll)  "$(inst_dll)" <.y
577         copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll)    "$(inst_dll)" <.y
578         copy srclib\apr-util\ldap\$(LONG)\apr_ldap-1.$(src_dll) "$(inst_dll)" <.y
579         for %d in (odbc $(DBD_LIST)) do ( \
580           copy srclib\apr-util\dbd\$(LONG)\apr_dbd_%d-1.$(src_dll) "$(inst_dll)" <.y \
581         )
582         for %d in ($(DBM_LIST) x) do if not %d == x ( \
583           copy srclib\apr-util\dbm\$(LONG)\apr_dbm_%d-1.$(src_dll) "$(inst_dll)" <.y \
584         )
585         copy srclib\pcre\pcre.$(src_dll)                        "$(inst_dll)" <.y
586         copy modules\aaa\$(LONG)\mod_access_compat.$(src_so)    "$(inst_so)" <.y
587         copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so)       "$(inst_so)" <.y
588         copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so)      "$(inst_so)" <.y
589         copy modules\aaa\$(LONG)\mod_auth_form.$(src_so)        "$(inst_so)" <.y
590         copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so)       "$(inst_so)" <.y
591         copy modules\aaa\$(LONG)\mod_authn_core.$(src_so)       "$(inst_so)" <.y
592         copy modules\aaa\$(LONG)\mod_authn_dbd.$(src_so)        "$(inst_so)" <.y
593         copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so)        "$(inst_so)" <.y
594         copy modules\aaa\$(LONG)\mod_authn_file.$(src_so)       "$(inst_so)" <.y
595         copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so)      "$(inst_so)" <.y
596         copy modules\aaa\$(LONG)\mod_authz_core.$(src_so)       "$(inst_so)" <.y
597         copy modules\aaa\$(LONG)\mod_authz_dbd.$(src_so)        "$(inst_so)" <.y
598         copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so)        "$(inst_so)" <.y
599         copy modules\aaa\$(LONG)\mod_authz_core.$(src_so)       "$(inst_so)" <.y
600         copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so)  "$(inst_so)" <.y
601         copy modules\aaa\$(LONG)\mod_authz_host.$(src_so)       "$(inst_so)" <.y
602         copy modules\aaa\$(LONG)\mod_authz_owner.$(src_so)      "$(inst_so)" <.y
603         copy modules\aaa\$(LONG)\mod_authz_user.$(src_so)       "$(inst_so)" <.y
604         copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so)     "$(inst_so)" <.y
605         copy modules\cache\$(LONG)\mod_cache.$(src_so)          "$(inst_so)" <.y
606         copy modules\cache\$(LONG)\mod_file_cache.$(src_so)     "$(inst_so)" <.y
607         copy modules\cache\$(LONG)\mod_disk_cache.$(src_so)     "$(inst_so)" <.y
608         copy modules\cache\$(LONG)\mod_socache_dbm.$(src_so)    "$(inst_so)" <.y
609 #       copy modules\cache\$(LONG)\mod_socache_dc.$(src_so)     "$(inst_so)" <.y
610         copy modules\cache\$(LONG)\mod_socache_memcache.$(src_so) "$(inst_so)" <.y
611         copy modules\cache\$(LONG)\mod_socache_shmcb.$(src_so)  "$(inst_so)" <.y
612         copy modules\core\$(LONG)\mod_watchdog.$(src_so)        "$(inst_so)" <.y
613         copy modules\cluster\$(LONG)\mod_heartbeat.$(src_so)    "$(inst_so)" <.y
614         copy modules\cluster\$(LONG)\mod_heartmonitor.$(src_so) "$(inst_so)" <.y
615         copy modules\database\$(LONG)\mod_dbd.$(src_so)         "$(inst_so)" <.y
616         copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so)        "$(inst_so)" <.y
617         copy modules\dav\lock\$(LONG)\mod_dav_lock.$(src_so)    "$(inst_so)" <.y
618         copy modules\dav\main\$(LONG)\mod_dav.$(src_so)         "$(inst_so)" <.y
619 !IFDEF ALL
620         copy modules\debugging\$(LONG)\mod_bucketeer.$(src_so)  "$(inst_so)" <.y
621 !ENDIF
622         copy modules\debugging\$(LONG)\mod_dumpio.$(src_so)     "$(inst_so)" <.y
623 !IFDEF ALL
624         copy modules\echo\$(LONG)\mod_echo.$(src_so)            "$(inst_so)" <.y
625         copy modules\examples\$(LONG)\mod_case_filter.$(src_so)    "$(inst_so)" <.y
626         copy modules\examples\$(LONG)\mod_case_filter_in.$(src_so) "$(inst_so)" <.y
627         copy modules\examples\$(LONG)\mod_example_hooks.$(src_so)  "$(inst_so)" <.y
628         copy modules\examples\$(LONG)\mod_example_ipc.$(src_so)    "$(inst_so)" <.y
629 !ENDIF
630         copy modules\filters\$(LONG)\mod_buffer.$(src_so)       "$(inst_so)" <.y
631         copy modules\filters\$(LONG)\mod_charset_lite.$(src_so) "$(inst_so)" <.y
632 !IF EXIST("srclib\zlib")
633         copy modules\filters\$(LONG)\mod_deflate.$(src_so)      "$(inst_so)" <.y
634 !IF EXIST("srclib\zlib\zlib1.$(src_dll)")
635         copy srclib\zlib\zlib1.$(src_dll)                       "$(inst_dll)" <.y
636 !ENDIF
637 !ENDIF
638         copy modules\filters\$(LONG)\mod_ext_filter.$(src_so)   "$(inst_so)" <.y
639         copy modules\filters\$(LONG)\mod_filter.$(src_so)       "$(inst_so)" <.y
640         copy modules\filters\$(LONG)\mod_include.$(src_so)      "$(inst_so)" <.y
641         copy modules\filters\$(LONG)\mod_ratelimit.$(src_so)    "$(inst_so)" <.y
642         copy modules\filters\$(LONG)\mod_request.$(src_so)      "$(inst_so)" <.y
643         copy modules\filters\$(LONG)\mod_sed.$(src_so)          "$(inst_so)" <.y
644         copy modules\filters\$(LONG)\mod_substitute.$(src_so)   "$(inst_so)" <.y
645         copy modules\generators\$(LONG)\mod_asis.$(src_so)      "$(inst_so)" <.y
646         copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
647         copy modules\generators\$(LONG)\mod_cgi.$(src_so)       "$(inst_so)" <.y
648         copy modules\generators\$(LONG)\mod_info.$(src_so)      "$(inst_so)" <.y
649         copy modules\generators\$(LONG)\mod_status.$(src_so)    "$(inst_so)" <.y
650         copy modules\http\$(LONG)\mod_mime.$(src_so)            "$(inst_so)" <.y
651         copy modules\ldap\$(LONG)\mod_ldap.$(src_so)            "$(inst_so)" <.y
652         copy modules\loggers\$(LONG)\mod_log_config.$(src_so)   "$(inst_so)" <.y
653         copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
654         copy modules\loggers\$(LONG)\mod_logio.$(src_so)        "$(inst_so)" <.y
655 !IF EXIST("srclib\lua")
656         copy modules\lua\$(LONG)\mod_lua.$(src_so)              "$(inst_so)" <.y
657 !IF EXIST("srclib\lua\src\lua51.$(src_dll)")
658         copy srclib\lua\src\lua51.$(src_dll)                    "$(inst_dll)" <.y
659 !ENDIF
660 !ENDIF
661         copy modules\mappers\$(LONG)\mod_actions.$(src_so)      "$(inst_so)" <.y
662         copy modules\mappers\$(LONG)\mod_alias.$(src_so)        "$(inst_so)" <.y
663         copy modules\mappers\$(LONG)\mod_dir.$(src_so)          "$(inst_so)" <.y
664         copy modules\mappers\$(LONG)\mod_imagemap.$(src_so)     "$(inst_so)" <.y
665         copy modules\mappers\$(LONG)\mod_negotiation.$(src_so)  "$(inst_so)" <.y
666         copy modules\mappers\$(LONG)\mod_rewrite.$(src_so)      "$(inst_so)" <.y
667         copy modules\mappers\$(LONG)\mod_speling.$(src_so)      "$(inst_so)" <.y
668         copy modules\mappers\$(LONG)\mod_userdir.$(src_so)      "$(inst_so)" <.y
669         copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so)  "$(inst_so)" <.y
670         copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so)   "$(inst_so)" <.y
671         copy modules\metadata\$(LONG)\mod_env.$(src_so)         "$(inst_so)" <.y
672         copy modules\metadata\$(LONG)\mod_expires.$(src_so)     "$(inst_so)" <.y
673         copy modules\metadata\$(LONG)\mod_headers.$(src_so)     "$(inst_so)" <.y
674         copy modules\metadata\$(LONG)\mod_ident.$(src_so)       "$(inst_so)" <.y
675         copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so)  "$(inst_so)" <.y
676         copy modules\metadata\$(LONG)\mod_remoteip.$(src_so)    "$(inst_so)" <.y
677         copy modules\metadata\$(LONG)\mod_setenvif.$(src_so)    "$(inst_so)" <.y
678         copy modules\metadata\$(LONG)\mod_unique_id.$(src_so)   "$(inst_so)" <.y
679         copy modules\metadata\$(LONG)\mod_usertrack.$(src_so)   "$(inst_so)" <.y
680         copy modules\metadata\$(LONG)\mod_version.$(src_so)     "$(inst_so)" <.y
681         copy modules\proxy\$(LONG)\mod_proxy.$(src_so)          "$(inst_so)" <.y
682         copy modules\proxy\$(LONG)\mod_proxy_ajp.$(src_so)      "$(inst_so)" <.y
683         copy modules\proxy\$(LONG)\mod_proxy_balancer.$(src_so) "$(inst_so)" <.y
684         copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so)  "$(inst_so)" <.y
685         copy modules\proxy\$(LONG)\mod_proxy_fcgi.$(src_so)     "$(inst_so)" <.y
686         copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so)      "$(inst_so)" <.y
687         copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so)     "$(inst_so)" <.y
688         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bybusyness.$(src_so) "$(inst_so)" <.y
689         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_byrequests.$(src_so) "$(inst_so)" <.y
690         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bytraffic.$(src_so)  "$(inst_so)" <.y
691         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_heartbeat.$(src_so)  "$(inst_so)" <.y
692 !IFDEF ALL
693         copy modules\proxy\examples\$(LONG)\mod_lbmethod_rr.$(src_so) "$(inst_so)" <.y
694 !ENDIF
695         copy modules\session\$(LONG)\mod_session.$(src_so)        "$(inst_so)" <.y
696         copy modules\session\$(LONG)\mod_session_cookie.$(src_so) "$(inst_so)" <.y
697         copy modules\session\$(LONG)\mod_session_dbd.$(src_so)    "$(inst_so)" <.y
698 !IF EXIST("srclib\openssl")
699 #       copy modules\session\$(LONG)\mod_session_crypto.$(src_so) "$(inst_so)" <.y
700         copy modules\ssl\$(LONG)\mod_ssl.$(src_so)              "$(inst_so)" <.y
701         -copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll)      "$(inst_dll)" <.y
702         -copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll)      "$(inst_dll)" <.y
703         -copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe)       "$(inst_exe)" <.y
704         copy support\$(LONG)\abs.$(src_exe)                     "$(inst_exe)" <.y
705 !ENDIF
706         copy support\$(LONG)\ab.$(src_exe)                      "$(inst_exe)" <.y
707 #       copy support\$(LONG)\fcgistarter.$(src_exe)             "$(inst_exe)" <.y
708         copy support\$(LONG)\htcacheclean.$(src_exe)            "$(inst_exe)" <.y
709         copy support\$(LONG)\htdbm.$(src_exe)                   "$(inst_exe)" <.y
710         copy support\$(LONG)\htdigest.$(src_exe)                "$(inst_exe)" <.y
711         copy support\$(LONG)\htpasswd.$(src_exe)                "$(inst_exe)" <.y
712         copy support\$(LONG)\httxt2dbm.$(src_exe)               "$(inst_exe)" <.y
713         copy support\$(LONG)\logresolve.$(src_exe)              "$(inst_exe)" <.y
714         copy support\$(LONG)\rotatelogs.$(src_exe)              "$(inst_exe)" <.y
715         copy support\win32\$(LONG)\ApacheMonitor.$(src_exe)     "$(inst_exe)" <.y
716         copy support\win32\$(LONG)\wintty.$(src_exe)            "$(inst_exe)" <.y
717
718
719 # First we create the tree and populate the README so that 
720 # whatever happens, all licensing has already propagated.  
721 # Then repeatedly invoke the _copybin build to copy the
722 # real binaries, then pdb symbols, anf finally dbg syms.
723 # Then hit docs of various sorts, then includes and libs,
724 # and finally do the .conf magic.
725 #
726 _install:
727         echo Y >.y
728         echo A >.A
729         -mkdir "$(INSTDIR)"
730         -mkdir "$(INSTDIR)\bin"
731         -mkdir "$(INSTDIR)\bin\iconv"
732         -mkdir "$(INSTDIR)\cgi-bin"
733         -mkdir "$(INSTDIR)\conf"
734         -mkdir "$(INSTDIR)\conf\extra"
735         -mkdir "$(INSTDIR)\conf\original"
736         -mkdir "$(INSTDIR)\conf\original\extra"
737         -mkdir "$(INSTDIR)\error"
738         -mkdir "$(INSTDIR)\htdocs"
739         -mkdir "$(INSTDIR)\manual"
740         -mkdir "$(INSTDIR)\icons"
741         -mkdir "$(INSTDIR)\include"
742         -mkdir "$(INSTDIR)\lib"
743         -mkdir "$(INSTDIR)\logs"
744         -mkdir "$(INSTDIR)\modules"
745         -mkdir "$(INSTDIR)\symbols"
746         -mkdir "$(INSTDIR)\symbols\exe"
747         -mkdir "$(INSTDIR)\symbols\dll"
748         -mkdir "$(INSTDIR)\symbols\so"
749         copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
750         copy CHANGES      "$(INSTDIR)\CHANGES.txt" <.y
751         copy INSTALL      "$(INSTDIR)\INSTALL.txt" <.y
752         copy LICENSE      "$(INSTDIR)\LICENSE.txt" <.y
753         copy NOTICE       "$(INSTDIR)\NOTICE.txt" <.y
754         copy README       "$(INSTDIR)\README.txt" <.y
755         type << >> "$(INSTDIR)\NOTICE.txt"
756
757 Regular expression support is provided by the PCRE library package,
758 which is open source software, written by Philip Hazel, and copyright
759 by the University of Cambridge, England. The original software is
760 available from
761   ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
762 <<
763         -awk -f <<script1.awk < "srclib\pcre\LICENCE" >> "$(INSTDIR)\LICENSE.txt"
764 BEGIN {
765     print "";
766     print "For the pcre.dll component:";
767     print "";
768     while ( getline > 0 ) {
769         if ( $$0 ~ /^End$$/ ) $$0 = "END OF PCRE LICENSE";
770         print $$0;
771    }
772 }
773 <<
774 !IF EXIST("srclib\openssl")
775         -copy srclib\openssl\apps\openssl.cnf "$(INSTDIR)\conf\openssl.cnf" <.y
776         type << >> "$(INSTDIR)\NOTICE.txt"
777
778 This binary distribution includes cryptographic software written by
779 Eric Young (eay@cryptsoft.com), software written by Tim Hudson 
780 (tjh@cryptsoft.com), and software developed by the OpenSSL Project 
781 for use in the OpenSSL Toolkit <http://www.openssl.org/>.
782 <<
783         -awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
784 BEGIN {
785     print "";
786     print "For the libeay32.dll, ssleay32.dll and openssl.exe components:";
787     print "";
788     while ( getline > 0 ) {
789         print $$0;
790    }
791 }
792 <<
793         copy << "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
794
795  Apache HTTP Server 2.3 Limited OpenSSL Distribution
796
797  This binary distribution includes the minimal components of OpenSSL required
798  to support mod_ssl for Apache HTTP Server version 2.3 (details are listed 
799  in OPENSSL-README.txt.)  For the complete list of CHANGES to this and later 
800  versions of OpenSSL, please refer to the definative source,
801  <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
802  full binary or source distribution package from <http://www.openssl.org/>.
803
804  These OpenSSL binaries were built for distribution from the U.S. without 
805  support for the patented encryption methods IDEA, MDC-2 or RC5.
806
807 --------------------------------------------------------------------------------
808
809 <<
810         -copy "$(INSTDIR)\OPENSSL-NEWS.txt" \
811             + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt"
812         copy << "$(INSTDIR)\OPENSSL-README.txt" <.y
813
814  Apache HTTP Server 2.3 Limited OpenSSL Distribution
815
816  This binary installation of OpenSSL is a limited distribution of the
817  files derived from the OpenSSL project:
818
819    LICENSE.txt (includes openssl LICENSE)
820    OPENSSL-NEWS.txt
821    OPENSSL-README.txt
822    conf\openssl.cnf
823    bin\libeay32.dll
824    bin\ssleay32.dll
825    bin\openssl.exe
826
827  These are the minimal libraries and tools required to use mod_ssl as 
828  distributed with Apache HTTP Server version 2.3.  No library link files, 
829  headers or sources are distributed with this binary distribution.  Please 
830  refer to the <http://www.openssl.org/> site for complete source or binary 
831  distributions.
832
833  These OpenSSL binaries were built for distribution from the U.S. without 
834  support for the patented encryption methods IDEA, MDC-2 or RC5.
835
836  The Apache HTTP Project only supports the binary distribution of these files
837  and development of the mod_ssl module.  We cannot provide support assistance
838  for using or configuring the OpenSSL package or these modules.  Please refer
839  all installation and configuration questions to the appropriate forum,
840  such as the user supported lists, <http://httpd.apache.org/userslist.html> 
841  the Apache HTTP Server user's list or <http://www.openssl.org/support/> the
842  OpenSSL support page.
843
844 --------------------------------------------------------------------------------
845
846 <<
847         -copy "$(INSTDIR)\OPENSSL-README.txt" \
848             + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt"
849 !ENDIF
850 !IF EXIST("srclib\zlib")
851         type << >> "$(INSTDIR)\NOTICE.txt"
852
853 This binary distribution of mod_deflate.so includes zlib compression code
854 <http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
855 and Mark Adler (madler@alumni.caltech.edu) .
856 <<
857         -awk -f <<script.awk < "srclib\zlib\README" >> "$(INSTDIR)\LICENSE.txt"
858 BEGIN {
859     while ( getline > 0 ) {
860         if ( $$0 ~ /Copyright notice:/ ) {
861             print "";
862             print "For the mod_deflate zlib compression component:";
863             while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
864                 print $$0;
865             }
866             exit 0;
867         }
868     }
869     exit 1;
870 }
871 <<
872 !ENDIF
873 !IF EXIST("srclib\lua")
874         type << >> "$(INSTDIR)\NOTICE.txt"
875
876 This binary distribution of mod_lua.so includes the Lua language, 
877 developed at Lua.org, a laboratory of the Department of Computer Science 
878 of PUC-Rio (the Pontifical Catholic University of Rio de Janeiro in Brazil).
879 For complete information, visit Lua's web site at http://www.lua.org/
880 <<
881         -awk -f <<script.awk < "srclib\lua\COPYRIGHT" >> "$(INSTDIR)\LICENSE.txt"
882 BEGIN {
883     print "";
884     print "For the mod_lua language component:";
885     print "";
886     while ( getline > 0 && $$0 !~ /end of COPYRIGHT/ ) {
887         print $$0;
888     }
889     exit 0;
890 }
891 <<
892 !ENDIF
893         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
894                 _copybin src_exe=exe src_dll=dll src_so=so             \
895                 inst_exe="$(INSTDIR)\bin"                              \
896                 inst_dll="$(INSTDIR)\bin"                              \
897                 inst_so="$(INSTDIR)\modules"
898         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
899                 _copybin src_exe=pdb src_dll=pdb src_so=pdb            \
900                 inst_exe="$(INSTDIR)\bin"                              \
901                 inst_dll="$(INSTDIR)\bin"                              \
902                 inst_so="$(INSTDIR)\modules"
903         cd srclib\apr-iconv
904         $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
905                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
906                 INSTALL_DIR="$(INSTDIR)\bin\iconv"
907         cd ..\..
908         copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
909         -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
910     BEGIN { 
911         if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
912             gsub( /\\/, "/", perlroot );
913             print "#!" perlroot;
914         }
915     }
916     {
917         if ( $$0 !~ /^#!/ ) {
918             print $$0;
919         }
920     }
921 <<
922         xcopy docs\error        "$(INSTDIR)\error" /s /d < .a
923         xcopy docs\docroot      "$(INSTDIR)\htdocs" /d < .a
924         xcopy docs\icons        "$(INSTDIR)\icons" /s /d < .a
925         xcopy docs\manual       "$(INSTDIR)\manual" /s /d < .a
926         for %f in ( \
927                 srclib\apr-util\xml\expat\lib\expat.h \
928                 srclib\apr\include\*.h \
929                 srclib\apr-util\include\*.h \
930                 include\*.h \
931                 os\win32\os.h \
932                 modules\cache\mod_cache.h \
933                 modules\core\mod_so.h \
934                 modules\core\mod_watchdog.h \
935                 modules\database\mod_dbd.h \
936                 modules\dav\main\mod_dav.h \
937                 modules\filters\mod_include.h \
938                 modules\generators\mod_cgi.h \
939                 modules\generators\mod_status.h \
940                 modules\loggers\mod_log_config.h \
941                 modules\mappers\mod_rewrite.h \
942                 modules\proxy\mod_proxy.h \
943                 modules\proxy\mod_serf.h \
944                 modules\ssl\mod_ssl.h \
945           ) do \
946             @copy %f "$(INSTDIR)\include" < .y > nul
947         copy srclib\apr\Lib$(SHORT)\apr-1.lib           "$(INSTDIR)\lib" <.y
948         copy srclib\apr\Lib$(SHORT)\apr-1.pdb           "$(INSTDIR)\lib" <.y
949         copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib  "$(INSTDIR)\lib" <.y
950         copy srclib\apr-util\Lib$(SHORT)\aprutil-1.pdb  "$(INSTDIR)\lib" <.y
951         copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
952         copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.pdb "$(INSTDIR)\lib" <.y
953         copy srclib\apr\$(LONG)\libapr-1.lib            "$(INSTDIR)\lib" <.y
954         copy srclib\apr\$(LONG)\libapr-1.exp            "$(INSTDIR)\lib" <.y
955         copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib "$(INSTDIR)\lib" <.y
956         copy srclib\apr-iconv\$(LONG)\libapriconv-1.exp "$(INSTDIR)\lib" <.y
957         copy srclib\apr-util\$(LONG)\libaprutil-1.lib   "$(INSTDIR)\lib" <.y
958         copy srclib\apr-util\$(LONG)\libaprutil-1.exp   "$(INSTDIR)\lib" <.y
959         copy $(LONG)\libhttpd.exp                       "$(INSTDIR)\lib" <.y
960         copy $(LONG)\libhttpd.lib                       "$(INSTDIR)\lib" <.y
961         copy modules\dav\main\$(LONG)\mod_dav.exp       "$(INSTDIR)\lib" <.y
962         copy modules\dav\main\$(LONG)\mod_dav.lib       "$(INSTDIR)\lib" <.y
963         for %f in ( charset.conv magic mime.types ) do ( \
964           copy docs\conf\%f "$(INSTDIR)\conf\original\%f" <.y )
965         awk -f build\installwinconf.awk $(DOMAINNAME) $(SERVERNAME) \
966             $(SERVERADMIN) $(PORT) $(SSLPORT) "$(INSTDIR) " docs/conf/ 
967         copy "support\dbmmanage.in" "$(INSTDIR)\bin\dbmmanage.pl"
968         -awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
969     { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
970           sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" ); 
971       }
972       if ( $$0 !~ /^#!@perlbin@/ )
973           print $$0;
974     }
975 <<
976         del .y
977         del .a