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