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 htcacheclean.mak CFG="htcacheclean - Win32 $(LONG)" RECURSE=0 $(CTARGET)
373 $(MAKE) $(MAKEOPT) -f htdbm.mak CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
374 $(MAKE) $(MAKEOPT) -f htdigest.mak CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
375 $(MAKE) $(MAKEOPT) -f htpasswd.mak CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
376 $(MAKE) $(MAKEOPT) -f httxt2dbm.mak CFG="httxt2dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
377 $(MAKE) $(MAKEOPT) -f logresolve.mak CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
378 $(MAKE) $(MAKEOPT) -f rotatelogs.mak CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
381 $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
382 $(MAKE) $(MAKEOPT) -f wintty.mak CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
385 !ELSEIF $(USESLN) == 1
388 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
391 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET="/clean" _build
394 echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
396 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildAll
398 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildBin
400 !IF EXIST("srclib\openssl")
401 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
402 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
404 !IF EXIST("srclib\zlib")
405 devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
411 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
414 @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug CTARGET="/CLEAN" _build
417 @echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
419 @msdev Apache.dsw /USEENV /MAKE \
420 "BuildAll - Win32 $(LONG)" $(CTARGET)
422 @msdev Apache.dsw /USEENV /MAKE \
423 "BuildBin - Win32 $(LONG)" $(CTARGET)
425 !IF "$(CTARGET)" == "/CLEAN"
427 @$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
428 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
431 !IF EXIST("srclib\openssl")
432 @msdev Apache.dsw /USEENV /MAKE \
433 "mod_ssl - Win32 $(LONG)" \
434 "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
436 !IF EXIST("srclib\zlib")
437 @msdev Apache.dsw /USEENV /MAKE \
438 "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
445 copy $(LONG)\httpd.$(src_exe) "$(inst_exe)" <.y
446 copy $(LONG)\libhttpd.$(src_dll) "$(inst_dll)" <.y
447 copy srclib\apr\$(LONG)\libapr-1.$(src_dll) "$(inst_dll)" <.y
448 copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll) "$(inst_dll)" <.y
449 copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll) "$(inst_dll)" <.y
450 copy modules\aaa\$(LONG)\mod_access_compat.$(src_so) "$(inst_so)" <.y
451 copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so) "$(inst_so)" <.y
452 copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so) "$(inst_so)" <.y
453 copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so) "$(inst_so)" <.y
454 copy modules\aaa\$(LONG)\mod_authn_core.$(src_so) "$(inst_so)" <.y
455 copy modules\aaa\$(LONG)\mod_authn_dbd.$(src_so) "$(inst_so)" <.y
456 copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so) "$(inst_so)" <.y
457 copy modules\aaa\$(LONG)\mod_authn_default.$(src_so) "$(inst_so)" <.y
458 copy modules\aaa\$(LONG)\mod_authn_file.$(src_so) "$(inst_so)" <.y
459 copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so) "$(inst_so)" <.y
460 copy modules\aaa\$(LONG)\mod_authz_core.$(src_so) "$(inst_so)" <.y
461 copy modules\aaa\$(LONG)\mod_authz_dbd.$(src_so) "$(inst_so)" <.y
462 copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so) "$(inst_so)" <.y
463 copy modules\aaa\$(LONG)\mod_authz_core.$(src_so) "$(inst_so)" <.y
464 copy modules\aaa\$(LONG)\mod_authz_default.$(src_so) "$(inst_so)" <.y
465 copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so) "$(inst_so)" <.y
466 copy modules\aaa\$(LONG)\mod_authz_host.$(src_so) "$(inst_so)" <.y
467 copy modules\aaa\$(LONG)\mod_authz_owner.$(src_so) "$(inst_so)" <.y
468 copy modules\aaa\$(LONG)\mod_authz_user.$(src_so) "$(inst_so)" <.y
469 copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so) "$(inst_so)" <.y
470 copy modules\cache\$(LONG)\mod_cache.$(src_so) "$(inst_so)" <.y
471 copy modules\cache\$(LONG)\mod_file_cache.$(src_so) "$(inst_so)" <.y
472 copy modules\cache\$(LONG)\mod_mem_cache.$(src_so) "$(inst_so)" <.y
473 copy modules\cache\$(LONG)\mod_disk_cache.$(src_so) "$(inst_so)" <.y
474 copy modules\database\$(LONG)\mod_dbd.$(src_so) "$(inst_so)" <.y
475 copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so) "$(inst_so)" <.y
476 copy modules\dav\lock\$(LONG)\mod_dav_lock.$(src_so) "$(inst_so)" <.y
477 copy modules\dav\main\$(LONG)\mod_dav.$(src_so) "$(inst_so)" <.y
479 copy modules\debugging\$(LONG)\mod_bucketeer.$(src_so) "$(inst_so)" <.y
481 copy modules\debugging\$(LONG)\mod_dumpio.$(src_so) "$(inst_so)" <.y
483 copy modules\echo\$(LONG)\mod_echo.$(src_so) "$(inst_so)" <.y
484 copy modules\examples\$(LONG)\mod_case_filter.$(src_so) "$(inst_so)" <.y
485 copy modules\examples\$(LONG)\mod_case_filter_in.$(src_so) "$(inst_so)" <.y
486 copy modules\examples\$(LONG)\mod_example_hooks.$(src_so) "$(inst_so)" <.y
488 copy modules\filters\$(LONG)\mod_charset_lite.$(src_so) "$(inst_so)" <.y
489 !IF EXIST("srclib\zlib")
490 copy modules\filters\$(LONG)\mod_deflate.$(src_so) "$(inst_so)" <.y
491 !IF EXIST("srclib\zlib\zlib1.$(src_dll)")
492 copy srclib\zlib\zlib1.$(src_dll) "$(inst_dll)" <.y
495 copy modules\filters\$(LONG)\mod_ext_filter.$(src_so) "$(inst_so)" <.y
496 copy modules\filters\$(LONG)\mod_filter.$(src_so) "$(inst_so)" <.y
497 copy modules\filters\$(LONG)\mod_include.$(src_so) "$(inst_so)" <.y
498 copy modules\filters\$(LONG)\mod_substitute.$(src_so) "$(inst_so)" <.y
499 copy modules\generators\$(LONG)\mod_asis.$(src_so) "$(inst_so)" <.y
500 copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
501 copy modules\generators\$(LONG)\mod_cgi.$(src_so) "$(inst_so)" <.y
502 copy modules\generators\$(LONG)\mod_info.$(src_so) "$(inst_so)" <.y
503 copy modules\generators\$(LONG)\mod_status.$(src_so) "$(inst_so)" <.y
504 copy modules\http\$(LONG)\mod_mime.$(src_so) "$(inst_so)" <.y
505 copy modules\ldap\$(LONG)\mod_ldap.$(src_so) "$(inst_so)" <.y
506 copy modules\loggers\$(LONG)\mod_log_config.$(src_so) "$(inst_so)" <.y
507 copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
508 copy modules\loggers\$(LONG)\mod_logio.$(src_so) "$(inst_so)" <.y
509 copy modules\mappers\$(LONG)\mod_actions.$(src_so) "$(inst_so)" <.y
510 copy modules\mappers\$(LONG)\mod_alias.$(src_so) "$(inst_so)" <.y
511 copy modules\mappers\$(LONG)\mod_dir.$(src_so) "$(inst_so)" <.y
512 copy modules\mappers\$(LONG)\mod_imagemap.$(src_so) "$(inst_so)" <.y
513 copy modules\mappers\$(LONG)\mod_negotiation.$(src_so) "$(inst_so)" <.y
514 copy modules\mappers\$(LONG)\mod_rewrite.$(src_so) "$(inst_so)" <.y
515 copy modules\mappers\$(LONG)\mod_speling.$(src_so) "$(inst_so)" <.y
516 copy modules\mappers\$(LONG)\mod_userdir.$(src_so) "$(inst_so)" <.y
517 copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so) "$(inst_so)" <.y
518 copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so) "$(inst_so)" <.y
519 copy modules\metadata\$(LONG)\mod_env.$(src_so) "$(inst_so)" <.y
520 copy modules\metadata\$(LONG)\mod_expires.$(src_so) "$(inst_so)" <.y
521 copy modules\metadata\$(LONG)\mod_headers.$(src_so) "$(inst_so)" <.y
522 copy modules\metadata\$(LONG)\mod_ident.$(src_so) "$(inst_so)" <.y
523 copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so) "$(inst_so)" <.y
524 copy modules\metadata\$(LONG)\mod_setenvif.$(src_so) "$(inst_so)" <.y
525 copy modules\metadata\$(LONG)\mod_unique_id.$(src_so) "$(inst_so)" <.y
526 copy modules\metadata\$(LONG)\mod_usertrack.$(src_so) "$(inst_so)" <.y
527 copy modules\metadata\$(LONG)\mod_version.$(src_so) "$(inst_so)" <.y
528 copy modules\proxy\$(LONG)\mod_proxy.$(src_so) "$(inst_so)" <.y
529 copy modules\proxy\$(LONG)\mod_proxy_ajp.$(src_so) "$(inst_so)" <.y
530 copy modules\proxy\$(LONG)\mod_proxy_balancer.$(src_so) "$(inst_so)" <.y
531 copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so) "$(inst_so)" <.y
532 copy modules\proxy\$(LONG)\mod_proxy_fcgi.$(src_so) "$(inst_so)" <.y
533 copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so) "$(inst_so)" <.y
534 copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so) "$(inst_so)" <.y
535 !IF EXIST("srclib\openssl")
536 copy modules\ssl\$(LONG)\mod_ssl.$(src_so) "$(inst_so)" <.y
537 -copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll) "$(inst_dll)" <.y
538 -copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll) "$(inst_dll)" <.y
539 -copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe) "$(inst_exe)" <.y
540 copy support\$(LONG)\abs.$(src_exe) "$(inst_exe)" <.y
542 copy support\$(LONG)\ab.$(src_exe) "$(inst_exe)" <.y
543 copy support\$(LONG)\htcacheclean.$(src_exe) "$(inst_exe)" <.y
544 copy support\$(LONG)\htdbm.$(src_exe) "$(inst_exe)" <.y
545 copy support\$(LONG)\htdigest.$(src_exe) "$(inst_exe)" <.y
546 copy support\$(LONG)\htpasswd.$(src_exe) "$(inst_exe)" <.y
547 copy support\$(LONG)\httxt2dbm.$(src_exe) "$(inst_exe)" <.y
548 copy support\$(LONG)\logresolve.$(src_exe) "$(inst_exe)" <.y
549 copy support\$(LONG)\rotatelogs.$(src_exe) "$(inst_exe)" <.y
550 copy support\win32\$(LONG)\ApacheMonitor.$(src_exe) "$(inst_exe)" <.y
551 copy support\win32\$(LONG)\wintty.$(src_exe) "$(inst_exe)" <.y
554 # First we create the tree and populate the README so that
555 # whatever happens, all licensing has already propagated.
556 # Then repeatedly invoke the _copybin build to copy the
557 # real binaries, then pdb symbols, anf finally dbg syms.
558 # Then hit docs of various sorts, then includes and libs,
559 # and finally do the .conf magic.
565 -mkdir "$(INSTDIR)\bin"
566 -mkdir "$(INSTDIR)\bin\iconv"
567 -mkdir "$(INSTDIR)\cgi-bin"
568 -mkdir "$(INSTDIR)\conf"
569 -mkdir "$(INSTDIR)\conf\extra"
570 -mkdir "$(INSTDIR)\conf\original"
571 -mkdir "$(INSTDIR)\conf\original\extra"
572 -mkdir "$(INSTDIR)\error"
573 -mkdir "$(INSTDIR)\htdocs"
574 -mkdir "$(INSTDIR)\manual"
575 -mkdir "$(INSTDIR)\icons"
576 -mkdir "$(INSTDIR)\include"
577 -mkdir "$(INSTDIR)\lib"
578 -mkdir "$(INSTDIR)\logs"
579 -mkdir "$(INSTDIR)\modules"
580 -mkdir "$(INSTDIR)\symbols"
581 -mkdir "$(INSTDIR)\symbols\exe"
582 -mkdir "$(INSTDIR)\symbols\dll"
583 -mkdir "$(INSTDIR)\symbols\so"
584 copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
585 copy CHANGES "$(INSTDIR)\CHANGES.txt" <.y
586 copy INSTALL "$(INSTDIR)\INSTALL.txt" <.y
587 copy LICENSE "$(INSTDIR)\LICENSE.txt" <.y
588 copy NOTICE "$(INSTDIR)\NOTICE.txt" <.y
589 copy README "$(INSTDIR)\README.txt" <.y
590 !IF EXIST("srclib\openssl")
591 -copy srclib\openssl\apps\openssl.cnf "$(INSTDIR)\conf\openssl.cnf" <.y
592 type << >> "$(INSTDIR)\NOTICE.txt"
594 This binary distribution includes cryptographic software written by
595 Eric Young (eay@cryptsoft.com), software written by Tim Hudson
596 (tjh@cryptsoft.com), and software developed by the OpenSSL Project
597 for use in the OpenSSL Toolkit <http://www.openssl.org/>.
599 -awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
602 print "For the libeay32.dll, ssleay32.dll and openssl.exe components:";
604 while ( getline > 0 ) {
609 copy << "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
611 Apache HTTP Server 2.3 Limited OpenSSL Distribution
613 This binary distribution includes the minimal components of OpenSSL required
614 to support mod_ssl for Apache HTTP Server version 2.3 (details are listed
615 in OPENSSL-README.txt.) For the complete list of CHANGES to this and later
616 versions of OpenSSL, please refer to the definative source,
617 <http://www.openssl.org/news/changelog.html>, or see the CHANGES file in the
618 full binary or source distribution package from <http://www.openssl.org/>.
620 These OpenSSL binaries were built for distribution from the U.S. without
621 support for the patented encryption methods IDEA, MDC-2 or RC5.
623 --------------------------------------------------------------------------------
625 -copy "$(INSTDIR)\OPENSSL-NEWS.txt" + srclib\openssl\NEWS
626 copy << "$(INSTDIR)\OPENSSL-README.txt" <.y
628 Apache HTTP Server 2.3 Limited OpenSSL Distribution
630 This binary installation of OpenSSL is a limited distribution of the
631 files derived from the OpenSSL project:
633 LICENSE.txt (includes openssl LICENSE)
641 These are the minimal libraries and tools required to use mod_ssl as
642 distributed with Apache HTTP Server version 2.3. No library link files,
643 headers or sources are distributed with this binary distribution. Please
644 refer to the <http://www.openssl.org/> site for complete source or binary
647 These OpenSSL binaries were built for distribution from the U.S. without
648 support for the patented encryption methods IDEA, MDC-2 or RC5.
650 The Apache HTTP Project only supports the binary distribution of these files
651 and development of the mod_ssl module. We cannot provide support assistance
652 for using or configuring the OpenSSL package or these modules. Please refer
653 all installation and configuration questions to the appropriate forum,
654 such as the user supported lists, <http://httpd.apache.org/userslist.html>
655 the Apache HTTP Server user's list or <http://www.openssl.org/support/> the
656 OpenSSL support page.
658 --------------------------------------------------------------------------------
661 -copy "$(INSTDIR)\OPENSSL-README.txt" + srclib\openssl\README
663 !IF EXIST("srclib\zlib")
664 type << >> "$(INSTDIR)\NOTICE.txt"
666 This binary distribution of mod_deflate.so includes zlib compression code
667 <http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
668 and Mark Adler (madler@alumni.caltech.edu) .
670 -awk -f <<script.awk < "srclib\zlib\README" >> "$(INSTDIR)\LICENSE.txt"
672 while ( getline > 0 ) {
673 if ( $$0 ~ /Copyright notice:/ ) {
675 print "For the mod_deflate zlib compression component:";
676 while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
686 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
687 _copybin src_exe=exe src_dll=dll src_so=so \
688 inst_exe="$(INSTDIR)\bin" \
689 inst_dll="$(INSTDIR)\bin" \
690 inst_so="$(INSTDIR)\modules"
691 $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
692 _copybin src_exe=pdb src_dll=pdb src_so=pdb \
693 inst_exe="$(INSTDIR)\bin" \
694 inst_dll="$(INSTDIR)\bin" \
695 inst_so="$(INSTDIR)\modules"
697 $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
698 BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
699 INSTALL_DIR="$(INSTDIR)\bin\iconv"
701 copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
702 -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
704 if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
705 gsub( /\\/, "/", perlroot );
710 if ( $$0 !~ /^#!/ ) {
715 xcopy docs\error "$(INSTDIR)\error" /s /d < .a
716 xcopy docs\docroot "$(INSTDIR)\htdocs" /d < .a
717 xcopy docs\icons "$(INSTDIR)\icons" /s /d < .a
718 xcopy docs\manual "$(INSTDIR)\manual" /s /d < .a
719 xcopy srclib\apr-util\xml\expat\lib\expat.h "$(INSTDIR)\include" /d < .a
720 xcopy srclib\apr\include\*.h "$(INSTDIR)\include" /d < .a
721 xcopy srclib\apr-util\include\*.h "$(INSTDIR)\include" /d < .a
722 xcopy include\*.h "$(INSTDIR)\include" /d < .a
723 copy srclib\apr\Lib$(SHORT)\apr-1.lib "$(INSTDIR)\lib" <.y
724 copy srclib\apr\Lib$(SHORT)\apr-1.pdb "$(INSTDIR)\lib" <.y
725 copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib "$(INSTDIR)\lib" <.y
726 copy srclib\apr-util\Lib$(SHORT)\aprutil-1.pdb "$(INSTDIR)\lib" <.y
727 copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
728 copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.pdb "$(INSTDIR)\lib" <.y
729 copy srclib\apr\$(LONG)\libapr-1.lib "$(INSTDIR)\lib" <.y
730 copy srclib\apr\$(LONG)\libapr-1.exp "$(INSTDIR)\lib" <.y
731 copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib "$(INSTDIR)\lib" <.y
732 copy srclib\apr-iconv\$(LONG)\libapriconv-1.exp "$(INSTDIR)\lib" <.y
733 copy srclib\apr-util\$(LONG)\libaprutil-1.lib "$(INSTDIR)\lib" <.y
734 copy srclib\apr-util\$(LONG)\libaprutil-1.exp "$(INSTDIR)\lib" <.y
735 copy $(LONG)\libhttpd.exp "$(INSTDIR)\lib" <.y
736 copy $(LONG)\libhttpd.lib "$(INSTDIR)\lib" <.y
737 copy modules\dav\main\$(LONG)\mod_dav.exp "$(INSTDIR)\lib" <.y
738 copy modules\dav\main\$(LONG)\mod_dav.lib "$(INSTDIR)\lib" <.y
739 for %f in ( charset.conv magic mime.types ) do ( \
740 copy docs\conf\%f "$(INSTDIR)\conf\original\%f" <.y )
741 awk -f build\installwinconf.awk $(DOMAINNAME) $(SERVERNAME) \
742 $(SERVERADMIN) $(PORT) $(SSLPORT) "$(INSTDIR) " docs/conf/
743 copy "support\dbmmanage.in" "$(INSTDIR)\bin\dbmmanage.pl"
744 -awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
745 { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
746 sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" );
748 if ( $$0 !~ /^#!@perlbin@/ )