1 # Makefile for Windows NT and Windows 95/98/2000
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
13 # The following install defaults may be customized;
19 # SERVERNAME localhost
21 # ALL (unset) Includes additional modules for build testing
25 # nmake -f Makefile.win PORT=80 INSTDIR="d:\Program Files\Apache" installr
27 # Be aware that certain awk's will not accept backslashed names,
28 # so the server root should be given in forward slashes (quoted),
29 # preferably with the drive designation!
31 !IF EXIST("httpd.vcproj") && ([devenv /help > NUL 2>&1] == 0) \
32 && !defined(USEMAK) && !defined(USEDSW)
36 !ELSEIF EXIST("httpd.mak") && !defined(USEDSW)
48 !IF ("$(CTARGET)" == "") && ($(USESLN) == 1)
52 !IF !EXIST("srclib\apr") || !EXIST("srclib\apr-util") || !EXIST("srclib\apr-iconv")
53 !MESSAGE Please check out or download and unpack the Apache Portability Runtime
54 !MESSAGE sources (apr, apr-iconv and apr-util) into your srclib dir.
55 !MESSAGE Apache cannot build without these libraries!
57 !ERROR Need srclib\ apr, apr-iconv and apr-util
60 # Note; _tryssl: is only used by the msvc developer studio environment to 'fix up'
61 # the build, since conditional dependencies aren't supported.
63 !IF EXIST("srclib\openssl")
64 !IF "$(LONG)" == "Debug" && EXIST("srclib\openssl\out32dll.dbg\openssl.exe")
73 $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
76 $(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
78 !ELSEIF $(USESLN) == 1
79 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
80 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
82 @msdev Apache.dsw /USEENV /MAKE \
83 "mod_ssl - Win32 $(LONG)" \
84 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
88 # NOT EXIST("srclib\openssl")
92 @echo mod_ssl and ab/ssl will not build unless openssl is installed
93 @echo in srclib\openssl. They must be precompiled using the
94 @echo ms/ntdll.mak file, see srclib\openssl\INSTALL.W32. The most
95 @echo recent version confirmed to build with mod_ssl and ab is 0.9.8d.
96 @echo Available from http://www.openssl.org/
99 !IF EXIST("srclib\zlib")
104 $(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
106 !ELSEIF $(USESLN) == 1
107 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
109 @msdev Apache.dsw /USEENV /MAKE \
110 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
114 # NOT EXIST("srclib\zlib")
118 @echo mod_deflate will not build unless zlib is installed in srclib\zlib.
119 @echo Version 1.2.1 and later available from http://www.gzip.org/zlib/
120 @echo built w/ nmake -f win32/Makefile.msc will satisfy this requirement.
124 !IF "$(INSTDIR)" == ""
127 !IF "$(SERVERNAME)" == ""
133 !IF "$(SSLPORT)" == ""
139 !MESSAGE INSTDIR = $(INSTDIR)
140 !MESSAGE SERVERNAME = $(SERVERNAME)
141 !MESSAGE PORT = $(PORT)
142 !IF EXIST("srclib\openssl")
143 !MESSAGE SSLPORT = $(SSLPORT)
146 !MESSAGE To change these options use 'nmake -f Makefile.win [option=value]'
147 !MESSAGE Example: nmake -f Makefile.win PORT=8080
153 # Only default the behavior if MAKEOPT= is omitted
155 # Microsoft NMake options
157 !ELSEIF "$(MAKE)" == "make"
158 # Borland make options? Not really supported (yet)
167 bscmake.exe -nologo -Iu -o Apache.bsc *.sbr
171 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build
174 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug _build
177 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install
180 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug _build _install
182 clean: _cleanr _cleand
183 -if exist Browse\. rd /s Browse < << > nul
190 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
193 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET=CLEAN _build
196 echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
198 $(MAKE) $(MAKEOPT) -f apr.mak CFG="apr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
199 $(MAKE) $(MAKEOPT) -f libapr.mak CFG="libapr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
202 $(MAKE) $(MAKEOPT) -f apriconv.mak CFG="apriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
203 $(MAKE) $(MAKEOPT) -f libapriconv.mak CFG="libapriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
204 !IF "$(CTARGET)" == "CLEAN"
205 $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
206 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
209 $(MAKE) $(MAKEOPT) -f Makefile.win all \
210 BUILD_MODE=$(LONG) BIND_MODE=shared
212 $(MAKE) $(MAKEOPT) -f Makefile.win all \
213 BUILD_MODE=$(LONG) BIND_MODE=shared
217 cd srclib\apr-util\xml\expat\lib
218 $(MAKE) $(MAKEOPT) -f xml.mak CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET)
220 $(MAKE) $(MAKEOPT) -f aprutil.mak CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
221 $(MAKE) $(MAKEOPT) -f libaprutil.mak CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
224 $(MAKE) $(MAKEOPT) -f dftables.mak CFG="dftables - Win32 $(LONG)" RECURSE=0 $(CTARGET)
225 $(MAKE) $(MAKEOPT) -f pcre.mak CFG="pcre - Win32 $(LONG)" RECURSE=0 $(CTARGET)
228 $(MAKE) $(MAKEOPT) -f gen_test_char.mak CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET)
230 $(MAKE) $(MAKEOPT) -f libhttpd.mak CFG="libhttpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
231 $(MAKE) $(MAKEOPT) -f httpd.mak CFG="httpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
232 # build ldap prior to authnz_ldap
234 $(MAKE) $(MAKEOPT) -f mod_ldap.mak CFG="mod_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
237 $(MAKE) $(MAKEOPT) -f mod_dbd.mak CFG="mod_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
240 $(MAKE) $(MAKEOPT) -f mod_access_compat.mak CFG="mod_access_compat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
241 $(MAKE) $(MAKEOPT) -f mod_auth_basic.mak CFG="mod_auth_basic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
242 $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
243 $(MAKE) $(MAKEOPT) -f mod_authn_anon.mak CFG="mod_authn_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
244 $(MAKE) $(MAKEOPT) -f mod_authn_core.mak CFG="mod_authn_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
245 $(MAKE) $(MAKEOPT) -f mod_authn_dbd.mak CFG="mod_authn_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
246 $(MAKE) $(MAKEOPT) -f mod_authn_dbm.mak CFG="mod_authn_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
247 $(MAKE) $(MAKEOPT) -f mod_authn_default.mak CFG="mod_authn_default - Win32 $(LONG)" RECURSE=0 $(CTARGET)
248 $(MAKE) $(MAKEOPT) -f mod_authn_file.mak CFG="mod_authn_file - Win32 $(LONG)" RECURSE=0 $(CTARGET)
249 $(MAKE) $(MAKEOPT) -f mod_authnz_ldap.mak CFG="mod_authnz_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
250 $(MAKE) $(MAKEOPT) -f mod_authz_core.mak CFG="mod_authz_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
251 $(MAKE) $(MAKEOPT) -f mod_authz_dbd.mak CFG="mod_authz_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
252 $(MAKE) $(MAKEOPT) -f mod_authz_dbm.mak CFG="mod_authz_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
253 $(MAKE) $(MAKEOPT) -f mod_authz_default.mak CFG="mod_authz_default - Win32 $(LONG)" RECURSE=0 $(CTARGET)
254 $(MAKE) $(MAKEOPT) -f mod_authz_groupfile.mak CFG="mod_authz_groupfile - Win32 $(LONG)" RECURSE=0 $(CTARGET)
255 $(MAKE) $(MAKEOPT) -f mod_authz_host.mak CFG="mod_authz_host - Win32 $(LONG)" RECURSE=0 $(CTARGET)
256 $(MAKE) $(MAKEOPT) -f mod_authz_owner.mak CFG="mod_authz_owner - Win32 $(LONG)" RECURSE=0 $(CTARGET)
257 $(MAKE) $(MAKEOPT) -f mod_authz_user.mak CFG="mod_authz_user - Win32 $(LONG)" RECURSE=0 $(CTARGET)
259 cd modules\arch\win32
260 $(MAKE) $(MAKEOPT) -f mod_isapi.mak CFG="mod_isapi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
263 $(MAKE) $(MAKEOPT) -f mod_cache.mak CFG="mod_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
264 $(MAKE) $(MAKEOPT) -f mod_file_cache.mak CFG="mod_file_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
265 $(MAKE) $(MAKEOPT) -f mod_mem_cache.mak CFG="mod_mem_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
266 $(MAKE) $(MAKEOPT) -f mod_disk_cache.mak CFG="mod_disk_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
269 $(MAKE) $(MAKEOPT) -f mod_dav.mak CFG="mod_dav - Win32 $(LONG)" RECURSE=0 $(CTARGET)
272 $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
275 $(MAKE) $(MAKEOPT) -f mod_dav_lock.mak CFG="mod_dav_lock - Win32 $(LONG)" RECURSE=0 $(CTARGET)
279 $(MAKE) $(MAKEOPT) -f mod_bucketeer.mak CFG="mod_bucketeer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
281 $(MAKE) $(MAKEOPT) -f mod_dumpio.mak CFG="mod_dumpio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
285 $(MAKE) $(MAKEOPT) -f mod_echo.mak CFG="mod_echo - Win32 $(LONG)" RECURSE=0 $(CTARGET)
290 $(MAKE) $(MAKEOPT) -f mod_case_filter.mak CFG="mod_case_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
291 $(MAKE) $(MAKEOPT) -f mod_case_filter_in.mak CFG="mod_case_filter_in - Win32 $(LONG)" RECURSE=0 $(CTARGET)
292 $(MAKE) $(MAKEOPT) -f mod_example_hooks.mak CFG="mod_example_hooks - Win32 $(LONG)" RECURSE=0 $(CTARGET)
295 cd modules\experimental
296 $(MAKE) $(MAKEOPT) -f mod_substitute.mak CFG="mod_substitute - Win32 $(LONG)" RECURSE=0 $(CTARGET)
299 $(MAKE) $(MAKEOPT) -f mod_charset_lite.mak CFG="mod_charset_lite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
300 !IF EXIST("srclib\zlib")
301 $(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
303 $(MAKE) $(MAKEOPT) -f mod_ext_filter.mak CFG="mod_ext_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
304 $(MAKE) $(MAKEOPT) -f mod_filter.mak CFG="mod_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
305 $(MAKE) $(MAKEOPT) -f mod_include.mak CFG="mod_include - Win32 $(LONG)" RECURSE=0 $(CTARGET)
307 cd modules\generators
308 $(MAKE) $(MAKEOPT) -f mod_asis.mak CFG="mod_asis - Win32 $(LONG)" RECURSE=0 $(CTARGET)
309 $(MAKE) $(MAKEOPT) -f mod_autoindex.mak CFG="mod_autoindex - Win32 $(LONG)" RECURSE=0 $(CTARGET)
310 $(MAKE) $(MAKEOPT) -f mod_cgi.mak CFG="mod_cgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
311 $(MAKE) $(MAKEOPT) -f mod_info.mak CFG="mod_info - Win32 $(LONG)" RECURSE=0 $(CTARGET)
312 $(MAKE) $(MAKEOPT) -f mod_status.mak CFG="mod_status - Win32 $(LONG)" RECURSE=0 $(CTARGET)
315 $(MAKE) $(MAKEOPT) -f mod_mime.mak CFG="mod_mime - Win32 $(LONG)" RECURSE=0 $(CTARGET)
318 $(MAKE) $(MAKEOPT) -f mod_log_config.mak CFG="mod_log_config - Win32 $(LONG)" RECURSE=0 $(CTARGET)
319 $(MAKE) $(MAKEOPT) -f mod_log_forensic.mak CFG="mod_log_forensic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
320 $(MAKE) $(MAKEOPT) -f mod_logio.mak CFG="mod_logio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
323 $(MAKE) $(MAKEOPT) -f mod_actions.mak CFG="mod_actions - Win32 $(LONG)" RECURSE=0 $(CTARGET)
324 $(MAKE) $(MAKEOPT) -f mod_alias.mak CFG="mod_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
325 $(MAKE) $(MAKEOPT) -f mod_dir.mak CFG="mod_dir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
326 $(MAKE) $(MAKEOPT) -f mod_imagemap.mak CFG="mod_imagemap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
327 $(MAKE) $(MAKEOPT) -f mod_negotiation.mak CFG="mod_negotiation - Win32 $(LONG)" RECURSE=0 $(CTARGET)
328 $(MAKE) $(MAKEOPT) -f mod_rewrite.mak CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
329 $(MAKE) $(MAKEOPT) -f mod_speling.mak CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
330 $(MAKE) $(MAKEOPT) -f mod_userdir.mak CFG="mod_userdir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
331 $(MAKE) $(MAKEOPT) -f mod_vhost_alias.mak CFG="mod_vhost_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
334 $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
335 $(MAKE) $(MAKEOPT) -f mod_env.mak CFG="mod_env - Win32 $(LONG)" RECURSE=0 $(CTARGET)
336 $(MAKE) $(MAKEOPT) -f mod_expires.mak CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
337 $(MAKE) $(MAKEOPT) -f mod_headers.mak CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
338 $(MAKE) $(MAKEOPT) -f mod_ident.mak CFG="mod_ident - Win32 $(LONG)" RECURSE=0 $(CTARGET)
339 $(MAKE) $(MAKEOPT) -f mod_mime_magic.mak CFG="mod_mime_magic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
340 $(MAKE) $(MAKEOPT) -f mod_setenvif.mak CFG="mod_setenvif - Win32 $(LONG)" RECURSE=0 $(CTARGET)
341 $(MAKE) $(MAKEOPT) -f mod_unique_id.mak CFG="mod_unique_id - Win32 $(LONG)" RECURSE=0 $(CTARGET)
342 $(MAKE) $(MAKEOPT) -f mod_usertrack.mak CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
343 $(MAKE) $(MAKEOPT) -f mod_version.mak CFG="mod_version - Win32 $(LONG)" RECURSE=0 $(CTARGET)
346 $(MAKE) $(MAKEOPT) -f mod_proxy.mak CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
347 $(MAKE) $(MAKEOPT) -f mod_proxy_ajp.mak CFG="mod_proxy_ajp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
348 $(MAKE) $(MAKEOPT) -f mod_proxy_balancer.mak CFG="mod_proxy_balancer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
349 $(MAKE) $(MAKEOPT) -f mod_proxy_connect.mak CFG="mod_proxy_connect - Win32 $(LONG)" RECURSE=0 $(CTARGET)
350 $(MAKE) $(MAKEOPT) -f mod_proxy_fcgi.mak CFG="mod_proxy_fcgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
351 $(MAKE) $(MAKEOPT) -f mod_proxy_ftp.mak CFG="mod_proxy_ftp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
352 $(MAKE) $(MAKEOPT) -f mod_proxy_http.mak CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
354 !IF EXIST("srclib\openssl")
356 $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
359 $(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
363 $(MAKE) $(MAKEOPT) -f ab.mak CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
364 $(MAKE) $(MAKEOPT) -f htcacheclean.mak CFG="htcacheclean - Win32 $(LONG)" RECURSE=0 $(CTARGET)
365 $(MAKE) $(MAKEOPT) -f htdbm.mak CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
366 $(MAKE) $(MAKEOPT) -f htdigest.mak CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
367 $(MAKE) $(MAKEOPT) -f htpasswd.mak CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
368 $(MAKE) $(MAKEOPT) -f httxt2dbm.mak CFG="httxt2dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
369 $(MAKE) $(MAKEOPT) -f logresolve.mak CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
370 $(MAKE) $(MAKEOPT) -f rotatelogs.mak CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
373 $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
374 $(MAKE) $(MAKEOPT) -f wintty.mak CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
377 !ELSEIF $(USESLN) == 1
380 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
383 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET="/clean" _build
386 echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
388 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildAll
390 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildBin
392 !IF EXIST("srclib\openssl")
393 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
394 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
396 !IF EXIST("srclib\zlib")
397 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
403 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
406 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET="/CLEAN" _build
409 @echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
411 @msdev Apache.dsw /USEENV /MAKE \
412 "BuildAll - Win32 $(LONG)" $(CTARGET)
414 @msdev Apache.dsw /USEENV /MAKE \
415 "BuildBin - Win32 $(LONG)" $(CTARGET)
417 !IF "$(CTARGET)" == "/CLEAN"
419 @$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
420 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
423 !IF EXIST("srclib\openssl")
424 @msdev Apache.dsw /USEENV /MAKE \
425 "mod_ssl - Win32 $(LONG)" \
426 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
428 !IF EXIST("srclib\zlib")
429 @msdev Apache.dsw /USEENV /MAKE \
430 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
437 copy $(LONG)\httpd.$(src_exe) "$(inst_exe)" <.y
438 copy $(LONG)\libhttpd.$(src_dll) "$(inst_dll)" <.y
439 copy srclib\apr\$(LONG)\libapr-1.$(src_dll) "$(inst_dll)" <.y
440 copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll) "$(inst_dll)" <.y
441 copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll) "$(inst_dll)" <.y
442 copy modules\aaa\$(LONG)\mod_access_compat.$(src_so) "$(inst_so)" <.y
443 copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so) "$(inst_so)" <.y
444 copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so) "$(inst_so)" <.y
445 copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so) "$(inst_so)" <.y
446 copy modules\aaa\$(LONG)\mod_authn_core.$(src_so) "$(inst_so)" <.y
447 copy modules\aaa\$(LONG)\mod_authn_dbd.$(src_so) "$(inst_so)" <.y
448 copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so) "$(inst_so)" <.y
449 copy modules\aaa\$(LONG)\mod_authn_default.$(src_so) "$(inst_so)" <.y
450 copy modules\aaa\$(LONG)\mod_authn_file.$(src_so) "$(inst_so)" <.y
451 copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so) "$(inst_so)" <.y
452 copy modules\aaa\$(LONG)\mod_authz_core.$(src_so) "$(inst_so)" <.y
453 copy modules\aaa\$(LONG)\mod_authz_dbd.$(src_so) "$(inst_so)" <.y
454 copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so) "$(inst_so)" <.y
455 copy modules\aaa\$(LONG)\mod_authz_core.$(src_so) "$(inst_so)" <.y
456 copy modules\aaa\$(LONG)\mod_authz_default.$(src_so) "$(inst_so)" <.y
457 copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so) "$(inst_so)" <.y
458 copy modules\aaa\$(LONG)\mod_authz_host.$(src_so) "$(inst_so)" <.y
459 copy modules\aaa\$(LONG)\mod_authz_owner.$(src_so) "$(inst_so)" <.y
460 copy modules\aaa\$(LONG)\mod_authz_user.$(src_so) "$(inst_so)" <.y
461 copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so) "$(inst_so)" <.y
462 copy modules\cache\$(LONG)\mod_cache.$(src_so) "$(inst_so)" <.y
463 copy modules\cache\$(LONG)\mod_file_cache.$(src_so) "$(inst_so)" <.y
464 copy modules\cache\$(LONG)\mod_mem_cache.$(src_so) "$(inst_so)" <.y
465 copy modules\cache\$(LONG)\mod_disk_cache.$(src_so) "$(inst_so)" <.y
466 copy modules\database\$(LONG)\mod_dbd.$(src_so) "$(inst_so)" <.y
467 copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so) "$(inst_so)" <.y
468 copy modules\dav\lock\$(LONG)\mod_dav_lock.$(src_so) "$(inst_so)" <.y
469 copy modules\dav\main\$(LONG)\mod_dav.$(src_so) "$(inst_so)" <.y
471 copy modules\debugging\$(LONG)\mod_bucketeer.$(src_so) "$(inst_so)" <.y
473 copy modules\debugging\$(LONG)\mod_dumpio.$(src_so) "$(inst_so)" <.y
475 copy modules\echo\$(LONG)\mod_echo.$(src_so) "$(inst_so)" <.y
476 copy modules\examples\$(LONG)\mod_case_filter.$(src_so) "$(inst_so)" <.y
477 copy modules\examples\$(LONG)\mod_case_filter_in.$(src_so) "$(inst_so)" <.y
478 copy modules\examples\$(LONG)\mod_example_hooks.$(src_so) "$(inst_so)" <.y
480 copy modules\experimental\$(LONG)\mod_substitute.$(src_so) "$(inst_so)" <.y
481 copy modules\filters\$(LONG)\mod_charset_lite.$(src_so) "$(inst_so)" <.y
482 !IF EXIST("srclib\zlib")
483 copy modules\filters\$(LONG)\mod_deflate.$(src_so) "$(inst_so)" <.y
484 !IF EXIST("srclib\zlib\zlib1.$(src_dll)")
485 copy srclib\zlib\zlib1.$(src_dll) "$(inst_dll)" <.y
488 copy modules\filters\$(LONG)\mod_ext_filter.$(src_so) "$(inst_so)" <.y
489 copy modules\filters\$(LONG)\mod_filter.$(src_so) "$(inst_so)" <.y
490 copy modules\filters\$(LONG)\mod_include.$(src_so) "$(inst_so)" <.y
491 copy modules\generators\$(LONG)\mod_asis.$(src_so) "$(inst_so)" <.y
492 copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
493 copy modules\generators\$(LONG)\mod_cgi.$(src_so) "$(inst_so)" <.y
494 copy modules\generators\$(LONG)\mod_info.$(src_so) "$(inst_so)" <.y
495 copy modules\generators\$(LONG)\mod_status.$(src_so) "$(inst_so)" <.y
496 copy modules\http\$(LONG)\mod_mime.$(src_so) "$(inst_so)" <.y
497 copy modules\ldap\$(LONG)\mod_ldap.$(src_so) "$(inst_so)" <.y
498 copy modules\loggers\$(LONG)\mod_log_config.$(src_so) "$(inst_so)" <.y
499 copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
500 copy modules\loggers\$(LONG)\mod_logio.$(src_so) "$(inst_so)" <.y
501 copy modules\mappers\$(LONG)\mod_actions.$(src_so) "$(inst_so)" <.y
502 copy modules\mappers\$(LONG)\mod_alias.$(src_so) "$(inst_so)" <.y
503 copy modules\mappers\$(LONG)\mod_dir.$(src_so) "$(inst_so)" <.y
504 copy modules\mappers\$(LONG)\mod_imagemap.$(src_so) "$(inst_so)" <.y
505 copy modules\mappers\$(LONG)\mod_negotiation.$(src_so) "$(inst_so)" <.y
506 copy modules\mappers\$(LONG)\mod_rewrite.$(src_so) "$(inst_so)" <.y
507 copy modules\mappers\$(LONG)\mod_speling.$(src_so) "$(inst_so)" <.y
508 copy modules\mappers\$(LONG)\mod_userdir.$(src_so) "$(inst_so)" <.y
509 copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so) "$(inst_so)" <.y
510 copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so) "$(inst_so)" <.y
511 copy modules\metadata\$(LONG)\mod_env.$(src_so) "$(inst_so)" <.y
512 copy modules\metadata\$(LONG)\mod_expires.$(src_so) "$(inst_so)" <.y
513 copy modules\metadata\$(LONG)\mod_headers.$(src_so) "$(inst_so)" <.y
514 copy modules\metadata\$(LONG)\mod_ident.$(src_so) "$(inst_so)" <.y
515 copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so) "$(inst_so)" <.y
516 copy modules\metadata\$(LONG)\mod_setenvif.$(src_so) "$(inst_so)" <.y
517 copy modules\metadata\$(LONG)\mod_unique_id.$(src_so) "$(inst_so)" <.y
518 copy modules\metadata\$(LONG)\mod_usertrack.$(src_so) "$(inst_so)" <.y
519 copy modules\metadata\$(LONG)\mod_version.$(src_so) "$(inst_so)" <.y
520 copy modules\proxy\$(LONG)\mod_proxy.$(src_so) "$(inst_so)" <.y
521 copy modules\proxy\$(LONG)\mod_proxy_ajp.$(src_so) "$(inst_so)" <.y
522 copy modules\proxy\$(LONG)\mod_proxy_balancer.$(src_so) "$(inst_so)" <.y
523 copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so) "$(inst_so)" <.y
524 copy modules\proxy\$(LONG)\mod_proxy_fcgi.$(src_so) "$(inst_so)" <.y
525 copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so) "$(inst_so)" <.y
526 copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so) "$(inst_so)" <.y
527 !IF EXIST("srclib\openssl")
528 copy modules\ssl\$(LONG)\mod_ssl.$(src_so) "$(inst_so)" <.y
529 $(quiet)copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe) "$(inst_exe)" <.y
530 $(quiet)copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll) "$(inst_dll)" <.y
531 $(quiet)copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll) "$(inst_dll)" <.y
532 copy support\$(LONG)\abs.$(src_exe) "$(inst_exe)\ab.$(src_exe)" <.y
534 copy support\$(LONG)\ab.$(src_exe) "$(inst_exe)" <.y
536 copy support\$(LONG)\htcacheclean.$(src_exe) "$(inst_exe)" <.y
537 copy support\$(LONG)\htdbm.$(src_exe) "$(inst_exe)" <.y
538 copy support\$(LONG)\htdigest.$(src_exe) "$(inst_exe)" <.y
539 copy support\$(LONG)\htpasswd.$(src_exe) "$(inst_exe)" <.y
540 copy support\$(LONG)\httxt2dbm.$(src_exe) "$(inst_exe)" <.y
541 copy support\$(LONG)\logresolve.$(src_exe) "$(inst_exe)" <.y
542 copy support\$(LONG)\rotatelogs.$(src_exe) "$(inst_exe)" <.y
543 copy support\win32\$(LONG)\ApacheMonitor.$(src_exe) "$(inst_exe)" <.y
544 copy support\win32\$(LONG)\wintty.$(src_exe) "$(inst_exe)" <.y
547 # First we create the tree and populate the README so that
548 # whatever happens, all licensing has already propagated.
549 # Then repeatedly invoke the _copybin build to copy the
550 # real binaries, then pdb symbols, anf finally dbg syms.
551 # Then hit docs of various sorts, then includes and libs,
552 # and finally do the .conf magic.
558 -mkdir "$(INSTDIR)\bin"
559 -mkdir "$(INSTDIR)\bin\iconv"
560 -mkdir "$(INSTDIR)\cgi-bin"
561 -mkdir "$(INSTDIR)\conf"
562 -mkdir "$(INSTDIR)\conf\extra"
563 -mkdir "$(INSTDIR)\error"
564 -mkdir "$(INSTDIR)\htdocs"
565 -mkdir "$(INSTDIR)\manual"
566 -mkdir "$(INSTDIR)\icons"
567 -mkdir "$(INSTDIR)\include"
568 -mkdir "$(INSTDIR)\lib"
569 -mkdir "$(INSTDIR)\logs"
570 -mkdir "$(INSTDIR)\modules"
571 -mkdir "$(INSTDIR)\proxy"
572 -mkdir "$(INSTDIR)\symbols"
573 -mkdir "$(INSTDIR)\symbols\exe"
574 -mkdir "$(INSTDIR)\symbols\dll"
575 -mkdir "$(INSTDIR)\symbols\so"
576 copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
577 copy CHANGES "$(INSTDIR)\CHANGES.txt" <.y
578 copy INSTALL "$(INSTDIR)\INSTALL.txt" <.y
579 copy LICENSE "$(INSTDIR)\LICENSE.txt" <.y
580 copy NOTICE "$(INSTDIR)\NOTICE.txt" <.y
581 copy README "$(INSTDIR)\README.txt" <.y
582 !IF EXIST("srclib\openssl")
583 copy srclib\openssl\apps\openssl.cnf "$(INSTDIR)\conf\openssl.cnf" <.y
584 type << >> "$(INSTDIR)\NOTICE.txt"
586 This binary distribution includes cryptographic software written by
587 Eric Young (eay@cryptsoft.com), software written by Tim Hudson
588 (tjh@cryptsoft.com), and software developed by the OpenSSL Project
589 for use in the OpenSSL Toolkit <http://www.openssl.org/>.
591 -awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
594 print "For the libeay32.dll, ssleay32.dll and certtool.exe components:";
596 while ( getline > 0 ) {
601 copy << + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
603 Apache HTTP Server 2.3 Limited OpenSSL Distribution
605 This binary distribution includes the minimal components of OpenSSL required
606 to support mod_ssl for Apache HTTP Server version 2.3 (details are listed
607 in OPENSSL-README.txt.) For the complete list of CHANGES to this and later
608 versions of OpenSSL, please refer to the definative source,
609 <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
610 full binary or source distribution package from <http://www.openssl.org/>.
612 These OpenSSL binaries were built for distribution from the U.S. without
613 support for the patented encryption methods IDEA, MDC-2 or RC5.
615 --------------------------------------------------------------------------------
617 copy << + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt" <.y
619 Apache HTTP Server 2.3 Limited OpenSSL Distribution
621 This binary installation of OpenSSL is a limited distribution of the
622 files derived from the OpenSSL project:
632 These are the minimal libraries and tools required to use mod_ssl as
633 distributed with Apache HTTP Server version 2.3. No library link files,
634 headers or sources are distributed with this binary distribution. Please
635 refer to the <http://www.openssl.org/> site for complete source or binary
638 These OpenSSL binaries were built for distribution from the U.S. without
639 support for the patented encryption methods IDEA, MDC-2 or RC5.
641 The Apache HTTP Project only supports the binary distribution of these files
642 and development of the mod_ssl module. We cannot provide support assistance
643 for using or configuring the OpenSSL package or these modules. Please refer
644 all installation and configuration questions to the appropriate forum,
645 such as the user supported lists, <http://httpd.apache.org/userslist.html>
646 the Apache HTTP Server user's list or <http://www.openssl.org/support/> the
647 OpenSSL support page.
649 --------------------------------------------------------------------------------
652 !IF EXIST("srclib\zlib")
653 type << >> "$(INSTDIR)\NOTICE.txt"
655 This binary distribution of mod_deflate.so includes zlib compression code
656 <http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
657 and Mark Adler (madler@alumni.caltech.edu) .
659 -awk -f <<script.awk < "srclib\zlib\README" >> "$(INSTDIR)\LICENSE.txt"
661 while ( getline > 0 ) {
662 if ( $$0 ~ /Copyright notice:/ ) {
664 print "For the mod_deflate zlib compression component:";
665 while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
675 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
676 _copybin src_exe=exe src_dll=dll src_so=so \
677 inst_exe="$(INSTDIR)\bin" \
678 inst_dll="$(INSTDIR)\bin" \
679 inst_so="$(INSTDIR)\modules"
680 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
681 _copybin src_exe=pdb src_dll=pdb src_so=pdb quiet="-" \
682 inst_exe="$(INSTDIR)\bin" \
683 inst_dll="$(INSTDIR)\bin" \
684 inst_so="$(INSTDIR)\modules"
686 $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
687 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
688 INSTALL_DIR="$(INSTDIR)\bin\iconv"
690 copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
691 -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
693 if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
694 gsub( /\\/, "/", perlroot );
699 if ( $$0 !~ /^#!/ ) {
704 xcopy docs\error "$(INSTDIR)\error" /s /d < .a
705 xcopy docs\docroot "$(INSTDIR)\htdocs" /d < .a
706 xcopy docs\icons "$(INSTDIR)\icons" /s /d < .a
707 xcopy docs\manual "$(INSTDIR)\manual" /s /d < .a
708 xcopy srclib\apr-util\xml\expat\lib\expat.h "$(INSTDIR)\include" /d < .a
709 xcopy srclib\apr\include\*.h "$(INSTDIR)\include" /d < .a
710 xcopy srclib\apr-util\include\*.h "$(INSTDIR)\include" /d < .a
711 xcopy include\*.h "$(INSTDIR)\include" /d < .a
712 copy srclib\apr\Lib$(SHORT)\apr-1.lib "$(INSTDIR)\lib" <.y
713 copy srclib\apr\Lib$(SHORT)\apr_src.pdb "$(INSTDIR)\lib" <.y
714 copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib "$(INSTDIR)\lib" <.y
715 copy srclib\apr-util\Lib$(SHORT)\aprutil_src.pdb "$(INSTDIR)\lib" <.y
716 copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
717 copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml_src.pdb "$(INSTDIR)\lib" <.y
718 copy srclib\apr\$(LONG)\libapr-1.lib "$(INSTDIR)\lib" <.y
719 copy srclib\apr\$(LONG)\libapr-1.exp "$(INSTDIR)\lib" <.y
720 copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib "$(INSTDIR)\lib" <.y
721 copy srclib\apr-iconv\$(LONG)\libapriconv-1.exp "$(INSTDIR)\lib" <.y
722 copy srclib\apr-util\$(LONG)\libaprutil-1.lib "$(INSTDIR)\lib" <.y
723 copy srclib\apr-util\$(LONG)\libaprutil-1.exp "$(INSTDIR)\lib" <.y
724 copy $(LONG)\libhttpd.exp "$(INSTDIR)\lib" <.y
725 copy $(LONG)\libhttpd.lib "$(INSTDIR)\lib" <.y
726 copy modules\dav\main\$(LONG)\mod_dav.exp "$(INSTDIR)\lib" <.y
727 copy modules\dav\main\$(LONG)\mod_dav.lib "$(INSTDIR)\lib" <.y
729 for %f in ( charset.conv magic mime.types ) do ( \
730 copy docs\conf\%f "$(INSTDIR)\conf\%f.default" <.y && \
731 if not exist "$(INSTDIR)\conf\%f" \
732 copy "$(INSTDIR)\conf\%f.default" "$(INSTDIR)\conf\%f" \
734 copy docs\conf\httpd-win.conf "$(INSTDIR)\conf\httpd.conf.default" <.y
735 -awk -f <<script.awk "docs/conf/httpd-win.conf" "$(INSTDIR)" > "$(INSTDIR)\conf\httpd.conf.default"
737 serverroot = ARGV[2];
739 gsub( /\\/, "/", serverroot );
741 gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
744 gsub( /@@ServerRoot@@/, serverroot );
745 gsub( /@@ServerName@@/, "$(SERVERNAME)" );
746 gsub( /@@Port@@/, "$(PORT)" );
750 if not exist "$(INSTDIR)\conf\httpd.conf" \
751 copy "$(INSTDIR)\conf\httpd.conf.default" "$(INSTDIR)\conf\httpd.conf"
752 for %f in ( docs\conf\extra\*.in ) do ( \
753 copy %f "$(INSTDIR)\conf\extra\%~nf.default" <.y && \
754 awk -f <<script.awk "docs/conf/extra/%~nf.in" "$(INSTDIR)" > "$(INSTDIR)\conf\extra\%~nf.default" )
756 serverroot = ARGV[2];
758 gsub( /\\/, "/", serverroot );
760 gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
763 gsub( /SSLMutex file:@exp_runtimedir@\/ssl_mutex/, "SSLMutex default" );
764 gsub( /@@ServerRoot@@/, serverroot );
765 gsub( /@exp_cgidir@/, serverroot "/cgi-bin" );
766 gsub( /@exp_sysconfdir@/, serverroot "/conf" );
767 gsub( /@exp_errordir@/, serverroot "/error" );
768 gsub( /@exp_htdocsdir@/, serverroot "/htdocs" );
769 gsub( /@exp_iconsdir@/, serverroot "/icons" );
770 gsub( /@exp_logfiledir@/, serverroot "/logs" );
771 gsub( /@exp_runtimedir@/, serverroot "/logs" );
772 gsub( /@exp_manualdir@/, serverroot "/manual" );
773 gsub( /@rel_runtimedir@/, "logs" );
774 gsub( /@rel_logfiledir@/, "logs" );
775 gsub( /\/home\/\*\/public_html/, "\"C:/Documents and Settings/*/My Documents/My Website\"" );
776 gsub( /UserDir public_html/, "UserDir \"My Documents/My Website\"" );
777 gsub( /@@ServerName@@/, "$(SERVERNAME)" );
778 gsub( /@@Port@@/, "$(PORT)" );
779 gsub( /443/, "$(SSLPORT)" );
783 for %f in ( docs\conf\extra\*.in ) do ( \
784 if not exist "$(INSTDIR)\conf\extra\%~nf" \
785 copy "$(INSTDIR)\conf\extra\%~nf.default" "$(INSTDIR)\conf\extra\%~nf" \
787 copy "support\dbmmanage.in" "$(INSTDIR)\bin\dbmmanage.pl"
788 -awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
789 { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
790 sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" );
792 if ( $$0 !~ /^#!@perlbin@/ )