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 # DOMAINNAME example.com
20 # SERVERNAME www.example.com
21 # SERVERNAME admin@example.com
23 # ALL (unset) Includes additional modules for build testing
27 # nmake -f Makefile.win PORT=80 INSTDIR="d:\Program Files\Apache" installr
29 # Be aware that certain awk's will not accept backslashed names,
30 # so the server root should be given in forward slashes (quoted),
31 # preferably with the drive designation!
33 !IF EXIST("httpd.vcproj") && ([devenv /help > NUL 2>&1] == 0) \
34 && !defined(USEMAK) && !defined(USEDSW)
38 !ELSEIF EXIST("httpd.mak") && !defined(USEDSW)
50 !IF ("$(CTARGET)" == "") && ($(USESLN) == 1)
54 !IF !EXIST("srclib\apr") || !EXIST("srclib\apr-util") || !EXIST("srclib\apr-iconv")
55 !MESSAGE Please check out or download and unpack the Apache Portability Runtime
56 !MESSAGE sources (apr, apr-iconv and apr-util) into your srclib dir.
57 !MESSAGE Apache cannot build without these libraries!
59 !ERROR Need srclib\ apr, apr-iconv and apr-util
62 # Note; _tryssl: is only used by the msvc developer studio environment to 'fix up'
63 # the build, since conditional dependencies aren't supported.
65 !IF EXIST("srclib\openssl")
66 !IF "$(LONG)" == "Debug" && EXIST("srclib\openssl\out32dll.dbg\openssl.exe")
75 $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
78 $(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
80 !ELSEIF $(USESLN) == 1
81 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
82 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
84 @msdev Apache.dsw /USEENV /MAKE \
85 "mod_ssl - Win32 $(LONG)" \
86 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
90 # NOT EXIST("srclib\openssl")
94 @echo mod_ssl and ab/ssl will not build unless openssl is installed
95 @echo in srclib\openssl. They must be precompiled using the
96 @echo ms/ntdll.mak file, see srclib\openssl\INSTALL.W32. The most
97 @echo recent version confirmed to build with mod_ssl and ab is 0.9.8d.
98 @echo Available from http://www.openssl.org/
101 !IF EXIST("srclib\zlib")
106 $(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
108 !ELSEIF $(USESLN) == 1
109 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
111 @msdev Apache.dsw /USEENV /MAKE \
112 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
116 # NOT EXIST("srclib\zlib")
120 @echo mod_deflate will not build unless zlib is installed in srclib\zlib.
121 @echo Version 1.2.1 and later available from http://www.gzip.org/zlib/
122 @echo built w/ nmake -f win32/Makefile.msc will satisfy this requirement.
126 !IF "$(INSTDIR)" == ""
129 !IF "$(DOMAINNAME)" == ""
130 DOMAINNAME=example.com
132 !IF "$(SERVERNAME)" == ""
133 SERVERNAME=www.$(DOMAINNAME)
135 !IF "$(SERVERADMIN)" == ""
136 SERVERADMIN=admin@$(DOMAINNAME)
141 !IF "$(SSLPORT)" == ""
147 !MESSAGE INSTDIR = $(INSTDIR)
148 !MESSAGE DOMAINNAME = $(DOMAINNAME)
149 !MESSAGE SERVERNAME = $(SERVERNAME)
150 !MESSAGE SERVERADMIN = $(SERVERADMIN)
151 !MESSAGE PORT = $(PORT)
152 !IF EXIST("srclib\openssl")
153 !MESSAGE SSLPORT = $(SSLPORT)
156 !MESSAGE To change these options use 'nmake -f Makefile.win [option=value]'
157 !MESSAGE Example: nmake -f Makefile.win PORT=8080
163 # Only default the behavior if MAKEOPT= is omitted
165 # Microsoft NMake options
167 !ELSEIF "$(MAKE)" == "make"
168 # Borland make options? Not really supported (yet)
177 bscmake.exe -nologo -Iu -o Apache.bsc *.sbr
181 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build
184 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug _build
187 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install
190 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug _build _install
192 clean: _cleanr _cleand
193 -if exist Browse\. rd /s Browse < << > nul
200 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
203 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET=CLEAN _build
206 echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
208 $(MAKE) $(MAKEOPT) -f apr.mak CFG="apr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
209 $(MAKE) $(MAKEOPT) -f libapr.mak CFG="libapr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
212 $(MAKE) $(MAKEOPT) -f apriconv.mak CFG="apriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
213 $(MAKE) $(MAKEOPT) -f libapriconv.mak CFG="libapriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
214 !IF "$(CTARGET)" == "CLEAN"
215 $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
216 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
219 $(MAKE) $(MAKEOPT) -f Makefile.win all \
220 BUILD_MODE=$(LONG) BIND_MODE=shared
222 $(MAKE) $(MAKEOPT) -f Makefile.win all \
223 BUILD_MODE=$(LONG) BIND_MODE=shared
227 cd srclib\apr-util\xml\expat\lib
228 $(MAKE) $(MAKEOPT) -f xml.mak CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET)
230 $(MAKE) $(MAKEOPT) -f aprutil.mak CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
231 $(MAKE) $(MAKEOPT) -f libaprutil.mak CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
234 $(MAKE) $(MAKEOPT) -f dftables.mak CFG="dftables - Win32 $(LONG)" RECURSE=0 $(CTARGET)
235 $(MAKE) $(MAKEOPT) -f pcre.mak CFG="pcre - Win32 $(LONG)" RECURSE=0 $(CTARGET)
238 $(MAKE) $(MAKEOPT) -f gen_test_char.mak CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET)
240 $(MAKE) $(MAKEOPT) -f libhttpd.mak CFG="libhttpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
241 $(MAKE) $(MAKEOPT) -f httpd.mak CFG="httpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
242 # build ldap prior to authnz_ldap
244 $(MAKE) $(MAKEOPT) -f mod_ldap.mak CFG="mod_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
247 $(MAKE) $(MAKEOPT) -f mod_dbd.mak CFG="mod_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
250 $(MAKE) $(MAKEOPT) -f mod_access_compat.mak CFG="mod_access_compat - Win32 $(LONG)" RECURSE=0 $(CTARGET)
251 $(MAKE) $(MAKEOPT) -f mod_auth_basic.mak CFG="mod_auth_basic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
252 $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
253 $(MAKE) $(MAKEOPT) -f mod_authn_anon.mak CFG="mod_authn_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
254 $(MAKE) $(MAKEOPT) -f mod_authn_core.mak CFG="mod_authn_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
255 $(MAKE) $(MAKEOPT) -f mod_authn_dbd.mak CFG="mod_authn_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
256 $(MAKE) $(MAKEOPT) -f mod_authn_dbm.mak CFG="mod_authn_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
257 $(MAKE) $(MAKEOPT) -f mod_authn_default.mak CFG="mod_authn_default - Win32 $(LONG)" RECURSE=0 $(CTARGET)
258 $(MAKE) $(MAKEOPT) -f mod_authn_file.mak CFG="mod_authn_file - Win32 $(LONG)" RECURSE=0 $(CTARGET)
259 $(MAKE) $(MAKEOPT) -f mod_authnz_ldap.mak CFG="mod_authnz_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
260 $(MAKE) $(MAKEOPT) -f mod_authz_core.mak CFG="mod_authz_core - Win32 $(LONG)" RECURSE=0 $(CTARGET)
261 $(MAKE) $(MAKEOPT) -f mod_authz_dbd.mak CFG="mod_authz_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
262 $(MAKE) $(MAKEOPT) -f mod_authz_dbm.mak CFG="mod_authz_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
263 $(MAKE) $(MAKEOPT) -f mod_authz_default.mak CFG="mod_authz_default - Win32 $(LONG)" RECURSE=0 $(CTARGET)
264 $(MAKE) $(MAKEOPT) -f mod_authz_groupfile.mak CFG="mod_authz_groupfile - Win32 $(LONG)" RECURSE=0 $(CTARGET)
265 $(MAKE) $(MAKEOPT) -f mod_authz_host.mak CFG="mod_authz_host - Win32 $(LONG)" RECURSE=0 $(CTARGET)
266 $(MAKE) $(MAKEOPT) -f mod_authz_owner.mak CFG="mod_authz_owner - Win32 $(LONG)" RECURSE=0 $(CTARGET)
267 $(MAKE) $(MAKEOPT) -f mod_authz_user.mak CFG="mod_authz_user - Win32 $(LONG)" RECURSE=0 $(CTARGET)
269 cd modules\arch\win32
270 $(MAKE) $(MAKEOPT) -f mod_isapi.mak CFG="mod_isapi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
273 $(MAKE) $(MAKEOPT) -f mod_cache.mak CFG="mod_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
274 $(MAKE) $(MAKEOPT) -f mod_file_cache.mak CFG="mod_file_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
275 $(MAKE) $(MAKEOPT) -f mod_mem_cache.mak CFG="mod_mem_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
276 $(MAKE) $(MAKEOPT) -f mod_disk_cache.mak CFG="mod_disk_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
279 $(MAKE) $(MAKEOPT) -f mod_dav.mak CFG="mod_dav - Win32 $(LONG)" RECURSE=0 $(CTARGET)
282 $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
285 $(MAKE) $(MAKEOPT) -f mod_dav_lock.mak CFG="mod_dav_lock - Win32 $(LONG)" RECURSE=0 $(CTARGET)
289 $(MAKE) $(MAKEOPT) -f mod_bucketeer.mak CFG="mod_bucketeer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
291 $(MAKE) $(MAKEOPT) -f mod_dumpio.mak CFG="mod_dumpio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
295 $(MAKE) $(MAKEOPT) -f mod_echo.mak CFG="mod_echo - Win32 $(LONG)" RECURSE=0 $(CTARGET)
300 $(MAKE) $(MAKEOPT) -f mod_case_filter.mak CFG="mod_case_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
301 $(MAKE) $(MAKEOPT) -f mod_case_filter_in.mak CFG="mod_case_filter_in - Win32 $(LONG)" RECURSE=0 $(CTARGET)
302 $(MAKE) $(MAKEOPT) -f mod_example_hooks.mak CFG="mod_example_hooks - Win32 $(LONG)" RECURSE=0 $(CTARGET)
306 $(MAKE) $(MAKEOPT) -f mod_charset_lite.mak CFG="mod_charset_lite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
307 !IF EXIST("srclib\zlib")
308 $(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
310 $(MAKE) $(MAKEOPT) -f mod_ext_filter.mak CFG="mod_ext_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
311 $(MAKE) $(MAKEOPT) -f mod_filter.mak CFG="mod_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
312 $(MAKE) $(MAKEOPT) -f mod_include.mak CFG="mod_include - Win32 $(LONG)" RECURSE=0 $(CTARGET)
313 $(MAKE) $(MAKEOPT) -f mod_substitute.mak CFG="mod_substitute - Win32 $(LONG)" RECURSE=0 $(CTARGET)
315 cd modules\generators
316 $(MAKE) $(MAKEOPT) -f mod_asis.mak CFG="mod_asis - Win32 $(LONG)" RECURSE=0 $(CTARGET)
317 $(MAKE) $(MAKEOPT) -f mod_autoindex.mak CFG="mod_autoindex - Win32 $(LONG)" RECURSE=0 $(CTARGET)
318 $(MAKE) $(MAKEOPT) -f mod_cgi.mak CFG="mod_cgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
319 $(MAKE) $(MAKEOPT) -f mod_info.mak CFG="mod_info - Win32 $(LONG)" RECURSE=0 $(CTARGET)
320 $(MAKE) $(MAKEOPT) -f mod_status.mak CFG="mod_status - Win32 $(LONG)" RECURSE=0 $(CTARGET)
323 $(MAKE) $(MAKEOPT) -f mod_mime.mak CFG="mod_mime - Win32 $(LONG)" RECURSE=0 $(CTARGET)
326 $(MAKE) $(MAKEOPT) -f mod_log_config.mak CFG="mod_log_config - Win32 $(LONG)" RECURSE=0 $(CTARGET)
327 $(MAKE) $(MAKEOPT) -f mod_log_forensic.mak CFG="mod_log_forensic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
328 $(MAKE) $(MAKEOPT) -f mod_logio.mak CFG="mod_logio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
331 $(MAKE) $(MAKEOPT) -f mod_actions.mak CFG="mod_actions - Win32 $(LONG)" RECURSE=0 $(CTARGET)
332 $(MAKE) $(MAKEOPT) -f mod_alias.mak CFG="mod_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
333 $(MAKE) $(MAKEOPT) -f mod_dir.mak CFG="mod_dir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
334 $(MAKE) $(MAKEOPT) -f mod_imagemap.mak CFG="mod_imagemap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
335 $(MAKE) $(MAKEOPT) -f mod_negotiation.mak CFG="mod_negotiation - Win32 $(LONG)" RECURSE=0 $(CTARGET)
336 $(MAKE) $(MAKEOPT) -f mod_rewrite.mak CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
337 $(MAKE) $(MAKEOPT) -f mod_speling.mak CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
338 $(MAKE) $(MAKEOPT) -f mod_userdir.mak CFG="mod_userdir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
339 $(MAKE) $(MAKEOPT) -f mod_vhost_alias.mak CFG="mod_vhost_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
342 $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
343 $(MAKE) $(MAKEOPT) -f mod_env.mak CFG="mod_env - Win32 $(LONG)" RECURSE=0 $(CTARGET)
344 $(MAKE) $(MAKEOPT) -f mod_expires.mak CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
345 $(MAKE) $(MAKEOPT) -f mod_headers.mak CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
346 $(MAKE) $(MAKEOPT) -f mod_ident.mak CFG="mod_ident - Win32 $(LONG)" RECURSE=0 $(CTARGET)
347 $(MAKE) $(MAKEOPT) -f mod_mime_magic.mak CFG="mod_mime_magic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
348 $(MAKE) $(MAKEOPT) -f mod_setenvif.mak CFG="mod_setenvif - Win32 $(LONG)" RECURSE=0 $(CTARGET)
349 $(MAKE) $(MAKEOPT) -f mod_unique_id.mak CFG="mod_unique_id - Win32 $(LONG)" RECURSE=0 $(CTARGET)
350 $(MAKE) $(MAKEOPT) -f mod_usertrack.mak CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
351 $(MAKE) $(MAKEOPT) -f mod_version.mak CFG="mod_version - Win32 $(LONG)" RECURSE=0 $(CTARGET)
354 $(MAKE) $(MAKEOPT) -f mod_proxy.mak CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
355 $(MAKE) $(MAKEOPT) -f mod_proxy_ajp.mak CFG="mod_proxy_ajp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
356 $(MAKE) $(MAKEOPT) -f mod_proxy_balancer.mak CFG="mod_proxy_balancer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
357 $(MAKE) $(MAKEOPT) -f mod_proxy_connect.mak CFG="mod_proxy_connect - Win32 $(LONG)" RECURSE=0 $(CTARGET)
358 $(MAKE) $(MAKEOPT) -f mod_proxy_fcgi.mak CFG="mod_proxy_fcgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
359 $(MAKE) $(MAKEOPT) -f mod_proxy_ftp.mak CFG="mod_proxy_ftp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
360 $(MAKE) $(MAKEOPT) -f mod_proxy_http.mak CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
362 !IF EXIST("srclib\openssl")
364 $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
367 $(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
371 $(MAKE) $(MAKEOPT) -f ab.mak CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
372 # $(MAKE) $(MAKEOPT) -f fcgistarter.mak CFG="fcgistarter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
373 $(MAKE) $(MAKEOPT) -f htcacheclean.mak CFG="htcacheclean - Win32 $(LONG)" RECURSE=0 $(CTARGET)
374 $(MAKE) $(MAKEOPT) -f htdbm.mak CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
375 $(MAKE) $(MAKEOPT) -f htdigest.mak CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
376 $(MAKE) $(MAKEOPT) -f htpasswd.mak CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
377 $(MAKE) $(MAKEOPT) -f httxt2dbm.mak CFG="httxt2dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
378 $(MAKE) $(MAKEOPT) -f logresolve.mak CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
379 $(MAKE) $(MAKEOPT) -f rotatelogs.mak CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
382 $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
383 $(MAKE) $(MAKEOPT) -f wintty.mak CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
386 !ELSEIF $(USESLN) == 1
389 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
392 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET="/clean" _build
395 echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
397 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildAll
399 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildBin
401 !IF EXIST("srclib\openssl")
402 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
403 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
405 !IF EXIST("srclib\zlib")
406 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
412 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
415 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET="/CLEAN" _build
418 @echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
420 @msdev Apache.dsw /USEENV /MAKE \
421 "BuildAll - Win32 $(LONG)" $(CTARGET)
423 @msdev Apache.dsw /USEENV /MAKE \
424 "BuildBin - Win32 $(LONG)" $(CTARGET)
426 !IF "$(CTARGET)" == "/CLEAN"
428 @$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
429 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
432 !IF EXIST("srclib\openssl")
433 @msdev Apache.dsw /USEENV /MAKE \
434 "mod_ssl - Win32 $(LONG)" \
435 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
437 !IF EXIST("srclib\zlib")
438 @msdev Apache.dsw /USEENV /MAKE \
439 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
446 copy $(LONG)\httpd.$(src_exe) "$(inst_exe)" <.y
447 copy $(LONG)\libhttpd.$(src_dll) "$(inst_dll)" <.y
448 copy srclib\apr\$(LONG)\libapr-1.$(src_dll) "$(inst_dll)" <.y
449 copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll) "$(inst_dll)" <.y
450 copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll) "$(inst_dll)" <.y
451 copy modules\aaa\$(LONG)\mod_access_compat.$(src_so) "$(inst_so)" <.y
452 copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so) "$(inst_so)" <.y
453 copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so) "$(inst_so)" <.y
454 copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so) "$(inst_so)" <.y
455 copy modules\aaa\$(LONG)\mod_authn_core.$(src_so) "$(inst_so)" <.y
456 copy modules\aaa\$(LONG)\mod_authn_dbd.$(src_so) "$(inst_so)" <.y
457 copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so) "$(inst_so)" <.y
458 copy modules\aaa\$(LONG)\mod_authn_default.$(src_so) "$(inst_so)" <.y
459 copy modules\aaa\$(LONG)\mod_authn_file.$(src_so) "$(inst_so)" <.y
460 copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so) "$(inst_so)" <.y
461 copy modules\aaa\$(LONG)\mod_authz_core.$(src_so) "$(inst_so)" <.y
462 copy modules\aaa\$(LONG)\mod_authz_dbd.$(src_so) "$(inst_so)" <.y
463 copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so) "$(inst_so)" <.y
464 copy modules\aaa\$(LONG)\mod_authz_core.$(src_so) "$(inst_so)" <.y
465 copy modules\aaa\$(LONG)\mod_authz_default.$(src_so) "$(inst_so)" <.y
466 copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so) "$(inst_so)" <.y
467 copy modules\aaa\$(LONG)\mod_authz_host.$(src_so) "$(inst_so)" <.y
468 copy modules\aaa\$(LONG)\mod_authz_owner.$(src_so) "$(inst_so)" <.y
469 copy modules\aaa\$(LONG)\mod_authz_user.$(src_so) "$(inst_so)" <.y
470 copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so) "$(inst_so)" <.y
471 copy modules\cache\$(LONG)\mod_cache.$(src_so) "$(inst_so)" <.y
472 copy modules\cache\$(LONG)\mod_file_cache.$(src_so) "$(inst_so)" <.y
473 copy modules\cache\$(LONG)\mod_mem_cache.$(src_so) "$(inst_so)" <.y
474 copy modules\cache\$(LONG)\mod_disk_cache.$(src_so) "$(inst_so)" <.y
475 copy modules\database\$(LONG)\mod_dbd.$(src_so) "$(inst_so)" <.y
476 copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so) "$(inst_so)" <.y
477 copy modules\dav\lock\$(LONG)\mod_dav_lock.$(src_so) "$(inst_so)" <.y
478 copy modules\dav\main\$(LONG)\mod_dav.$(src_so) "$(inst_so)" <.y
480 copy modules\debugging\$(LONG)\mod_bucketeer.$(src_so) "$(inst_so)" <.y
482 copy modules\debugging\$(LONG)\mod_dumpio.$(src_so) "$(inst_so)" <.y
484 copy modules\echo\$(LONG)\mod_echo.$(src_so) "$(inst_so)" <.y
485 copy modules\examples\$(LONG)\mod_case_filter.$(src_so) "$(inst_so)" <.y
486 copy modules\examples\$(LONG)\mod_case_filter_in.$(src_so) "$(inst_so)" <.y
487 copy modules\examples\$(LONG)\mod_example_hooks.$(src_so) "$(inst_so)" <.y
489 copy modules\filters\$(LONG)\mod_charset_lite.$(src_so) "$(inst_so)" <.y
490 !IF EXIST("srclib\zlib")
491 copy modules\filters\$(LONG)\mod_deflate.$(src_so) "$(inst_so)" <.y
492 !IF EXIST("srclib\zlib\zlib1.$(src_dll)")
493 copy srclib\zlib\zlib1.$(src_dll) "$(inst_dll)" <.y
496 copy modules\filters\$(LONG)\mod_ext_filter.$(src_so) "$(inst_so)" <.y
497 copy modules\filters\$(LONG)\mod_filter.$(src_so) "$(inst_so)" <.y
498 copy modules\filters\$(LONG)\mod_include.$(src_so) "$(inst_so)" <.y
499 copy modules\filters\$(LONG)\mod_substitute.$(src_so) "$(inst_so)" <.y
500 copy modules\generators\$(LONG)\mod_asis.$(src_so) "$(inst_so)" <.y
501 copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
502 copy modules\generators\$(LONG)\mod_cgi.$(src_so) "$(inst_so)" <.y
503 copy modules\generators\$(LONG)\mod_info.$(src_so) "$(inst_so)" <.y
504 copy modules\generators\$(LONG)\mod_status.$(src_so) "$(inst_so)" <.y
505 copy modules\http\$(LONG)\mod_mime.$(src_so) "$(inst_so)" <.y
506 copy modules\ldap\$(LONG)\mod_ldap.$(src_so) "$(inst_so)" <.y
507 copy modules\loggers\$(LONG)\mod_log_config.$(src_so) "$(inst_so)" <.y
508 copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
509 copy modules\loggers\$(LONG)\mod_logio.$(src_so) "$(inst_so)" <.y
510 copy modules\mappers\$(LONG)\mod_actions.$(src_so) "$(inst_so)" <.y
511 copy modules\mappers\$(LONG)\mod_alias.$(src_so) "$(inst_so)" <.y
512 copy modules\mappers\$(LONG)\mod_dir.$(src_so) "$(inst_so)" <.y
513 copy modules\mappers\$(LONG)\mod_imagemap.$(src_so) "$(inst_so)" <.y
514 copy modules\mappers\$(LONG)\mod_negotiation.$(src_so) "$(inst_so)" <.y
515 copy modules\mappers\$(LONG)\mod_rewrite.$(src_so) "$(inst_so)" <.y
516 copy modules\mappers\$(LONG)\mod_speling.$(src_so) "$(inst_so)" <.y
517 copy modules\mappers\$(LONG)\mod_userdir.$(src_so) "$(inst_so)" <.y
518 copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so) "$(inst_so)" <.y
519 copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so) "$(inst_so)" <.y
520 copy modules\metadata\$(LONG)\mod_env.$(src_so) "$(inst_so)" <.y
521 copy modules\metadata\$(LONG)\mod_expires.$(src_so) "$(inst_so)" <.y
522 copy modules\metadata\$(LONG)\mod_headers.$(src_so) "$(inst_so)" <.y
523 copy modules\metadata\$(LONG)\mod_ident.$(src_so) "$(inst_so)" <.y
524 copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so) "$(inst_so)" <.y
525 copy modules\metadata\$(LONG)\mod_setenvif.$(src_so) "$(inst_so)" <.y
526 copy modules\metadata\$(LONG)\mod_unique_id.$(src_so) "$(inst_so)" <.y
527 copy modules\metadata\$(LONG)\mod_usertrack.$(src_so) "$(inst_so)" <.y
528 copy modules\metadata\$(LONG)\mod_version.$(src_so) "$(inst_so)" <.y
529 copy modules\proxy\$(LONG)\mod_proxy.$(src_so) "$(inst_so)" <.y
530 copy modules\proxy\$(LONG)\mod_proxy_ajp.$(src_so) "$(inst_so)" <.y
531 copy modules\proxy\$(LONG)\mod_proxy_balancer.$(src_so) "$(inst_so)" <.y
532 copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so) "$(inst_so)" <.y
533 copy modules\proxy\$(LONG)\mod_proxy_fcgi.$(src_so) "$(inst_so)" <.y
534 copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so) "$(inst_so)" <.y
535 copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so) "$(inst_so)" <.y
536 !IF EXIST("srclib\openssl")
537 copy modules\ssl\$(LONG)\mod_ssl.$(src_so) "$(inst_so)" <.y
538 -copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll) "$(inst_dll)" <.y
539 -copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll) "$(inst_dll)" <.y
540 -copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe) "$(inst_exe)" <.y
541 copy support\$(LONG)\abs.$(src_exe) "$(inst_exe)" <.y
543 copy support\$(LONG)\ab.$(src_exe) "$(inst_exe)" <.y
544 # copy support\$(LONG)\fcgistarter.$(src_exe) "$(inst_exe)" <.y
545 copy support\$(LONG)\htcacheclean.$(src_exe) "$(inst_exe)" <.y
546 copy support\$(LONG)\htdbm.$(src_exe) "$(inst_exe)" <.y
547 copy support\$(LONG)\htdigest.$(src_exe) "$(inst_exe)" <.y
548 copy support\$(LONG)\htpasswd.$(src_exe) "$(inst_exe)" <.y
549 copy support\$(LONG)\httxt2dbm.$(src_exe) "$(inst_exe)" <.y
550 copy support\$(LONG)\logresolve.$(src_exe) "$(inst_exe)" <.y
551 copy support\$(LONG)\rotatelogs.$(src_exe) "$(inst_exe)" <.y
552 copy support\win32\$(LONG)\ApacheMonitor.$(src_exe) "$(inst_exe)" <.y
553 copy support\win32\$(LONG)\wintty.$(src_exe) "$(inst_exe)" <.y
556 # First we create the tree and populate the README so that
557 # whatever happens, all licensing has already propagated.
558 # Then repeatedly invoke the _copybin build to copy the
559 # real binaries, then pdb symbols, anf finally dbg syms.
560 # Then hit docs of various sorts, then includes and libs,
561 # and finally do the .conf magic.
567 -mkdir "$(INSTDIR)\bin"
568 -mkdir "$(INSTDIR)\bin\iconv"
569 -mkdir "$(INSTDIR)\cgi-bin"
570 -mkdir "$(INSTDIR)\conf"
571 -mkdir "$(INSTDIR)\conf\extra"
572 -mkdir "$(INSTDIR)\conf\original"
573 -mkdir "$(INSTDIR)\conf\original\extra"
574 -mkdir "$(INSTDIR)\error"
575 -mkdir "$(INSTDIR)\htdocs"
576 -mkdir "$(INSTDIR)\manual"
577 -mkdir "$(INSTDIR)\icons"
578 -mkdir "$(INSTDIR)\include"
579 -mkdir "$(INSTDIR)\lib"
580 -mkdir "$(INSTDIR)\logs"
581 -mkdir "$(INSTDIR)\modules"
582 -mkdir "$(INSTDIR)\symbols"
583 -mkdir "$(INSTDIR)\symbols\exe"
584 -mkdir "$(INSTDIR)\symbols\dll"
585 -mkdir "$(INSTDIR)\symbols\so"
586 copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
587 copy CHANGES "$(INSTDIR)\CHANGES.txt" <.y
588 copy INSTALL "$(INSTDIR)\INSTALL.txt" <.y
589 copy LICENSE "$(INSTDIR)\LICENSE.txt" <.y
590 copy NOTICE "$(INSTDIR)\NOTICE.txt" <.y
591 copy README "$(INSTDIR)\README.txt" <.y
592 !IF EXIST("srclib\openssl")
593 -copy srclib\openssl\apps\openssl.cnf "$(INSTDIR)\conf\openssl.cnf" <.y
594 type << >> "$(INSTDIR)\NOTICE.txt"
596 This binary distribution includes cryptographic software written by
597 Eric Young (eay@cryptsoft.com), software written by Tim Hudson
598 (tjh@cryptsoft.com), and software developed by the OpenSSL Project
599 for use in the OpenSSL Toolkit <http://www.openssl.org/>.
601 -awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
604 print "For the libeay32.dll, ssleay32.dll and openssl.exe components:";
606 while ( getline > 0 ) {
611 copy << "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
613 Apache HTTP Server 2.3 Limited OpenSSL Distribution
615 This binary distribution includes the minimal components of OpenSSL required
616 to support mod_ssl for Apache HTTP Server version 2.3 (details are listed
617 in OPENSSL-README.txt.) For the complete list of CHANGES to this and later
618 versions of OpenSSL, please refer to the definative source,
619 <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
620 full binary or source distribution package from <http://www.openssl.org/>.
622 These OpenSSL binaries were built for distribution from the U.S. without
623 support for the patented encryption methods IDEA, MDC-2 or RC5.
625 --------------------------------------------------------------------------------
627 -copy "$(INSTDIR)\OPENSSL-NEWS.txt" \
628 + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt"
629 copy << "$(INSTDIR)\OPENSSL-README.txt" <.y
631 Apache HTTP Server 2.3 Limited OpenSSL Distribution
633 This binary installation of OpenSSL is a limited distribution of the
634 files derived from the OpenSSL project:
636 LICENSE.txt (includes openssl LICENSE)
644 These are the minimal libraries and tools required to use mod_ssl as
645 distributed with Apache HTTP Server version 2.3. No library link files,
646 headers or sources are distributed with this binary distribution. Please
647 refer to the <http://www.openssl.org/> site for complete source or binary
650 These OpenSSL binaries were built for distribution from the U.S. without
651 support for the patented encryption methods IDEA, MDC-2 or RC5.
653 The Apache HTTP Project only supports the binary distribution of these files
654 and development of the mod_ssl module. We cannot provide support assistance
655 for using or configuring the OpenSSL package or these modules. Please refer
656 all installation and configuration questions to the appropriate forum,
657 such as the user supported lists, <http://httpd.apache.org/userslist.html>
658 the Apache HTTP Server user's list or <http://www.openssl.org/support/> the
659 OpenSSL support page.
661 --------------------------------------------------------------------------------
664 -copy "$(INSTDIR)\OPENSSL-README.txt" \
665 + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt"
667 !IF EXIST("srclib\zlib")
668 type << >> "$(INSTDIR)\NOTICE.txt"
670 This binary distribution of mod_deflate.so includes zlib compression code
671 <http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
672 and Mark Adler (madler@alumni.caltech.edu) .
674 -awk -f <<script.awk < "srclib\zlib\README" >> "$(INSTDIR)\LICENSE.txt"
676 while ( getline > 0 ) {
677 if ( $$0 ~ /Copyright notice:/ ) {
679 print "For the mod_deflate zlib compression component:";
680 while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
690 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
691 _copybin src_exe=exe src_dll=dll src_so=so \
692 inst_exe="$(INSTDIR)\bin" \
693 inst_dll="$(INSTDIR)\bin" \
694 inst_so="$(INSTDIR)\modules"
695 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
696 _copybin src_exe=pdb src_dll=pdb src_so=pdb \
697 inst_exe="$(INSTDIR)\bin" \
698 inst_dll="$(INSTDIR)\bin" \
699 inst_so="$(INSTDIR)\modules"
701 $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
702 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
703 INSTALL_DIR="$(INSTDIR)\bin\iconv"
705 copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
706 -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
708 if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
709 gsub( /\\/, "/", perlroot );
714 if ( $$0 !~ /^#!/ ) {
719 xcopy docs\error "$(INSTDIR)\error" /s /d < .a
720 xcopy docs\docroot "$(INSTDIR)\htdocs" /d < .a
721 xcopy docs\icons "$(INSTDIR)\icons" /s /d < .a
722 xcopy docs\manual "$(INSTDIR)\manual" /s /d < .a
724 srclib\apr-util\xml\expat\lib\expat.h \
725 srclib\apr\include\*.h \
726 srclib\apr-util\include\*.h \
729 server\mpm\winnt\mpm*.h \
730 modules\aaa\mod_auth.h \
731 modules\database\mod_dbd.h \
732 modules\dav\main\mod_dav.h \
733 modules\filters\mod_include.h \
734 modules\generators\mod_cgi.h \
735 modules\generators\mod_status.h \
736 modules\loggers\mod_log_config.h \
737 modules\http\mod_core.h \
738 modules\proxy\mod_proxy.h \
739 modules\ssl\mod_ssl.h ) do \
740 @copy %f "$(INSTDIR)\include" < .y > nul
741 copy srclib\apr\Lib$(SHORT)\apr-1.lib "$(INSTDIR)\lib" <.y
742 copy srclib\apr\Lib$(SHORT)\apr-1.pdb "$(INSTDIR)\lib" <.y
743 copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib "$(INSTDIR)\lib" <.y
744 copy srclib\apr-util\Lib$(SHORT)\aprutil-1.pdb "$(INSTDIR)\lib" <.y
745 copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
746 copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.pdb "$(INSTDIR)\lib" <.y
747 copy srclib\apr\$(LONG)\libapr-1.lib "$(INSTDIR)\lib" <.y
748 copy srclib\apr\$(LONG)\libapr-1.exp "$(INSTDIR)\lib" <.y
749 copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib "$(INSTDIR)\lib" <.y
750 copy srclib\apr-iconv\$(LONG)\libapriconv-1.exp "$(INSTDIR)\lib" <.y
751 copy srclib\apr-util\$(LONG)\libaprutil-1.lib "$(INSTDIR)\lib" <.y
752 copy srclib\apr-util\$(LONG)\libaprutil-1.exp "$(INSTDIR)\lib" <.y
753 copy $(LONG)\libhttpd.exp "$(INSTDIR)\lib" <.y
754 copy $(LONG)\libhttpd.lib "$(INSTDIR)\lib" <.y
755 copy modules\dav\main\$(LONG)\mod_dav.exp "$(INSTDIR)\lib" <.y
756 copy modules\dav\main\$(LONG)\mod_dav.lib "$(INSTDIR)\lib" <.y
757 for %f in ( charset.conv magic mime.types ) do ( \
758 copy docs\conf\%f "$(INSTDIR)\conf\original\%f" <.y )
759 awk -f build\installwinconf.awk $(DOMAINNAME) $(SERVERNAME) \
760 $(SERVERADMIN) $(PORT) $(SSLPORT) "$(INSTDIR) " docs/conf/
761 copy "support\dbmmanage.in" "$(INSTDIR)\bin\dbmmanage.pl"
762 -awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
763 { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
764 sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" );
766 if ( $$0 !~ /^#!@perlbin@/ )