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