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