]> granicus.if.org Git - apache/blob - Makefile.win
Catch up for Win32 to authnz_ldap changes, and make win32's module
[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     \Apache2
17 #   PORT        80
18 #   SERVERNAME  localhost
19 #
20 # For example;
21 #
22 #   nmake /f Makefile.win PORT=80 INSTDIR="d:\Program Files\Apache" installr
23 #
24 # Be aware that certain awk's will not accept backslahed names,
25 # so the server root should be given in forward slashes (quoted),
26 # preferably with the drive designation!
27
28 default: _apacher
29
30 !IF ("$(CTARGET)" == "") && EXIST("Apache.sln")
31 CTARGET=/build
32 !ENDIF
33
34 !IF !EXIST("srclib\apr") || !EXIST("srclib\apr-util") || !EXIST("srclib\apr-iconv")
35 !MESSAGE Please check out or download and unpack the Apache Portability Runtime
36 !MESSAGE sources (apr, apr-iconv and apr-util) into your $(INSTDIR)\srclib dir.
37 !MESSAGE Apache cannot build without these libraries!
38 !MESSAGE 
39 !ERROR Need $(INSTDIR)\srclib\  apr, apr-iconv and apr-util
40 !ENDIF
41
42 # Note; _tryssl: is only used by the msvc developer studio environment to 'fix up'
43 #       the build, since conditional dependencies aren't supported.
44 #
45 !IF EXIST("srclib\openssl")
46 !IF "$(LONG)" == "Debug"
47 SSLBIN=out32dll.dbg
48 !ELSE
49 SSLBIN=out32dll
50 !ENDIF
51
52 _tryssl:
53 !IF EXIST("modules\ssl\mod_ssl.mak")
54         cd modules\ssl
55         $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 .\$(LONG)\mod_ssl.so
56         cd ..\..
57         cd support
58         $(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 .\$(LONG)\abs.exe
59         cd ..
60 !ELSEIF EXIST("Apache.sln")
61         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
62         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
63 !ELSE
64         @msdev Apache.dsw /USEENV /MAKE \
65                 "mod_ssl - Win32 $(LONG)" \
66                 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
67 !ENDIF
68
69 !ELSE
70 #     NOT EXIST("srclib\openssl")
71
72 _tryssl:
73         @echo -----
74         @echo mod_ssl and ab/ssl will not build unless openssl is installed
75         @echo in srclib\openssl.  They must be precompiled using the 
76         @echo ms/ntdll.mak file, see srclib\openssl\INSTALL.W32.  The most
77         @echo recent version confirmed to build with mod_ssl and ab is 0.9.6h.
78         @echo Available from http://www.openssl.org/
79 !ENDIF
80
81 !IF EXIST("srclib\zlib")
82
83 _tryzlib:
84 !IF EXIST("modules\filters\mod_deflate.mak")
85         cd modules\filters
86         $(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 .\$(LONG)\mod_deflate.so
87         cd ..\..
88 !ELSEIF EXIST("Apache.sln")
89         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
90 !ELSE
91         @msdev Apache.dsw /USEENV /MAKE \
92                 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
93 !ENDIF
94
95 !ELSE
96 #     NOT EXIST("srclib\zlib")
97
98 _tryzlib:
99         @echo -----
100         @echo mod_deflate will not build unless zlib is installed in srclib\zlib.  
101         @echo Version 1.2.1 and later available from http://www.gzip.org/zlib/
102         @echo built w/ nmake -f win32/Makefile.msc will satisfy this requirement.
103
104 !ENDIF
105
106 !IF "$(INSTDIR)" == ""
107 INSTDIR=\Apache2
108 !ENDIF
109 !IF "$(SERVERNAME)" == ""
110 SERVERNAME=localhost
111 !ENDIF
112 !IF "$(PORT)" == ""
113 PORT=80
114 !ENDIF 
115
116 !IF "$(LONG)" == ""
117 !MESSAGE
118 !MESSAGE INSTDIR    = $(INSTDIR)
119 !MESSAGE SERVERNAME = $(SERVERNAME)
120 !MESSAGE PORT       = $(PORT)
121 !MESSAGE
122 !MESSAGE To change these options use 'nmake /f Makefile.win [option=value]'
123 !MESSAGE Example: nmake /f Makefile.win PORT=8080
124 !MESSAGE
125 !MESSAGE
126 !ENDIF
127
128 !IFNDEF MAKEOPT
129 # Only default the behavior if MAKEOPT= is omitted
130 !IF "$(MAKE)" == "NMAKE"
131 # Microsoft NMake options
132 MAKEOPT=-nologo
133 !ELSEIF "($MAKE)" == "make"
134 # Borland make options?  Not really supported (yet)
135 MAKEOPT=-s -N
136 !ENDIF
137 !ENDIF
138
139 _dummy:
140
141 _browse:
142         cd Browse
143           bscmake.exe -nologo -Iu -o Apache.bsc *.sbr
144         cd ..
145
146 _apacher: 
147         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build
148
149 _apached: 
150         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build
151
152 installr: 
153         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install
154
155 installd: 
156         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build _install
157
158 clean:  _cleanr _cleand
159         -if exist Browse\. rd /s Browse < << > nul
160 y
161 <<
162
163 !IF EXIST("Apache.mak")
164
165 _cleanr:
166         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
167
168 _cleand:  
169         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET=CLEAN _build
170
171 _build:
172         echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
173         cd srclib\apr
174          $(MAKE) $(MAKEOPT) -f apr.mak             CFG="apr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
175          $(MAKE) $(MAKEOPT) -f libapr.mak          CFG="libapr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
176         cd ..\..
177         cd srclib\apr-iconv
178          $(MAKE) $(MAKEOPT) -f apriconv.mak  CFG="apriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
179          $(MAKE) $(MAKEOPT) -f libapriconv.mak  CFG="libapriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
180 !IF "$(CTARGET)" == "CLEAN"
181         $(MAKE) $(MAKEOPT) /f build\modules.mk.win clean \
182                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
183 !ELSE
184         cd ccs
185         $(MAKE) /nologo /f Makefile.win all \
186                 BUILD_MODE=$(LONG) BIND_MODE=shared
187         cd ..\ces
188         $(MAKE) /nologo /f Makefile.win all \
189                 BUILD_MODE=$(LONG) BIND_MODE=shared
190         cd ..
191 !ENDIF
192         cd ..\..
193         cd srclib\apr-util\uri
194          $(MAKE) $(MAKEOPT) -f gen_uri_delims.mak  CFG="gen_uri_delims - Win32 $(LONG)" RECURSE=0 $(CTARGET)
195         cd ..\..\..
196         cd srclib\apr-util\xml\expat\lib
197          $(MAKE) $(MAKEOPT) -f xml.mak             CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET)
198         cd ..\..\..
199          $(MAKE) $(MAKEOPT) -f aprutil.mak         CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
200          $(MAKE) $(MAKEOPT) -f libaprutil.mak      CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
201         cd ..\..
202         cd srclib\pcre
203          $(MAKE) $(MAKEOPT) -f dftables.mak        CFG="dftables - Win32 $(LONG)" RECURSE=0 $(CTARGET)
204          $(MAKE) $(MAKEOPT) -f pcre.mak            CFG="pcre - Win32 $(LONG)" RECURSE=0 $(CTARGET)
205          $(MAKE) $(MAKEOPT) -f pcreposix.mak       CFG="pcreposix - Win32 $(LONG)" RECURSE=0 $(CTARGET)
206         cd ..\..
207         cd server
208          $(MAKE) $(MAKEOPT) -f gen_test_char.mak   CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET)
209         cd ..
210          $(MAKE) $(MAKEOPT) -f libhttpd.mak        CFG="libhttpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
211          $(MAKE) $(MAKEOPT) -f Apache.mak          CFG="Apache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
212 # build ldap prior to authnz_ldap
213         cd modules\ldap
214          $(MAKE) $(MAKEOPT) -f mod_ldap.mak        CFG="mod_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
215         cd ..\..
216         cd modules\aaa
217          $(MAKE) $(MAKEOPT) -f mod_auth_basic.mak  CFG="mod_auth_basic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
218          $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
219          $(MAKE) $(MAKEOPT) -f mod_authn_anon.mak  CFG="mod_authn_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
220          $(MAKE) $(MAKEOPT) -f mod_authn_dbm.mak   CFG="mod_authn_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
221          $(MAKE) $(MAKEOPT) -f mod_authn_default.mak CFG="mod_authn_default - Win32 $(LONG)" RECURSE=0 $(CTARGET)
222          $(MAKE) $(MAKEOPT) -f mod_authn_file.mak  CFG="mod_authn_file - Win32 $(LONG)" RECURSE=0 $(CTARGET)
223          $(MAKE) $(MAKEOPT) -f mod_authz_dbm.mak   CFG="mod_authz_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
224          $(MAKE) $(MAKEOPT) -f mod_authz_default.mak CFG="mod_authz_default - Win32 $(LONG)" RECURSE=0 $(CTARGET)
225          $(MAKE) $(MAKEOPT) -f mod_authz_groupfile.mak CFG="mod_authz_groupfile - Win32 $(LONG)" RECURSE=0 $(CTARGET)
226          $(MAKE) $(MAKEOPT) -f mod_authz_host.mak  CFG="mod_authz_host - Win32 $(LONG)" RECURSE=0 $(CTARGET)
227          $(MAKE) $(MAKEOPT) -f mod_authz_user.mak  CFG="mod_authz_user - Win32 $(LONG)" RECURSE=0 $(CTARGET)
228          $(MAKE) $(MAKEOPT) -f mod_authnz_ldap.mak CFG="mod_authnz_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
229         cd ..\..
230         cd modules\arch\win32
231          $(MAKE) $(MAKEOPT) -f mod_isapi.mak       CFG="mod_isapi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
232         cd ..\..\..
233         cd modules\cache
234          $(MAKE) $(MAKEOPT) -f mod_file_cache.mak  CFG="mod_file_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
235         cd ..\..
236         cd modules\dav\main
237          $(MAKE) $(MAKEOPT) -f mod_dav.mak         CFG="mod_dav - Win32 $(LONG)" RECURSE=0 $(CTARGET)
238         cd ..\..\..
239         cd modules\dav\fs
240          $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak      CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
241         cd ..\..\..
242         cd modules\experimental
243          $(MAKE) $(MAKEOPT) -f mod_cache.mak       CFG="mod_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
244          $(MAKE) $(MAKEOPT) -f mod_charset_lite.mak CFG="mod_charset_lite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
245          $(MAKE) $(MAKEOPT) -f mod_mem_cache.mak   CFG="mod_mem_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
246          $(MAKE) $(MAKEOPT) -f mod_disk_cache.mak  CFG="mod_disk_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
247         cd ..\..
248         cd modules\filters
249 !IF EXIST("srclib\zlib")
250          $(MAKE) $(MAKEOPT) -f mod_deflate.mak     CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
251 !ENDIF
252          $(MAKE) $(MAKEOPT) -f mod_ext_filter.mak  CFG="mod_ext_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
253          $(MAKE) $(MAKEOPT) -f mod_include.mak     CFG="mod_include - Win32 $(LONG)" RECURSE=0 $(CTARGET)
254         cd ..\..
255         cd modules\generators
256          $(MAKE) $(MAKEOPT) -f mod_asis.mak        CFG="mod_asis - Win32 $(LONG)" RECURSE=0 $(CTARGET)
257          $(MAKE) $(MAKEOPT) -f mod_autoindex.mak   CFG="mod_autoindex - Win32 $(LONG)" RECURSE=0 $(CTARGET)
258          $(MAKE) $(MAKEOPT) -f mod_cgi.mak         CFG="mod_cgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
259          $(MAKE) $(MAKEOPT) -f mod_info.mak        CFG="mod_info - Win32 $(LONG)" RECURSE=0 $(CTARGET)
260          $(MAKE) $(MAKEOPT) -f mod_status.mak      CFG="mod_status - Win32 $(LONG)" RECURSE=0 $(CTARGET)
261         cd ..\..
262         cd modules\http
263          $(MAKE) $(MAKEOPT) -f mod_mime.mak        CFG="mod_mime - Win32 $(LONG)" RECURSE=0 $(CTARGET)
264         cd ..\..
265         cd modules\loggers
266          $(MAKE) $(MAKEOPT) -f mod_log_config.mak  CFG="mod_log_config - Win32 $(LONG)" RECURSE=0 $(CTARGET)
267          $(MAKE) $(MAKEOPT) -f mod_log_forensic.mak CFG="mod_log_forensic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
268          $(MAKE) $(MAKEOPT) -f mod_logio.mak       CFG="mod_logio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
269         cd ..\..
270         cd modules\mappers
271          $(MAKE) $(MAKEOPT) -f mod_actions.mak     CFG="mod_actions - Win32 $(LONG)" RECURSE=0 $(CTARGET)
272          $(MAKE) $(MAKEOPT) -f mod_alias.mak       CFG="mod_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
273          $(MAKE) $(MAKEOPT) -f mod_dir.mak         CFG="mod_dir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
274          $(MAKE) $(MAKEOPT) -f mod_imap.mak        CFG="mod_imap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
275          $(MAKE) $(MAKEOPT) -f mod_negotiation.mak CFG="mod_negotiation - Win32 $(LONG)" RECURSE=0 $(CTARGET)
276          $(MAKE) $(MAKEOPT) -f mod_rewrite.mak     CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
277          $(MAKE) $(MAKEOPT) -f mod_speling.mak     CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
278          $(MAKE) $(MAKEOPT) -f mod_userdir.mak     CFG="mod_userdir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
279          $(MAKE) $(MAKEOPT) -f mod_vhost_alias.mak CFG="mod_vhost_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
280         cd ..\..
281         cd modules\metadata
282          $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak   CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
283          $(MAKE) $(MAKEOPT) -f mod_env.mak         CFG="mod_env - Win32 $(LONG)" RECURSE=0 $(CTARGET)
284          $(MAKE) $(MAKEOPT) -f mod_expires.mak     CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
285          $(MAKE) $(MAKEOPT) -f mod_headers.mak     CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
286          $(MAKE) $(MAKEOPT) -f mod_ident.mak       CFG="mod_ident - Win32 $(LONG)" RECURSE=0 $(CTARGET)
287          $(MAKE) $(MAKEOPT) -f mod_mime_magic.mak  CFG="mod_mime_magic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
288          $(MAKE) $(MAKEOPT) -f mod_setenvif.mak    CFG="mod_setenvif - Win32 $(LONG)" RECURSE=0 $(CTARGET)
289          $(MAKE) $(MAKEOPT) -f mod_unique_id.mak   CFG="mod_unique_id - Win32 $(LONG)" RECURSE=0 $(CTARGET)
290          $(MAKE) $(MAKEOPT) -f mod_usertrack.mak   CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
291          $(MAKE) $(MAKEOPT) -f mod_version.mak     CFG="mod_version - Win32 $(LONG)" RECURSE=0 $(CTARGET)
292         cd ..\..
293         cd modules\proxy
294          $(MAKE) $(MAKEOPT) -f mod_proxy.mak       CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
295          $(MAKE) $(MAKEOPT) -f mod_proxy_connect.mak CFG="mod_proxy_connect - Win32 $(LONG)" RECURSE=0 $(CTARGET)
296          $(MAKE) $(MAKEOPT) -f mod_proxy_ftp.mak   CFG="mod_proxy_ftp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
297          $(MAKE) $(MAKEOPT) -f mod_proxy_http.mak  CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
298         cd ..\..
299 !IF EXIST("srclib\openssl")
300         cd modules\ssl
301          $(MAKE) $(MAKEOPT) -f mod_ssl.mak         CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET) .\$(LONG)\mod_ssl.so
302         cd ..\..
303         cd support
304          $(MAKE) $(MAKEOPT) -f abs.mak             CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
305         cd ..
306 !ENDIF
307         cd support
308          $(MAKE) $(MAKEOPT) -f ab.mak              CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
309          $(MAKE) $(MAKEOPT) -f htdbm.mak           CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
310          $(MAKE) $(MAKEOPT) -f htdigest.mak        CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
311          $(MAKE) $(MAKEOPT) -f htpasswd.mak        CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
312          $(MAKE) $(MAKEOPT) -f logresolve.mak      CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
313          $(MAKE) $(MAKEOPT) -f rotatelogs.mak      CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
314         cd ..
315         cd support\win32
316          $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak   CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
317          $(MAKE) $(MAKEOPT) -f wintty.mak          CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
318         cd ..\..
319
320 !ELSEIF EXIST("Apache.sln")
321
322 _cleanr:  
323         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
324
325 _cleand:  
326         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/clean" _build
327
328 _build:
329         echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
330         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildBin
331 !IF EXIST("srclib\openssl")
332         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
333         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
334 !ENDIF
335 !IF EXIST("srclib\zlib")
336         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
337 !ENDIF
338
339 !ELSE
340
341 _cleanr:  
342         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
343
344 _cleand:  
345         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/CLEAN" _build
346
347 _build:
348         @echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
349         @msdev Apache.dsw /USEENV /MAKE \
350                 "BuildBin - Win32 $(LONG)" $(CTARGET)
351 !IF "$(CTARGET)" == "/CLEAN"
352         @cd srclib\apr-iconv
353         @$(MAKE) $(MAKEOPT) /f build\modules.mk.win clean \
354                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
355         @cd ..\..
356 !ENDIF
357 !IF EXIST("srclib\openssl")
358         @msdev Apache.dsw /USEENV /MAKE \
359                 "mod_ssl - Win32 $(LONG)" \
360                 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
361 !ENDIF
362 !IF EXIST("srclib\zlib")
363         @msdev Apache.dsw /USEENV /MAKE \
364                 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
365 !ENDIF
366
367 !ENDIF
368
369
370 _copybin:
371         copy $(LONG)\Apache.$(src_exe)                          "$(inst_exe)" <.y
372         copy $(LONG)\libhttpd.$(src_dll)                        "$(inst_dll)" <.y
373         copy srclib\apr\$(LONG)\libapr-1.$(src_dll)             "$(inst_dll)" <.y
374         copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll)  "$(inst_dll)" <.y
375         copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll)    "$(inst_dll)" <.y
376         copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so)       "$(inst_so)" <.y
377         copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so)      "$(inst_so)" <.y
378         copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so)       "$(inst_so)" <.y
379         copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so)        "$(inst_so)" <.y
380         copy modules\aaa\$(LONG)\mod_authn_default.$(src_so)    "$(inst_so)" <.y
381         copy modules\aaa\$(LONG)\mod_authn_file.$(src_so)       "$(inst_so)" <.y
382         copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so)        "$(inst_so)" <.y
383         copy modules\aaa\$(LONG)\mod_authz_default.$(src_so)    "$(inst_so)" <.y
384         copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so)  "$(inst_so)" <.y
385         copy modules\aaa\$(LONG)\mod_authz_host.$(src_so)       "$(inst_so)" <.y
386         copy modules\aaa\$(LONG)\mod_authz_user.$(src_so)       "$(inst_so)" <.y
387         copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so)      "$(inst_so)" <.y
388         copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so)     "$(inst_so)" <.y
389         copy modules\cache\$(LONG)\mod_file_cache.$(src_so)     "$(inst_so)" <.y
390         copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so)        "$(inst_so)" <.y
391         copy modules\dav\main\$(LONG)\mod_dav.$(src_so)         "$(inst_so)" <.y
392         copy modules\experimental\$(LONG)\mod_cache.$(src_so)           "$(inst_so)" <.y
393         copy modules\experimental\$(LONG)\mod_charset_lite.$(src_so)    "$(inst_so)" <.y
394         copy modules\experimental\$(LONG)\mod_mem_cache.$(src_so)       "$(inst_so)" <.y
395         copy modules\experimental\$(LONG)\mod_disk_cache.$(src_so)      "$(inst_so)" <.y
396 !IF EXIST("srclib\zlib")
397         copy modules\filters\$(LONG)\mod_deflate.$(src_so)      "$(inst_so)" <.y
398 !IF EXIST("srclib\zlib\zlib1.$(src_dll)")
399         copy srclib\zlib\zlib1.$(src_dll)                       "$(inst_dll)" <.y
400 !ENDIF
401 !ENDIF
402         copy modules\filters\$(LONG)\mod_ext_filter.$(src_so)   "$(inst_so)" <.y
403         copy modules\filters\$(LONG)\mod_include.$(src_so)      "$(inst_so)" <.y
404         copy modules\generators\$(LONG)\mod_asis.$(src_so)      "$(inst_so)" <.y
405         copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
406         copy modules\generators\$(LONG)\mod_cgi.$(src_so)       "$(inst_so)" <.y
407         copy modules\generators\$(LONG)\mod_info.$(src_so)      "$(inst_so)" <.y
408         copy modules\generators\$(LONG)\mod_status.$(src_so)    "$(inst_so)" <.y
409         copy modules\http\$(LONG)\mod_mime.$(src_so)            "$(inst_so)" <.y
410         copy modules\ldap\$(LONG)\mod_ldap.$(src_so)            "$(inst_so)" <.y
411         copy modules\loggers\$(LONG)\mod_log_config.$(src_so)   "$(inst_so)" <.y
412         copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
413         copy modules\loggers\$(LONG)\mod_logio.$(src_so)        "$(inst_so)" <.y
414         copy modules\mappers\$(LONG)\mod_actions.$(src_so)      "$(inst_so)" <.y
415         copy modules\mappers\$(LONG)\mod_alias.$(src_so)        "$(inst_so)" <.y
416         copy modules\mappers\$(LONG)\mod_dir.$(src_so)          "$(inst_so)" <.y
417         copy modules\mappers\$(LONG)\mod_imap.$(src_so)         "$(inst_so)" <.y
418         copy modules\mappers\$(LONG)\mod_negotiation.$(src_so)  "$(inst_so)" <.y
419         copy modules\mappers\$(LONG)\mod_rewrite.$(src_so)      "$(inst_so)" <.y
420         copy modules\mappers\$(LONG)\mod_speling.$(src_so)      "$(inst_so)" <.y
421         copy modules\mappers\$(LONG)\mod_userdir.$(src_so)      "$(inst_so)" <.y
422         copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so)  "$(inst_so)" <.y
423         copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so)   "$(inst_so)" <.y
424         copy modules\metadata\$(LONG)\mod_env.$(src_so)         "$(inst_so)" <.y
425         copy modules\metadata\$(LONG)\mod_expires.$(src_so)     "$(inst_so)" <.y
426         copy modules\metadata\$(LONG)\mod_headers.$(src_so)     "$(inst_so)" <.y
427         copy modules\metadata\$(LONG)\mod_ident.$(src_so)       "$(inst_so)" <.y
428         copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so)  "$(inst_so)" <.y
429         copy modules\metadata\$(LONG)\mod_setenvif.$(src_so)    "$(inst_so)" <.y
430         copy modules\metadata\$(LONG)\mod_unique_id.$(src_so)   "$(inst_so)" <.y
431         copy modules\metadata\$(LONG)\mod_usertrack.$(src_so)   "$(inst_so)" <.y
432         copy modules\metadata\$(LONG)\mod_version.$(src_so)     "$(inst_so)" <.y
433         copy modules\proxy\$(LONG)\mod_proxy.$(src_so)          "$(inst_so)" <.y
434         copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so)  "$(inst_so)" <.y
435         copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so)      "$(inst_so)" <.y
436         copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so)     "$(inst_so)" <.y
437 !IF EXIST("srclib\openssl")
438         copy modules\ssl\$(LONG)\mod_ssl.$(src_so)                      "$(inst_so)" <.y
439         $(quiet)copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe)        "$(inst_exe)" <.y
440         $(quiet)copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll)       "$(inst_dll)" <.y
441         $(quiet)copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll)       "$(inst_dll)" <.y
442         copy support\$(LONG)\abs.$(src_exe)     "$(inst_exe)\ab.$(src_exe)" <.y
443 !ELSE
444         copy support\$(LONG)\ab.$(src_exe)                              "$(inst_exe)" <.y
445 !ENDIF
446         copy support\$(LONG)\htdbm.$(src_exe)                   "$(inst_exe)" <.y
447         copy support\$(LONG)\htdigest.$(src_exe)                "$(inst_exe)" <.y
448         copy support\$(LONG)\htpasswd.$(src_exe)                "$(inst_exe)" <.y
449         copy support\$(LONG)\logresolve.$(src_exe)              "$(inst_exe)" <.y
450         copy support\$(LONG)\rotatelogs.$(src_exe)              "$(inst_exe)" <.y
451         copy support\win32\$(LONG)\ApacheMonitor.$(src_exe)     "$(inst_exe)" <.y
452         copy support\win32\$(LONG)\wintty.$(src_exe)            "$(inst_exe)" <.y
453
454 # First we create the tree and populate the README so that 
455 # whatever happens, all licensing has already propagated.  
456 # Then repeatedly invoke the _copybin build to copy the
457 # real binaries, then pdb symbols, anf finally dbg syms.
458 # Then hit docs of various sorts, then includes and libs,
459 # and finally do the .conf magic.
460 #
461 _install:
462         echo Y >.y
463         echo A >.A
464         -mkdir "$(INSTDIR)"
465         -mkdir "$(INSTDIR)\bin"
466         -mkdir "$(INSTDIR)\bin\iconv"
467         -mkdir "$(INSTDIR)\cgi-bin"
468         -mkdir "$(INSTDIR)\conf"
469         -mkdir "$(INSTDIR)\error"
470         -mkdir "$(INSTDIR)\htdocs"
471         -mkdir "$(INSTDIR)\manual"
472         -mkdir "$(INSTDIR)\icons"
473         -mkdir "$(INSTDIR)\include"
474         -mkdir "$(INSTDIR)\lib"
475         -mkdir "$(INSTDIR)\logs"
476         -mkdir "$(INSTDIR)\modules"
477         -mkdir "$(INSTDIR)\proxy"
478         -mkdir "$(INSTDIR)\symbols"
479         -mkdir "$(INSTDIR)\symbols\exe"
480         -mkdir "$(INSTDIR)\symbols\dll"
481         -mkdir "$(INSTDIR)\symbols\so"
482         copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
483         copy CHANGES      "$(INSTDIR)\CHANGES.txt" <.y
484         copy INSTALL      "$(INSTDIR)\INSTALL.txt" <.y
485         copy LICENSE      "$(INSTDIR)\LICENSE.txt" <.y
486         copy README       "$(INSTDIR)\README.txt" <.y
487 !IF EXIST("srclib\openssl")
488         type << >> "$(INSTDIR)\README.txt"
489
490   This binary distribution includes cryptographic software written by
491   Eric Young (eay@cryptsoft.com), software written by Tim Hudson 
492   (tjh@cryptsoft.com), and software developed by the OpenSSL Project 
493   for use in the OpenSSL Toolkit <http://www.openssl.org/>.
494 <<
495         -awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
496 BEGIN {
497     print "";
498     print "For the libeay32.dll, ssleay32.dll and certtool.exe components:";
499     print "";
500     while ( getline > 0 ) {
501         print $$0;
502    }
503 }
504 <<
505         copy << + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
506
507  Apache HTTP Server 2.0 Limited OpenSSL Distribution
508
509  This binary distribution includes the minimal components of OpenSSL required
510  to support mod_ssl for Apache HTTP Server version 2.0 (details are listed 
511  in OPENSSL-README.txt.)  For the complete list of CHANGES to this and later 
512  versions of OpenSSL, please refer to the definative source,
513  <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
514  full binary or source distribution package from <http://www.openssl.org/>.
515
516  These OpenSSL binaries were built for distribution from the U.S. without 
517  support for the patented encryption methods IDEA, MDC-2 or RC5.
518
519 --------------------------------------------------------------------------------
520 <<
521         copy << + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt" <.y
522
523  Apache HTTP Server 2.0 Limited OpenSSL Distribution
524
525  This binary installation of OpenSSL is a limited distribution of the documents
526  OPENSSL-LICENSE.txt, OPENSSL-NEWS.txt and OPENSSL-README.txt, and the binaries
527
528    libeay32.dll
529    ssleay32.dll
530    openssl.exe
531
532  These are the minimal libraries and tools required to use mod_ssl as 
533  distributed with Apache HTTP Server version 2.0.  No library link files, 
534  headers or sources are distributed with this binary distribution.  Please 
535  refer to the <http://www.openssl.org/> site for complete source or binary 
536  distributions.
537
538  These OpenSSL binaries were built for distribution from the U.S. without 
539  support for the patented encryption methods IDEA, MDC-2 or RC5.
540
541  The Apache HTTP Project only supports the binary distribution of these files
542  and development of the mod_ssl module.  We cannot provide support assistance
543  for using or configuring the OpenSSL package or these modules.  Please refer
544  all installation and configuration questions to the appropriate forum,
545  such as the user supported lists, <http://httpd.apache.org/userslist.html> 
546  the Apache HTTP Server user's list or <http://www.openssl.org/support/> the
547  OpenSSL support page.
548
549 --------------------------------------------------------------------------------
550 <<
551 !ENDIF
552 !IF EXIST("srclib\zlib")
553         type << >> "$(INSTDIR)\README.txt"
554
555   This binary distribution of mod_deflate.so includes zlib compression code
556   <http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
557   and Mark Adler (madler@alumni.caltech.edu) .
558 <<
559         -awk -f <<script.awk < "srclib\zlib\README" >> "$(INSTDIR)\LICENSE.txt"
560 BEGIN {
561     while ( getline > 0 ) {
562         if ( $$0 ~ /Copyright notice:/ ) {
563             print "";
564             print "For the mod_deflate zlib compression component:";
565             while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
566                 print $$0;
567             }
568             exit 0;
569         }
570     }
571     exit 1;
572 }
573 <<
574 !ENDIF
575         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
576                 _copybin src_exe=exe src_dll=dll src_so=so             \
577                 inst_exe="$(INSTDIR)\bin"                              \
578                 inst_dll="$(INSTDIR)\bin"                              \
579                 inst_so="$(INSTDIR)\modules"
580         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
581                 _copybin src_exe=pdb src_dll=pdb src_so=pdb quiet="-"  \
582                 inst_exe="$(INSTDIR)\bin"                              \
583                 inst_dll="$(INSTDIR)\bin"                              \
584                 inst_so="$(INSTDIR)\modules"
585         cd srclib\apr-iconv
586         $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
587                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
588                 INSTALL_DIR="$(INSTDIR)\bin\iconv"
589         cd ..\..
590         copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
591         -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
592     BEGIN { 
593         if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
594             gsub( /\\/, "/", perlroot );
595             print "#!" perlroot;
596         }
597     }
598     {
599         if ( $$0 !~ /^#!/ ) {
600             print $$0;
601         }
602     }
603 <<
604         xcopy docs\error        "$(INSTDIR)\error" /s /d < .a
605         xcopy docs\docroot      "$(INSTDIR)\htdocs" /d < .a
606         xcopy docs\icons        "$(INSTDIR)\icons" /s /d < .a
607         xcopy docs\manual       "$(INSTDIR)\manual" /s /d < .a
608         xcopy srclib\pcre\pcre*.h                       "$(INSTDIR)\include" /d < .a
609         xcopy srclib\apr-util\xml\expat\lib\expat.h     "$(INSTDIR)\include" /d < .a
610         xcopy srclib\apr\include\*.h                    "$(INSTDIR)\include" /d < .a
611         xcopy srclib\apr-util\include\*.h               "$(INSTDIR)\include" /d < .a
612         xcopy include\*.h                               "$(INSTDIR)\include" /d < .a
613         copy srclib\apr\Lib$(SHORT)\apr-1.lib           "$(INSTDIR)\lib" <.y
614         copy srclib\apr\Lib$(SHORT)\apr_src.pdb         "$(INSTDIR)\lib" <.y
615         copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib  "$(INSTDIR)\lib" <.y
616         copy srclib\apr-util\Lib$(SHORT)\aprutil_src.pdb "$(INSTDIR)\lib" <.y
617         copy srclib\pcre\Lib$(SHORT)\pcre.lib           "$(INSTDIR)\lib" <.y
618         copy srclib\pcre\Lib$(SHORT)\pcre_src.pdb       "$(INSTDIR)\lib" <.y
619         copy srclib\pcre\Lib$(SHORT)\pcreposix.lib      "$(INSTDIR)\lib" <.y
620         copy srclib\pcre\Lib$(SHORT)\pcreposix_src.pdb  "$(INSTDIR)\lib" <.y
621         copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
622         copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml_src.pdb "$(INSTDIR)\lib" <.y
623         copy srclib\apr\$(LONG)\libapr-1.lib            "$(INSTDIR)\lib" <.y
624         copy srclib\apr\$(LONG)\libapr-1.exp            "$(INSTDIR)\lib" <.y
625         copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib "$(INSTDIR)\lib" <.y
626         copy srclib\apr-iconv\$(LONG)\libapriconv-1.exp "$(INSTDIR)\lib" <.y
627         copy srclib\apr-util\$(LONG)\libaprutil-1.lib   "$(INSTDIR)\lib" <.y
628         copy srclib\apr-util\$(LONG)\libaprutil-1.exp   "$(INSTDIR)\lib" <.y
629         copy $(LONG)\libhttpd.exp                       "$(INSTDIR)\lib" <.y
630         copy $(LONG)\libhttpd.lib                       "$(INSTDIR)\lib" <.y
631         copy modules\dav\main\$(LONG)\mod_dav.exp       "$(INSTDIR)\lib" <.y
632         copy modules\dav\main\$(LONG)\mod_dav.lib       "$(INSTDIR)\lib" <.y
633         copy docs\conf\magic "$(INSTDIR)\conf\magic.default" <.y
634         if not exist "$(INSTDIR)\conf\magic" \
635             copy "$(INSTDIR)\conf\magic.default" "$(INSTDIR)\conf\magic"
636         copy docs\conf\mime.types "$(INSTDIR)\conf\mime.types.default" <.y
637         if not exist "$(INSTDIR)\conf\mime.types" \
638             copy "$(INSTDIR)\conf\mime.types.default" "$(INSTDIR)\conf\mime.types"
639         copy docs\conf\httpd-win.conf "$(INSTDIR)\conf\httpd.default.conf" <.y
640         -awk -f <<script.awk "docs/conf/httpd-win.conf" "$(INSTDIR)" > "$(INSTDIR)\conf\httpd.default.conf"
641     BEGIN { 
642         serverroot = ARGV[2];
643         delete ARGV[2];
644         gsub( /\\/, "/", serverroot );
645         "cd" | getline root;
646         gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
647     }
648     {
649         gsub( /@@ServerRoot@@/, serverroot );
650         gsub( /@@ServerName@@/, "$(SERVERNAME)" );
651         gsub( /@@Port@@/, "$(PORT)" );
652         print $$0;
653     }
654 <<
655         if not exist "$(INSTDIR)\conf\httpd.conf" \
656             copy "$(INSTDIR)\conf\httpd.default.conf" "$(INSTDIR)\conf\httpd.conf"
657 !IF EXIST("srclib\openssl")
658         copy docs\conf\ssl-std.conf.in "$(INSTDIR)\conf\ssl.default.conf" <.y
659         -awk -f <<script.awk "docs/conf/ssl-std.conf.in" "$(INSTDIR)" > "$(INSTDIR)\conf\ssl.default.conf"
660     BEGIN { 
661         serverroot = ARGV[2];
662         delete ARGV[2];
663         gsub( /\\/, "/", serverroot );
664         "cd" | getline root;
665         gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
666     }
667     {
668         gsub( /@@ServerRoot@@/, serverroot );
669         gsub( /@exp_runtimedir@/, "logs" );
670         gsub( /@exp_htdocsdir@/, serverroot "/htdocs" );
671         gsub( /@exp_logfiledir@/, "logs" );
672         gsub( /@exp_sysconfdir@/, "conf" );
673         gsub( /@exp_cgidir@/, serverroot "/cgi" );
674         print $$0;
675     }
676 <<
677         if not exist "$(INSTDIR)\conf\ssl.conf" \
678             copy "$(INSTDIR)\conf\ssl.default.conf" "$(INSTDIR)\conf\ssl.conf"
679 !ENDIF
680         -awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
681     { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
682           sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" ); 
683       }
684       if ( $$0 !~ /^#!@perlbin@/ )
685           print $$0;
686     }
687 <<
688         del .y
689         del .a