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