]> granicus.if.org Git - apache/blob - Makefile.win
readd suexec setuid and user check
[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 zlib does not need to be built, we compile the sources directly.
102         @echo Available from http://www.gzip.org/zlib/
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         cd modules\aaa
213          $(MAKE) $(MAKEOPT) -f mod_auth_basic.mak  CFG="mod_auth_basic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
214          $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
215          $(MAKE) $(MAKEOPT) -f mod_authn_anon.mak  CFG="mod_authn_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
216          $(MAKE) $(MAKEOPT) -f mod_authn_dbm.mak   CFG="mod_authn_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
217          $(MAKE) $(MAKEOPT) -f mod_authn_default.mak CFG="mod_authn_default - Win32 $(LONG)" RECURSE=0 $(CTARGET)
218          $(MAKE) $(MAKEOPT) -f mod_authn_file.mak  CFG="mod_authn_file - Win32 $(LONG)" RECURSE=0 $(CTARGET)
219          $(MAKE) $(MAKEOPT) -f mod_authz_dbm.mak   CFG="mod_authz_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
220          $(MAKE) $(MAKEOPT) -f mod_authz_default.mak CFG="mod_authz_default - Win32 $(LONG)" RECURSE=0 $(CTARGET)
221          $(MAKE) $(MAKEOPT) -f mod_authz_groupfile.mak CFG="mod_authz_groupfile - Win32 $(LONG)" RECURSE=0 $(CTARGET)
222          $(MAKE) $(MAKEOPT) -f mod_authz_host.mak  CFG="mod_authz_host - Win32 $(LONG)" RECURSE=0 $(CTARGET)
223          $(MAKE) $(MAKEOPT) -f mod_authz_user.mak  CFG="mod_authz_user - Win32 $(LONG)" RECURSE=0 $(CTARGET)
224         cd ..\..
225         cd modules\arch\win32
226          $(MAKE) $(MAKEOPT) -f mod_isapi.mak       CFG="mod_isapi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
227         cd ..\..\..
228         cd modules\cache
229          $(MAKE) $(MAKEOPT) -f mod_file_cache.mak  CFG="mod_file_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
230         cd ..\..
231         cd modules\dav\main
232          $(MAKE) $(MAKEOPT) -f mod_dav.mak         CFG="mod_dav - Win32 $(LONG)" RECURSE=0 $(CTARGET)
233         cd ..\..\..
234         cd modules\dav\fs
235          $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak      CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
236         cd ..\..\..
237         cd modules\experimental
238          $(MAKE) $(MAKEOPT) -f mod_cache.mak       CFG="mod_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
239          $(MAKE) $(MAKEOPT) -f mod_charset_lite.mak CFG="mod_charset_lite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
240          $(MAKE) $(MAKEOPT) -f mod_mem_cache.mak   CFG="mod_mem_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
241          $(MAKE) $(MAKEOPT) -f mod_disk_cache.mak  CFG="mod_disk_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
242          $(MAKE) $(MAKEOPT) -f util_ldap.mak       CFG="util_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
243          $(MAKE) $(MAKEOPT) -f mod_auth_ldap.mak   CFG="mod_auth_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
244         cd ..\..
245         cd modules\filters
246 !IF EXIST("srclib\zlib")
247          $(MAKE) $(MAKEOPT) -f mod_deflate.mak     CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
248 !ENDIF
249          $(MAKE) $(MAKEOPT) -f mod_ext_filter.mak  CFG="mod_ext_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
250          $(MAKE) $(MAKEOPT) -f mod_include.mak     CFG="mod_include - Win32 $(LONG)" RECURSE=0 $(CTARGET)
251         cd ..\..
252         cd modules\generators
253          $(MAKE) $(MAKEOPT) -f mod_asis.mak        CFG="mod_asis - Win32 $(LONG)" RECURSE=0 $(CTARGET)
254          $(MAKE) $(MAKEOPT) -f mod_autoindex.mak   CFG="mod_autoindex - Win32 $(LONG)" RECURSE=0 $(CTARGET)
255          $(MAKE) $(MAKEOPT) -f mod_cgi.mak         CFG="mod_cgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
256          $(MAKE) $(MAKEOPT) -f mod_info.mak        CFG="mod_info - Win32 $(LONG)" RECURSE=0 $(CTARGET)
257          $(MAKE) $(MAKEOPT) -f mod_status.mak      CFG="mod_status - Win32 $(LONG)" RECURSE=0 $(CTARGET)
258         cd ..\..
259         cd modules\http
260          $(MAKE) $(MAKEOPT) -f mod_mime.mak        CFG="mod_mime - Win32 $(LONG)" RECURSE=0 $(CTARGET)
261         cd ..\..
262         cd modules\loggers
263          $(MAKE) $(MAKEOPT) -f mod_log_config.mak  CFG="mod_log_config - Win32 $(LONG)" RECURSE=0 $(CTARGET)
264          $(MAKE) $(MAKEOPT) -f mod_log_forensic.mak CFG="mod_log_forensic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
265          $(MAKE) $(MAKEOPT) -f mod_logio.mak       CFG="mod_logio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
266         cd ..\..
267         cd modules\mappers
268          $(MAKE) $(MAKEOPT) -f mod_actions.mak     CFG="mod_actions - Win32 $(LONG)" RECURSE=0 $(CTARGET)
269          $(MAKE) $(MAKEOPT) -f mod_alias.mak       CFG="mod_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
270          $(MAKE) $(MAKEOPT) -f mod_dir.mak         CFG="mod_dir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
271          $(MAKE) $(MAKEOPT) -f mod_imap.mak        CFG="mod_imap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
272          $(MAKE) $(MAKEOPT) -f mod_negotiation.mak CFG="mod_negotiation - Win32 $(LONG)" RECURSE=0 $(CTARGET)
273          $(MAKE) $(MAKEOPT) -f mod_rewrite.mak     CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
274          $(MAKE) $(MAKEOPT) -f mod_speling.mak     CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
275          $(MAKE) $(MAKEOPT) -f mod_userdir.mak     CFG="mod_userdir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
276          $(MAKE) $(MAKEOPT) -f mod_vhost_alias.mak CFG="mod_vhost_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
277         cd ..\..
278         cd modules\metadata
279          $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak   CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
280          $(MAKE) $(MAKEOPT) -f mod_env.mak         CFG="mod_env - Win32 $(LONG)" RECURSE=0 $(CTARGET)
281          $(MAKE) $(MAKEOPT) -f mod_expires.mak     CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
282          $(MAKE) $(MAKEOPT) -f mod_headers.mak     CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
283          $(MAKE) $(MAKEOPT) -f mod_ident.mak       CFG="mod_ident - Win32 $(LONG)" RECURSE=0 $(CTARGET)
284          $(MAKE) $(MAKEOPT) -f mod_mime_magic.mak  CFG="mod_mime_magic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
285          $(MAKE) $(MAKEOPT) -f mod_setenvif.mak    CFG="mod_setenvif - Win32 $(LONG)" RECURSE=0 $(CTARGET)
286          $(MAKE) $(MAKEOPT) -f mod_unique_id.mak   CFG="mod_unique_id - Win32 $(LONG)" RECURSE=0 $(CTARGET)
287          $(MAKE) $(MAKEOPT) -f mod_usertrack.mak   CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
288          $(MAKE) $(MAKEOPT) -f mod_version.mak     CFG="mod_version - Win32 $(LONG)" RECURSE=0 $(CTARGET)
289         cd ..\..
290         cd modules\proxy
291          $(MAKE) $(MAKEOPT) -f mod_proxy.mak       CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
292          $(MAKE) $(MAKEOPT) -f mod_proxy_connect.mak CFG="mod_proxy_connect - Win32 $(LONG)" RECURSE=0 $(CTARGET)
293          $(MAKE) $(MAKEOPT) -f mod_proxy_ftp.mak   CFG="mod_proxy_ftp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
294          $(MAKE) $(MAKEOPT) -f mod_proxy_http.mak  CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
295         cd ..\..
296 !IF EXIST("srclib\openssl")
297         cd modules\ssl
298          $(MAKE) $(MAKEOPT) -f mod_ssl.mak         CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET) .\$(LONG)\mod_ssl.so
299         cd ..\..
300         cd support
301          $(MAKE) $(MAKEOPT) -f abs.mak             CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
302         cd ..
303 !ENDIF
304         cd support
305          $(MAKE) $(MAKEOPT) -f ab.mak              CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
306          $(MAKE) $(MAKEOPT) -f htdbm.mak           CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
307          $(MAKE) $(MAKEOPT) -f htdigest.mak        CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
308          $(MAKE) $(MAKEOPT) -f htpasswd.mak        CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
309          $(MAKE) $(MAKEOPT) -f logresolve.mak      CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
310          $(MAKE) $(MAKEOPT) -f rotatelogs.mak      CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
311         cd ..
312         cd support\win32
313          $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak   CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
314          $(MAKE) $(MAKEOPT) -f wintty.mak          CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
315         cd ..\..
316
317 !ELSEIF EXIST("Apache.sln")
318
319 _cleanr:  
320         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
321
322 _cleand:  
323         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/clean" _build
324
325 _build:
326         echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
327         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildBin
328 !IF EXIST("srclib\openssl")
329         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
330         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
331 !ENDIF
332 !IF EXIST("srclib\zlib")
333         devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
334 !ENDIF
335
336 !ELSE
337
338 _cleanr:  
339         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
340
341 _cleand:  
342         @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/CLEAN" _build
343
344 _build:
345         @echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
346         @msdev Apache.dsw /USEENV /MAKE \
347                 "BuildBin - Win32 $(LONG)" $(CTARGET)
348 !IF "$(CTARGET)" == "/CLEAN"
349         @cd srclib\apr-iconv
350         @$(MAKE) $(MAKEOPT) /f build\modules.mk.win clean \
351                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
352         @cd ..\..
353 !ENDIF
354 !IF EXIST("srclib\openssl")
355         @msdev Apache.dsw /USEENV /MAKE \
356                 "mod_ssl - Win32 $(LONG)" \
357                 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
358 !ENDIF
359 !IF EXIST("srclib\zlib")
360         @msdev Apache.dsw /USEENV /MAKE \
361                 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
362 !ENDIF
363
364 !ENDIF
365
366
367 _copybin:
368         copy $(LONG)\Apache.$(src_exe)                          "$(inst_exe)" <.y
369         copy $(LONG)\libhttpd.$(src_dll)                        "$(inst_dll)" <.y
370         copy srclib\apr\$(LONG)\libapr-1.$(src_dll)             "$(inst_dll)" <.y
371         copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll)  "$(inst_dll)" <.y
372         copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll)    "$(inst_dll)" <.y
373         copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so)       "$(inst_so)" <.y
374         copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so)      "$(inst_so)" <.y
375         copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so)       "$(inst_so)" <.y
376         copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so)        "$(inst_so)" <.y
377         copy modules\aaa\$(LONG)\mod_authn_default.$(src_so)    "$(inst_so)" <.y
378         copy modules\aaa\$(LONG)\mod_authn_file.$(src_so)       "$(inst_so)" <.y
379         copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so)        "$(inst_so)" <.y
380         copy modules\aaa\$(LONG)\mod_authz_default.$(src_so)    "$(inst_so)" <.y
381         copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so)  "$(inst_so)" <.y
382         copy modules\aaa\$(LONG)\mod_authz_host.$(src_so)       "$(inst_so)" <.y
383         copy modules\aaa\$(LONG)\mod_authz_user.$(src_so)       "$(inst_so)" <.y
384         copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so)     "$(inst_so)" <.y
385         copy modules\cache\$(LONG)\mod_file_cache.$(src_so)     "$(inst_so)" <.y
386         copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so)        "$(inst_so)" <.y
387         copy modules\dav\main\$(LONG)\mod_dav.$(src_so)         "$(inst_so)" <.y
388         copy modules\experimental\$(LONG)\mod_cache.$(src_so)           "$(inst_so)" <.y
389         copy modules\experimental\$(LONG)\mod_charset_lite.$(src_so)    "$(inst_so)" <.y
390         copy modules\experimental\$(LONG)\mod_mem_cache.$(src_so)       "$(inst_so)" <.y
391         copy modules\experimental\$(LONG)\mod_disk_cache.$(src_so)      "$(inst_so)" <.y
392         copy modules\experimental\$(LONG)\util_ldap.$(src_so)           "$(inst_so)" <.y
393         copy modules\experimental\$(LONG)\mod_auth_ldap.$(src_so)       "$(inst_so)" <.y
394 !IF EXIST("srclib\zlib")
395         copy modules\filters\$(LONG)\mod_deflate.$(src_so)      "$(inst_so)" <.y
396 !ENDIF
397         copy modules\filters\$(LONG)\mod_ext_filter.$(src_so)   "$(inst_so)" <.y
398         copy modules\filters\$(LONG)\mod_include.$(src_so)      "$(inst_so)" <.y
399         copy modules\generators\$(LONG)\mod_asis.$(src_so)      "$(inst_so)" <.y
400         copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
401         copy modules\generators\$(LONG)\mod_cgi.$(src_so)       "$(inst_so)" <.y
402         copy modules\generators\$(LONG)\mod_info.$(src_so)      "$(inst_so)" <.y
403         copy modules\generators\$(LONG)\mod_status.$(src_so)    "$(inst_so)" <.y
404         copy modules\http\$(LONG)\mod_mime.$(src_so)            "$(inst_so)" <.y
405         copy modules\loggers\$(LONG)\mod_log_config.$(src_so)   "$(inst_so)" <.y
406         copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
407         copy modules\loggers\$(LONG)\mod_logio.$(src_so)        "$(inst_so)" <.y
408         copy modules\mappers\$(LONG)\mod_actions.$(src_so)      "$(inst_so)" <.y
409         copy modules\mappers\$(LONG)\mod_alias.$(src_so)        "$(inst_so)" <.y
410         copy modules\mappers\$(LONG)\mod_dir.$(src_so)          "$(inst_so)" <.y
411         copy modules\mappers\$(LONG)\mod_imap.$(src_so)         "$(inst_so)" <.y
412         copy modules\mappers\$(LONG)\mod_negotiation.$(src_so)  "$(inst_so)" <.y
413         copy modules\mappers\$(LONG)\mod_rewrite.$(src_so)      "$(inst_so)" <.y
414         copy modules\mappers\$(LONG)\mod_speling.$(src_so)      "$(inst_so)" <.y
415         copy modules\mappers\$(LONG)\mod_userdir.$(src_so)      "$(inst_so)" <.y
416         copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so)  "$(inst_so)" <.y
417         copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so)   "$(inst_so)" <.y
418         copy modules\metadata\$(LONG)\mod_env.$(src_so)         "$(inst_so)" <.y
419         copy modules\metadata\$(LONG)\mod_expires.$(src_so)     "$(inst_so)" <.y
420         copy modules\metadata\$(LONG)\mod_headers.$(src_so)     "$(inst_so)" <.y
421         copy modules\metadata\$(LONG)\mod_ident.$(src_so)       "$(inst_so)" <.y
422         copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so)  "$(inst_so)" <.y
423         copy modules\metadata\$(LONG)\mod_setenvif.$(src_so)    "$(inst_so)" <.y
424         copy modules\metadata\$(LONG)\mod_unique_id.$(src_so)   "$(inst_so)" <.y
425         copy modules\metadata\$(LONG)\mod_usertrack.$(src_so)   "$(inst_so)" <.y
426         copy modules\metadata\$(LONG)\mod_version.$(src_so)     "$(inst_so)" <.y
427         copy modules\proxy\$(LONG)\mod_proxy.$(src_so)          "$(inst_so)" <.y
428         copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so)  "$(inst_so)" <.y
429         copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so)      "$(inst_so)" <.y
430         copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so)     "$(inst_so)" <.y
431 !IF EXIST("srclib\openssl")
432         copy modules\ssl\$(LONG)\mod_ssl.$(src_so)                      "$(inst_so)" <.y
433         $(quiet)copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe)        "$(inst_exe)" <.y
434         $(quiet)copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll)       "$(inst_dll)" <.y
435         $(quiet)copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll)       "$(inst_dll)" <.y
436         copy support\$(LONG)\abs.$(src_exe)     "$(inst_exe)\ab.$(src_exe)" <.y
437 !ELSE
438         copy support\$(LONG)\ab.$(src_exe)                              "$(inst_exe)" <.y
439 !ENDIF
440         copy support\$(LONG)\htdbm.$(src_exe)                   "$(inst_exe)" <.y
441         copy support\$(LONG)\htdigest.$(src_exe)                "$(inst_exe)" <.y
442         copy support\$(LONG)\htpasswd.$(src_exe)                "$(inst_exe)" <.y
443         copy support\$(LONG)\logresolve.$(src_exe)              "$(inst_exe)" <.y
444         copy support\$(LONG)\rotatelogs.$(src_exe)              "$(inst_exe)" <.y
445         copy support\win32\$(LONG)\ApacheMonitor.$(src_exe)     "$(inst_exe)" <.y
446         copy support\win32\$(LONG)\wintty.$(src_exe)            "$(inst_exe)" <.y
447
448 # First we create the tree and populate the README so that 
449 # whatever happens, all licensing has already propagated.  
450 # Then repeatedly invoke the _copybin build to copy the
451 # real binaries, then pdb symbols, anf finally dbg syms.
452 # Then hit docs of various sorts, then includes and libs,
453 # and finally do the .conf magic.
454 #
455 _install:
456         echo Y >.y
457         echo A >.A
458         -mkdir "$(INSTDIR)"
459         -mkdir "$(INSTDIR)\bin"
460         -mkdir "$(INSTDIR)\bin\iconv"
461         -mkdir "$(INSTDIR)\cgi-bin"
462         -mkdir "$(INSTDIR)\conf"
463         -mkdir "$(INSTDIR)\error"
464         -mkdir "$(INSTDIR)\htdocs"
465         -mkdir "$(INSTDIR)\manual"
466         -mkdir "$(INSTDIR)\icons"
467         -mkdir "$(INSTDIR)\include"
468         -mkdir "$(INSTDIR)\lib"
469         -mkdir "$(INSTDIR)\logs"
470         -mkdir "$(INSTDIR)\modules"
471         -mkdir "$(INSTDIR)\proxy"
472         -mkdir "$(INSTDIR)\symbols"
473         -mkdir "$(INSTDIR)\symbols\exe"
474         -mkdir "$(INSTDIR)\symbols\dll"
475         -mkdir "$(INSTDIR)\symbols\so"
476         copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
477         copy CHANGES      "$(INSTDIR)\CHANGES.txt" <.y
478         copy INSTALL      "$(INSTDIR)\INSTALL.txt" <.y
479         copy LICENSE      "$(INSTDIR)\LICENSE.txt" <.y
480         copy README       "$(INSTDIR)\README.txt" <.y
481 !IF EXIST("srclib\openssl")
482         type << >> "$(INSTDIR)\README.txt"
483
484   This binary distribution includes cryptographic software written by
485   Eric Young (eay@cryptsoft.com), software written by Tim Hudson 
486   (tjh@cryptsoft.com), and software developed by the OpenSSL Project 
487   for use in the OpenSSL Toolkit <http://www.openssl.org/>.
488 <<
489         -awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
490 BEGIN {
491     print "";
492     print "For the libeay32.dll, ssleay32.dll and certtool.exe components:";
493     print "";
494     while ( getline > 0 ) {
495         print $$0;
496    }
497 }
498 <<
499         copy << + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
500
501  Apache HTTP Server 2.0 Limited OpenSSL Distribution
502
503  This binary distribution includes the minimal components of OpenSSL required
504  to support mod_ssl for Apache HTTP Server version 2.0 (details are listed 
505  in OPENSSL-README.txt.)  For the complete list of CHANGES to this and later 
506  versions of OpenSSL, please refer to the definative source,
507  <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
508  full binary or source distribution package from <http://www.openssl.org/>.
509
510  These OpenSSL binaries were built for distribution from the U.S. without 
511  support for the patented encryption methods IDEA, MDC-2 or RC5.
512
513 --------------------------------------------------------------------------------
514 <<
515         copy << + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt" <.y
516
517  Apache HTTP Server 2.0 Limited OpenSSL Distribution
518
519  This binary installation of OpenSSL is a limited distribution of the documents
520  OPENSSL-LICENSE.txt, OPENSSL-NEWS.txt and OPENSSL-README.txt, and the binaries
521
522    libeay32.dll
523    ssleay32.dll
524    openssl.exe
525
526  These are the minimal libraries and tools required to use mod_ssl as 
527  distributed with Apache HTTP Server version 2.0.  No library link files, 
528  headers or sources are distributed with this binary distribution.  Please 
529  refer to the <http://www.openssl.org/> site for complete source or binary 
530  distributions.
531
532  These OpenSSL binaries were built for distribution from the U.S. without 
533  support for the patented encryption methods IDEA, MDC-2 or RC5.
534
535  The Apache HTTP Project only supports the binary distribution of these files
536  and development of the mod_ssl module.  We cannot provide support assistance
537  for using or configuring the OpenSSL package or these modules.  Please refer
538  all installation and configuration questions to the appropriate forum,
539  such as the user supported lists, <http://httpd.apache.org/userslist.html> 
540  the Apache HTTP Server user's list or <http://www.openssl.org/support/> the
541  OpenSSL support page.
542
543 --------------------------------------------------------------------------------
544 <<
545 !ENDIF
546 !IF EXIST("srclib\zlib")
547         type << >> "$(INSTDIR)\README.txt"
548
549   This binary distribution of mod_deflate.so includes zlib compression code
550   <http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
551   and Mark Adler (madler@alumni.caltech.edu) .
552 <<
553         -awk -f <<script.awk < "srclib\zlib\README" >> "$(INSTDIR)\LICENSE.txt"
554 BEGIN {
555     while ( getline > 0 ) {
556         if ( $$0 ~ /Copyright notice:/ ) {
557             print "";
558             print "For the mod_deflate zlib compression component:";
559             while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
560                 print $$0;
561             }
562             exit 0;
563         }
564     }
565     exit 1;
566 }
567 <<
568 !ENDIF
569         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
570                 _copybin src_exe=exe src_dll=dll src_so=so             \
571                 inst_exe="$(INSTDIR)\bin"                              \
572                 inst_dll="$(INSTDIR)\bin"                              \
573                 inst_so="$(INSTDIR)\modules"
574         $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
575                 _copybin src_exe=pdb src_dll=pdb src_so=pdb quiet="-"  \
576                 inst_exe="$(INSTDIR)\bin"                              \
577                 inst_dll="$(INSTDIR)\bin"                              \
578                 inst_so="$(INSTDIR)\modules"
579         cd srclib\apr-iconv
580         $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
581                 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
582                 INSTALL_DIR="$(INSTDIR)\bin\iconv"
583         cd ..\..
584         copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
585         -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
586     BEGIN { 
587         if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
588             gsub( /\\/, "/", perlroot );
589             print "#!" perlroot;
590         }
591     }
592     {
593         if ( $$0 !~ /^#!/ ) {
594             print $$0;
595         }
596     }
597 <<
598         xcopy docs\error        "$(INSTDIR)\error" /s /d < .a
599         xcopy docs\docroot      "$(INSTDIR)\htdocs" /d < .a
600         xcopy docs\icons        "$(INSTDIR)\icons" /s /d < .a
601         xcopy docs\manual       "$(INSTDIR)\manual" /s /d < .a
602         xcopy srclib\pcre\pcre*.h                       "$(INSTDIR)\include" /d < .a
603         xcopy srclib\apr-util\xml\expat\lib\expat.h     "$(INSTDIR)\include" /d < .a
604         xcopy srclib\apr\include\*.h                    "$(INSTDIR)\include" /d < .a
605         xcopy srclib\apr-util\include\*.h               "$(INSTDIR)\include" /d < .a
606         xcopy include\*.h                               "$(INSTDIR)\include" /d < .a
607         copy srclib\apr\Lib$(SHORT)\apr-1.lib           "$(INSTDIR)\lib" <.y
608         copy srclib\apr\Lib$(SHORT)\apr_src.pdb         "$(INSTDIR)\lib" <.y
609         copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib  "$(INSTDIR)\lib" <.y
610         copy srclib\apr-util\Lib$(SHORT)\aprutil_src.pdb "$(INSTDIR)\lib" <.y
611         copy srclib\pcre\Lib$(SHORT)\pcre.lib           "$(INSTDIR)\lib" <.y
612         copy srclib\pcre\Lib$(SHORT)\pcre_src.pdb       "$(INSTDIR)\lib" <.y
613         copy srclib\pcre\Lib$(SHORT)\pcreposix.lib      "$(INSTDIR)\lib" <.y
614         copy srclib\pcre\Lib$(SHORT)\pcreposix_src.pdb  "$(INSTDIR)\lib" <.y
615         copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
616         copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml_src.pdb "$(INSTDIR)\lib" <.y
617         copy srclib\apr\$(LONG)\libapr-1.lib            "$(INSTDIR)\lib" <.y
618         copy srclib\apr\$(LONG)\libapr-1.exp            "$(INSTDIR)\lib" <.y
619         copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib "$(INSTDIR)\lib" <.y
620         copy srclib\apr-iconv\$(LONG)\libapriconv-1.exp "$(INSTDIR)\lib" <.y
621         copy srclib\apr-util\$(LONG)\libaprutil-1.lib   "$(INSTDIR)\lib" <.y
622         copy srclib\apr-util\$(LONG)\libaprutil-1.exp   "$(INSTDIR)\lib" <.y
623         copy $(LONG)\libhttpd.exp                       "$(INSTDIR)\lib" <.y
624         copy $(LONG)\libhttpd.lib                       "$(INSTDIR)\lib" <.y
625         copy modules\dav\main\$(LONG)\mod_dav.exp       "$(INSTDIR)\lib" <.y
626         copy modules\dav\main\$(LONG)\mod_dav.lib       "$(INSTDIR)\lib" <.y
627         copy docs\conf\magic "$(INSTDIR)\conf\magic.default" <.y
628         if not exist "$(INSTDIR)\conf\magic" \
629             copy "$(INSTDIR)\conf\magic.default" "$(INSTDIR)\conf\magic"
630         copy docs\conf\mime.types "$(INSTDIR)\conf\mime.types.default" <.y
631         if not exist "$(INSTDIR)\conf\mime.types" \
632             copy "$(INSTDIR)\conf\mime.types.default" "$(INSTDIR)\conf\mime.types"
633         copy docs\conf\httpd-win.conf "$(INSTDIR)\conf\httpd.default.conf" <.y
634         -awk -f <<script.awk "docs/conf/httpd-win.conf" "$(INSTDIR)" > "$(INSTDIR)\conf\httpd.default.conf"
635     BEGIN { 
636         serverroot = ARGV[2];
637         delete ARGV[2];
638         gsub( /\\/, "/", serverroot );
639         "cd" | getline root;
640         gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
641     }
642     {
643         gsub( /@@ServerRoot@@/, serverroot );
644         gsub( /@@ServerName@@/, "$(SERVERNAME)" );
645         gsub( /@@Port@@/, "$(PORT)" );
646         print $$0;
647     }
648 <<
649         if not exist "$(INSTDIR)\conf\httpd.conf" \
650             copy "$(INSTDIR)\conf\httpd.default.conf" "$(INSTDIR)\conf\httpd.conf"
651 !IF EXIST("srclib\openssl")
652         copy docs\conf\ssl-std.conf.in "$(INSTDIR)\conf\ssl.default.conf" <.y
653         -awk -f <<script.awk "docs/conf/ssl-std.conf.in" "$(INSTDIR)" > "$(INSTDIR)\conf\ssl.default.conf"
654     BEGIN { 
655         serverroot = ARGV[2];
656         delete ARGV[2];
657         gsub( /\\/, "/", serverroot );
658         "cd" | getline root;
659         gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
660     }
661     {
662         gsub( /@@ServerRoot@@/, serverroot );
663         gsub( /@exp_runtimedir@/, "logs" );
664         gsub( /@exp_htdocsdir@/, serverroot "/htdocs" );
665         gsub( /@exp_logfiledir@/, "logs" );
666         gsub( /@exp_sysconfdir@/, "conf" );
667         gsub( /@exp_cgidir@/, serverroot "/cgi" );
668         print $$0;
669     }
670 <<
671         if not exist "$(INSTDIR)\conf\ssl.conf" \
672             copy "$(INSTDIR)\conf\ssl.default.conf" "$(INSTDIR)\conf\ssl.conf"
673 !ENDIF
674         -awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
675     { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
676           sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" ); 
677       }
678       if ( $$0 !~ /^#!@perlbin@/ )
679           print $$0;
680     }
681 <<
682         del .y
683         del .a