]> granicus.if.org Git - apache/blob - Makefile.win
Patch from Mark Watts. Mention ProxyErrorOverride.
[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          $(MAKE) $(MAKEOPT) -f mod_proxy_scgi.mak  CFG="mod_proxy_scgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
463         cd ..\..
464         cd modules\proxy\balancers
465          $(MAKE) $(MAKEOPT) -f mod_lbmethod_bybusyness.mak CFG="mod_lbmethod_bybusyness - Win32 $(LONG)" RECURSE=0 $(CTARGET)
466          $(MAKE) $(MAKEOPT) -f mod_lbmethod_byrequests.mak CFG="mod_lbmethod_byrequests - Win32 $(LONG)" RECURSE=0 $(CTARGET)
467          $(MAKE) $(MAKEOPT) -f mod_lbmethod_bytraffic.mak  CFG="mod_lbmethod_bytraffic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
468          $(MAKE) $(MAKEOPT) -f mod_lbmethod_heartbeat.mak  CFG="mod_lbmethod_heartbeat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
469         cd ..\..\..
470 !IFDEF ALL
471         cd modules\proxy\examples
472          $(MAKE) $(MAKEOPT) -f mod_lbmethod_rr.mak CFG="mod_lbmethod_rr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
473         cd ..\..\..
474 !ENDIF
475         cd modules\session
476          $(MAKE) $(MAKEOPT) -f mod_session.mak        CFG="mod_session - Win32 $(LONG)" RECURSE=0 $(CTARGET)
477          $(MAKE) $(MAKEOPT) -f mod_session_cookie.mak CFG="mod_session_cookie - Win32 $(LONG)" RECURSE=0 $(CTARGET)
478          $(MAKE) $(MAKEOPT) -f mod_session_dbd.mak    CFG="mod_session_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
479         cd ..\..
480 !IF EXIST("srclib\openssl")
481         #cd modules\session
482         # $(MAKE) $(MAKEOPT) -f mod_session_crypto.mak CFG="mod_session_crypto - Win32 $(LONG)" RECURSE=0 $(CTARGET)
483         #cd ..\..
484         cd modules\ssl
485          $(MAKE) $(MAKEOPT) -f mod_ssl.mak         CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
486         cd ..\..
487         cd support
488          $(MAKE) $(MAKEOPT) -f abs.mak             CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
489         cd ..
490 !ENDIF
491         cd support
492          $(MAKE) $(MAKEOPT) -f ab.mak              CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
493 #        $(MAKE) $(MAKEOPT) -f fcgistarter.mak     CFG="fcgistarter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
494          $(MAKE) $(MAKEOPT) -f htcacheclean.mak    CFG="htcacheclean - Win32 $(LONG)" RECURSE=0 $(CTARGET)
495          $(MAKE) $(MAKEOPT) -f htdbm.mak           CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
496          $(MAKE) $(MAKEOPT) -f htdigest.mak        CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
497          $(MAKE) $(MAKEOPT) -f htpasswd.mak        CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
498          $(MAKE) $(MAKEOPT) -f httxt2dbm.mak       CFG="httxt2dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
499          $(MAKE) $(MAKEOPT) -f logresolve.mak      CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
500          $(MAKE) $(MAKEOPT) -f rotatelogs.mak      CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
501         cd ..
502         cd support\win32
503          $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak   CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
504          $(MAKE) $(MAKEOPT) -f wintty.mak          CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
505         cd ..\..
506
507 !ELSEIF $(USESLN) == 1
508
509 _cleanr:  
510         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
511
512 _cleand:  
513         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/clean" _build
514
515 _build:
516         echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
517 !IFDEF ALL
518         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildAll
519 !ELSE
520         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildBin
521 !ENDIF
522 !IF EXIST("srclib\openssl")
523         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
524         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
525 !ENDIF
526 !IF EXIST("srclib\zlib")
527         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
528 !ENDIF
529 !IF EXIST("srclib\lua")
530         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_lua
531 !ENDIF
532
533 !ELSE
534
535 _cleanr:  
536         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
537
538 _cleand:  
539         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/CLEAN" _build
540
541 _build:
542         @echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
543 !IFDEF ALL
544         @msdev Apache.dsw /USEENV /MAKE \
545                 "BuildAll - Win32 $(LONG)" $(CTARGET)
546 !ELSE
547         @msdev Apache.dsw /USEENV /MAKE \
548                 "BuildBin - Win32 $(LONG)" $(CTARGET)
549 !ENDIF
550 !IF "$(CTARGET)" == "/CLEAN"
551         @cd srclib\apr-iconv
552         @$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
553                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
554         @cd ..\..
555 !ENDIF
556 !IF EXIST("srclib\openssl")
557         @msdev Apache.dsw /USEENV /MAKE \
558                 "mod_ssl - Win32 $(LONG)" \
559                 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
560 !ENDIF
561 !IF EXIST("srclib\zlib")
562         @msdev Apache.dsw /USEENV /MAKE \
563                 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
564 !ENDIF
565 !IF EXIST("srclib\lua")
566         @msdev Apache.dsw /USEENV /MAKE \
567                 "mod_lua - Win32 $(LONG)" /NORECURSE $(CTARGET)
568 !ENDIF
569
570 !ENDIF
571
572
573 _copybin:
574         copy $(LONG)\httpd.$(src_exe)                           "$(inst_exe)" <.y
575         copy $(LONG)\libhttpd.$(src_dll)                        "$(inst_dll)" <.y
576         copy srclib\apr\$(LONG)\libapr-1.$(src_dll)             "$(inst_dll)" <.y
577         copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll)  "$(inst_dll)" <.y
578         copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll)    "$(inst_dll)" <.y
579         copy srclib\apr-util\ldap\$(LONG)\apr_ldap-1.$(src_dll) "$(inst_dll)" <.y
580         for %d in (odbc $(DBD_LIST)) do ( \
581           copy srclib\apr-util\dbd\$(LONG)\apr_dbd_%d-1.$(src_dll) "$(inst_dll)" <.y \
582         )
583         for %d in ($(DBM_LIST) x) do if not %d == x ( \
584           copy srclib\apr-util\dbm\$(LONG)\apr_dbm_%d-1.$(src_dll) "$(inst_dll)" <.y \
585         )
586         copy srclib\pcre\pcre.$(src_dll)                        "$(inst_dll)" <.y
587         copy modules\aaa\$(LONG)\mod_access_compat.$(src_so)    "$(inst_so)" <.y
588         copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so)       "$(inst_so)" <.y
589         copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so)      "$(inst_so)" <.y
590         copy modules\aaa\$(LONG)\mod_auth_form.$(src_so)        "$(inst_so)" <.y
591         copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so)       "$(inst_so)" <.y
592         copy modules\aaa\$(LONG)\mod_authn_core.$(src_so)       "$(inst_so)" <.y
593         copy modules\aaa\$(LONG)\mod_authn_dbd.$(src_so)        "$(inst_so)" <.y
594         copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so)        "$(inst_so)" <.y
595         copy modules\aaa\$(LONG)\mod_authn_file.$(src_so)       "$(inst_so)" <.y
596         copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so)      "$(inst_so)" <.y
597         copy modules\aaa\$(LONG)\mod_authz_core.$(src_so)       "$(inst_so)" <.y
598         copy modules\aaa\$(LONG)\mod_authz_dbd.$(src_so)        "$(inst_so)" <.y
599         copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so)        "$(inst_so)" <.y
600         copy modules\aaa\$(LONG)\mod_authz_core.$(src_so)       "$(inst_so)" <.y
601         copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so)  "$(inst_so)" <.y
602         copy modules\aaa\$(LONG)\mod_authz_host.$(src_so)       "$(inst_so)" <.y
603         copy modules\aaa\$(LONG)\mod_authz_owner.$(src_so)      "$(inst_so)" <.y
604         copy modules\aaa\$(LONG)\mod_authz_user.$(src_so)       "$(inst_so)" <.y
605         copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so)     "$(inst_so)" <.y
606         copy modules\cache\$(LONG)\mod_cache.$(src_so)          "$(inst_so)" <.y
607         copy modules\cache\$(LONG)\mod_file_cache.$(src_so)     "$(inst_so)" <.y
608         copy modules\cache\$(LONG)\mod_disk_cache.$(src_so)     "$(inst_so)" <.y
609         copy modules\cache\$(LONG)\mod_socache_dbm.$(src_so)    "$(inst_so)" <.y
610 #       copy modules\cache\$(LONG)\mod_socache_dc.$(src_so)     "$(inst_so)" <.y
611         copy modules\cache\$(LONG)\mod_socache_memcache.$(src_so) "$(inst_so)" <.y
612         copy modules\cache\$(LONG)\mod_socache_shmcb.$(src_so)  "$(inst_so)" <.y
613         copy modules\core\$(LONG)\mod_watchdog.$(src_so)        "$(inst_so)" <.y
614         copy modules\cluster\$(LONG)\mod_heartbeat.$(src_so)    "$(inst_so)" <.y
615         copy modules\cluster\$(LONG)\mod_heartmonitor.$(src_so) "$(inst_so)" <.y
616         copy modules\database\$(LONG)\mod_dbd.$(src_so)         "$(inst_so)" <.y
617         copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so)        "$(inst_so)" <.y
618         copy modules\dav\lock\$(LONG)\mod_dav_lock.$(src_so)    "$(inst_so)" <.y
619         copy modules\dav\main\$(LONG)\mod_dav.$(src_so)         "$(inst_so)" <.y
620 !IFDEF ALL
621         copy modules\debugging\$(LONG)\mod_bucketeer.$(src_so)  "$(inst_so)" <.y
622 !ENDIF
623         copy modules\debugging\$(LONG)\mod_dumpio.$(src_so)     "$(inst_so)" <.y
624 !IFDEF ALL
625         copy modules\echo\$(LONG)\mod_echo.$(src_so)            "$(inst_so)" <.y
626         copy modules\examples\$(LONG)\mod_case_filter.$(src_so)    "$(inst_so)" <.y
627         copy modules\examples\$(LONG)\mod_case_filter_in.$(src_so) "$(inst_so)" <.y
628         copy modules\examples\$(LONG)\mod_example_hooks.$(src_so)  "$(inst_so)" <.y
629         copy modules\examples\$(LONG)\mod_example_ipc.$(src_so)    "$(inst_so)" <.y
630 !ENDIF
631         copy modules\filters\$(LONG)\mod_buffer.$(src_so)       "$(inst_so)" <.y
632         copy modules\filters\$(LONG)\mod_charset_lite.$(src_so) "$(inst_so)" <.y
633 !IF EXIST("srclib\zlib")
634         copy modules\filters\$(LONG)\mod_deflate.$(src_so)      "$(inst_so)" <.y
635 !IF EXIST("srclib\zlib\zlib1.$(src_dll)")
636         copy srclib\zlib\zlib1.$(src_dll)                       "$(inst_dll)" <.y
637 !ENDIF
638 !ENDIF
639         copy modules\filters\$(LONG)\mod_ext_filter.$(src_so)   "$(inst_so)" <.y
640         copy modules\filters\$(LONG)\mod_filter.$(src_so)       "$(inst_so)" <.y
641         copy modules\filters\$(LONG)\mod_include.$(src_so)      "$(inst_so)" <.y
642         copy modules\filters\$(LONG)\mod_ratelimit.$(src_so)    "$(inst_so)" <.y
643         copy modules\filters\$(LONG)\mod_request.$(src_so)      "$(inst_so)" <.y
644         copy modules\filters\$(LONG)\mod_sed.$(src_so)          "$(inst_so)" <.y
645         copy modules\filters\$(LONG)\mod_substitute.$(src_so)   "$(inst_so)" <.y
646         copy modules\generators\$(LONG)\mod_asis.$(src_so)      "$(inst_so)" <.y
647         copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
648         copy modules\generators\$(LONG)\mod_cgi.$(src_so)       "$(inst_so)" <.y
649         copy modules\generators\$(LONG)\mod_info.$(src_so)      "$(inst_so)" <.y
650         copy modules\generators\$(LONG)\mod_status.$(src_so)    "$(inst_so)" <.y
651         copy modules\http\$(LONG)\mod_mime.$(src_so)            "$(inst_so)" <.y
652         copy modules\ldap\$(LONG)\mod_ldap.$(src_so)            "$(inst_so)" <.y
653         copy modules\loggers\$(LONG)\mod_log_config.$(src_so)   "$(inst_so)" <.y
654         copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
655         copy modules\loggers\$(LONG)\mod_logio.$(src_so)        "$(inst_so)" <.y
656 !IF EXIST("srclib\lua")
657         copy modules\lua\$(LONG)\mod_lua.$(src_so)              "$(inst_so)" <.y
658 !IF EXIST("srclib\lua\src\lua51.$(src_dll)")
659         copy srclib\lua\src\lua51.$(src_dll)                    "$(inst_dll)" <.y
660 !ENDIF
661 !ENDIF
662         copy modules\mappers\$(LONG)\mod_actions.$(src_so)      "$(inst_so)" <.y
663         copy modules\mappers\$(LONG)\mod_alias.$(src_so)        "$(inst_so)" <.y
664         copy modules\mappers\$(LONG)\mod_dir.$(src_so)          "$(inst_so)" <.y
665         copy modules\mappers\$(LONG)\mod_imagemap.$(src_so)     "$(inst_so)" <.y
666         copy modules\mappers\$(LONG)\mod_negotiation.$(src_so)  "$(inst_so)" <.y
667         copy modules\mappers\$(LONG)\mod_rewrite.$(src_so)      "$(inst_so)" <.y
668         copy modules\mappers\$(LONG)\mod_speling.$(src_so)      "$(inst_so)" <.y
669         copy modules\mappers\$(LONG)\mod_userdir.$(src_so)      "$(inst_so)" <.y
670         copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so)  "$(inst_so)" <.y
671         copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so)   "$(inst_so)" <.y
672         copy modules\metadata\$(LONG)\mod_env.$(src_so)         "$(inst_so)" <.y
673         copy modules\metadata\$(LONG)\mod_expires.$(src_so)     "$(inst_so)" <.y
674         copy modules\metadata\$(LONG)\mod_headers.$(src_so)     "$(inst_so)" <.y
675         copy modules\metadata\$(LONG)\mod_ident.$(src_so)       "$(inst_so)" <.y
676         copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so)  "$(inst_so)" <.y
677         copy modules\metadata\$(LONG)\mod_remoteip.$(src_so)    "$(inst_so)" <.y
678         copy modules\metadata\$(LONG)\mod_setenvif.$(src_so)    "$(inst_so)" <.y
679         copy modules\metadata\$(LONG)\mod_unique_id.$(src_so)   "$(inst_so)" <.y
680         copy modules\metadata\$(LONG)\mod_usertrack.$(src_so)   "$(inst_so)" <.y
681         copy modules\metadata\$(LONG)\mod_version.$(src_so)     "$(inst_so)" <.y
682         copy modules\proxy\$(LONG)\mod_proxy.$(src_so)          "$(inst_so)" <.y
683         copy modules\proxy\$(LONG)\mod_proxy_ajp.$(src_so)      "$(inst_so)" <.y
684         copy modules\proxy\$(LONG)\mod_proxy_balancer.$(src_so) "$(inst_so)" <.y
685         copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so)  "$(inst_so)" <.y
686         copy modules\proxy\$(LONG)\mod_proxy_fcgi.$(src_so)     "$(inst_so)" <.y
687         copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so)      "$(inst_so)" <.y
688         copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so)     "$(inst_so)" <.y
689         copy modules\proxy\$(LONG)\mod_proxy_scgi.$(src_so)     "$(inst_so)" <.y
690         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bybusyness.$(src_so) "$(inst_so)" <.y
691         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_byrequests.$(src_so) "$(inst_so)" <.y
692         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_bytraffic.$(src_so)  "$(inst_so)" <.y
693         copy modules\proxy\balancers\$(LONG)\mod_lbmethod_heartbeat.$(src_so)  "$(inst_so)" <.y
694 !IFDEF ALL
695         copy modules\proxy\examples\$(LONG)\mod_lbmethod_rr.$(src_so) "$(inst_so)" <.y
696 !ENDIF
697         copy modules\session\$(LONG)\mod_session.$(src_so)        "$(inst_so)" <.y
698         copy modules\session\$(LONG)\mod_session_cookie.$(src_so) "$(inst_so)" <.y
699         copy modules\session\$(LONG)\mod_session_dbd.$(src_so)    "$(inst_so)" <.y
700 !IF EXIST("srclib\openssl")
701 #       copy modules\session\$(LONG)\mod_session_crypto.$(src_so) "$(inst_so)" <.y
702         copy modules\ssl\$(LONG)\mod_ssl.$(src_so)              "$(inst_so)" <.y
703         -copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll)      "$(inst_dll)" <.y
704         -copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll)      "$(inst_dll)" <.y
705         -copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe)       "$(inst_exe)" <.y
706         copy support\$(LONG)\abs.$(src_exe)                     "$(inst_exe)" <.y
707 !ENDIF
708         copy support\$(LONG)\ab.$(src_exe)                      "$(inst_exe)" <.y
709 #       copy support\$(LONG)\fcgistarter.$(src_exe)             "$(inst_exe)" <.y
710         copy support\$(LONG)\htcacheclean.$(src_exe)            "$(inst_exe)" <.y
711         copy support\$(LONG)\htdbm.$(src_exe)                   "$(inst_exe)" <.y
712         copy support\$(LONG)\htdigest.$(src_exe)                "$(inst_exe)" <.y
713         copy support\$(LONG)\htpasswd.$(src_exe)                "$(inst_exe)" <.y
714         copy support\$(LONG)\httxt2dbm.$(src_exe)               "$(inst_exe)" <.y
715         copy support\$(LONG)\logresolve.$(src_exe)              "$(inst_exe)" <.y
716         copy support\$(LONG)\rotatelogs.$(src_exe)              "$(inst_exe)" <.y
717         copy support\win32\$(LONG)\ApacheMonitor.$(src_exe)     "$(inst_exe)" <.y
718         copy support\win32\$(LONG)\wintty.$(src_exe)            "$(inst_exe)" <.y
719
720
721 # First we create the tree and populate the README so that 
722 # whatever happens, all licensing has already propagated.  
723 # Then repeatedly invoke the _copybin build to copy the
724 # real binaries, then pdb symbols, anf finally dbg syms.
725 # Then hit docs of various sorts, then includes and libs,
726 # and finally do the .conf magic.
727 #
728 _install:
729         echo Y >.y
730         echo A >.A
731         -mkdir "$(INSTDIR)"
732         -mkdir "$(INSTDIR)\bin"
733         -mkdir "$(INSTDIR)\bin\iconv"
734         -mkdir "$(INSTDIR)\cgi-bin"
735         -mkdir "$(INSTDIR)\conf"
736         -mkdir "$(INSTDIR)\conf\extra"
737         -mkdir "$(INSTDIR)\conf\original"
738         -mkdir "$(INSTDIR)\conf\original\extra"
739         -mkdir "$(INSTDIR)\error"
740         -mkdir "$(INSTDIR)\htdocs"
741         -mkdir "$(INSTDIR)\manual"
742         -mkdir "$(INSTDIR)\icons"
743         -mkdir "$(INSTDIR)\include"
744         -mkdir "$(INSTDIR)\lib"
745         -mkdir "$(INSTDIR)\logs"
746         -mkdir "$(INSTDIR)\modules"
747         copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
748         copy CHANGES      "$(INSTDIR)\CHANGES.txt" <.y
749         copy INSTALL      "$(INSTDIR)\INSTALL.txt" <.y
750         copy LICENSE      "$(INSTDIR)\LICENSE.txt" <.y
751         copy NOTICE       "$(INSTDIR)\NOTICE.txt" <.y
752         copy README       "$(INSTDIR)\README.txt" <.y
753         type << >> "$(INSTDIR)\NOTICE.txt"
754
755 Regular expression support is provided by the PCRE library package,
756 which is open source software, written by Philip Hazel, and copyright
757 by the University of Cambridge, England. The original software is
758 available from
759   ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
760 <<
761         -awk -f <<script1.awk < "srclib\pcre\LICENCE" >> "$(INSTDIR)\LICENSE.txt"
762 BEGIN {
763     print "";
764     print "For the pcre.dll component:";
765     print "";
766     while ( getline > 0 ) {
767         if ( $$0 ~ /^End$$/ ) $$0 = "END OF PCRE LICENSE";
768         print $$0;
769    }
770 }
771 <<
772 !IF EXIST("srclib\openssl")
773         -copy srclib\openssl\apps\openssl.cnf "$(INSTDIR)\conf\openssl.cnf" <.y
774         type << >> "$(INSTDIR)\NOTICE.txt"
775
776 This binary distribution includes cryptographic software written by
777 Eric Young (eay@cryptsoft.com), software written by Tim Hudson 
778 (tjh@cryptsoft.com), and software developed by the OpenSSL Project 
779 for use in the OpenSSL Toolkit <http://www.openssl.org/>.
780 <<
781         -awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
782 BEGIN {
783     print "";
784     print "For the libeay32.dll, ssleay32.dll and openssl.exe components:";
785     print "";
786     while ( getline > 0 ) {
787         print $$0;
788    }
789 }
790 <<
791         copy << "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
792
793  Apache HTTP Server 2.3 Limited OpenSSL Distribution
794
795  This binary distribution includes the minimal components of OpenSSL required
796  to support mod_ssl for Apache HTTP Server version 2.3 (details are listed 
797  in OPENSSL-README.txt.)  For the complete list of CHANGES to this and later 
798  versions of OpenSSL, please refer to the definative source,
799  <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
800  full binary or source distribution package from <http://www.openssl.org/>.
801
802  These OpenSSL binaries were built for distribution from the U.S. without 
803  support for the patented encryption methods IDEA, MDC-2 or RC5.
804
805 --------------------------------------------------------------------------------
806
807 <<
808         -copy "$(INSTDIR)\OPENSSL-NEWS.txt" \
809             + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt"
810         copy << "$(INSTDIR)\OPENSSL-README.txt" <.y
811
812  Apache HTTP Server 2.3 Limited OpenSSL Distribution
813
814  This binary installation of OpenSSL is a limited distribution of the
815  files derived from the OpenSSL project:
816
817    LICENSE.txt (includes openssl LICENSE)
818    OPENSSL-NEWS.txt
819    OPENSSL-README.txt
820    conf\openssl.cnf
821    bin\libeay32.dll
822    bin\ssleay32.dll
823    bin\openssl.exe
824
825  These are the minimal libraries and tools required to use mod_ssl as 
826  distributed with Apache HTTP Server version 2.3.  No library link files, 
827  headers or sources are distributed with this binary distribution.  Please 
828  refer to the <http://www.openssl.org/> site for complete source or binary 
829  distributions.
830
831  These OpenSSL binaries were built for distribution from the U.S. without 
832  support for the patented encryption methods IDEA, MDC-2 or RC5.
833
834  The Apache HTTP Project only supports the binary distribution of these files
835  and development of the mod_ssl module.  We cannot provide support assistance
836  for using or configuring the OpenSSL package or these modules.  Please refer
837  all installation and configuration questions to the appropriate forum,
838  such as the user supported lists, <http://httpd.apache.org/userslist.html> 
839  the Apache HTTP Server user's list or <http://www.openssl.org/support/> the
840  OpenSSL support page.
841
842 --------------------------------------------------------------------------------
843
844 <<
845         -copy "$(INSTDIR)\OPENSSL-README.txt" \
846             + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt"
847 !ENDIF
848 !IF EXIST("srclib\zlib")
849         type << >> "$(INSTDIR)\NOTICE.txt"
850
851 This binary distribution of mod_deflate.so includes zlib compression code
852 <http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
853 and Mark Adler (madler@alumni.caltech.edu) .
854 <<
855         -awk -f <<script.awk < "srclib\zlib\README" >> "$(INSTDIR)\LICENSE.txt"
856 BEGIN {
857     while ( getline > 0 ) {
858         if ( $$0 ~ /Copyright notice:/ ) {
859             print "";
860             print "For the mod_deflate zlib compression component:";
861             while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
862                 print $$0;
863             }
864             exit 0;
865         }
866     }
867     exit 1;
868 }
869 <<
870 !ENDIF
871 !IF EXIST("srclib\lua")
872         type << >> "$(INSTDIR)\NOTICE.txt"
873
874 This binary distribution of mod_lua.so includes the Lua language, 
875 developed at Lua.org, a laboratory of the Department of Computer Science 
876 of PUC-Rio (the Pontifical Catholic University of Rio de Janeiro in Brazil).
877 For complete information, visit Lua's web site at http://www.lua.org/
878 <<
879         -awk -f <<script.awk < "srclib\lua\COPYRIGHT" >> "$(INSTDIR)\LICENSE.txt"
880 BEGIN {
881     print "";
882     print "For the mod_lua language component:";
883     print "";
884     while ( getline > 0 && $$0 !~ /end of COPYRIGHT/ ) {
885         print $$0;
886     }
887     exit 0;
888 }
889 <<
890 !ENDIF
891         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
892                 _copybin src_exe=exe src_dll=dll src_so=so             \
893                 inst_exe="$(INSTDIR)\bin"                              \
894                 inst_dll="$(INSTDIR)\bin"                              \
895                 inst_so="$(INSTDIR)\modules"
896         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
897                 _copybin src_exe=pdb src_dll=pdb src_so=pdb            \
898                 inst_exe="$(INSTDIR)\bin"                              \
899                 inst_dll="$(INSTDIR)\bin"                              \
900                 inst_so="$(INSTDIR)\modules"
901         cd srclib\apr-iconv
902         $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
903                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
904                 INSTALL_DIR="$(INSTDIR)\bin\iconv"
905         cd ..\..
906         copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
907         -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
908     BEGIN { 
909         if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
910             gsub( /\\/, "/", perlroot );
911             print "#!" perlroot;
912         }
913     }
914     {
915         if ( $$0 !~ /^#!/ ) {
916             print $$0;
917         }
918     }
919 <<
920         xcopy docs\error        "$(INSTDIR)\error" /s /d < .a
921         xcopy docs\docroot      "$(INSTDIR)\htdocs" /d < .a
922         xcopy docs\icons        "$(INSTDIR)\icons" /s /d < .a
923         xcopy docs\manual       "$(INSTDIR)\manual" /s /d < .a
924         for %f in ( \
925                 srclib\apr-util\xml\expat\lib\expat.h \
926                 srclib\apr\include\*.h \
927                 srclib\apr-util\include\*.h \
928                 include\*.h \
929                 os\win32\os.h \
930                 modules\cache\mod_cache.h \
931                 modules\core\mod_so.h \
932                 modules\core\mod_watchdog.h \
933                 modules\database\mod_dbd.h \
934                 modules\dav\main\mod_dav.h \
935                 modules\filters\mod_include.h \
936                 modules\generators\mod_cgi.h \
937                 modules\generators\mod_status.h \
938                 modules\loggers\mod_log_config.h \
939                 modules\mappers\mod_rewrite.h \
940                 modules\proxy\mod_proxy.h \
941                 modules\proxy\mod_serf.h \
942                 modules\ssl\mod_ssl.h \
943           ) do \
944             @copy %f "$(INSTDIR)\include" < .y > nul
945         copy srclib\apr\Lib$(SHORT)\apr-1.lib           "$(INSTDIR)\lib" <.y
946         copy srclib\apr\Lib$(SHORT)\apr-1.pdb           "$(INSTDIR)\lib" <.y
947         copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib  "$(INSTDIR)\lib" <.y
948         copy srclib\apr-util\Lib$(SHORT)\aprutil-1.pdb  "$(INSTDIR)\lib" <.y
949         copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
950         copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.pdb "$(INSTDIR)\lib" <.y
951         copy srclib\apr\$(LONG)\libapr-1.lib            "$(INSTDIR)\lib" <.y
952         copy srclib\apr\$(LONG)\libapr-1.exp            "$(INSTDIR)\lib" <.y
953         copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib "$(INSTDIR)\lib" <.y
954         copy srclib\apr-iconv\$(LONG)\libapriconv-1.exp "$(INSTDIR)\lib" <.y
955         copy srclib\apr-util\$(LONG)\libaprutil-1.lib   "$(INSTDIR)\lib" <.y
956         copy srclib\apr-util\$(LONG)\libaprutil-1.exp   "$(INSTDIR)\lib" <.y
957         copy $(LONG)\libhttpd.exp                       "$(INSTDIR)\lib" <.y
958         copy $(LONG)\libhttpd.lib                       "$(INSTDIR)\lib" <.y
959         copy modules\dav\main\$(LONG)\mod_dav.exp       "$(INSTDIR)\lib" <.y
960         copy modules\dav\main\$(LONG)\mod_dav.lib       "$(INSTDIR)\lib" <.y
961         for %f in ( charset.conv magic mime.types ) do ( \
962           copy docs\conf\%f "$(INSTDIR)\conf\original\%f" <.y )
963         awk -f build\installwinconf.awk $(DOMAINNAME) $(SERVERNAME) \
964             $(SERVERADMIN) $(PORT) $(SSLPORT) "$(INSTDIR) " docs/conf/ 
965         copy "support\dbmmanage.in" "$(INSTDIR)\bin\dbmmanage.pl"
966         -awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
967     { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
968           sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" ); 
969       }
970       if ( $$0 !~ /^#!@perlbin@/ )
971           print $$0;
972     }
973 <<
974         del .y
975         del .a