]> granicus.if.org Git - apache/blobdiff - Makefile.win
Backout r410758 because DavLockDB needs to point to an httpd-writable
[apache] / Makefile.win
index b6b8919f551b1a00ba3aac16b6a426de8d877add..4e71b3f787deb3bb2c749481e844108cf2481530 100644 (file)
 #   _cleand    - remove (most) files generated by a Debug build
 #   _browse    - build the browse info file
 #
-# The default installation directory is \Apache2.0. This can be changed
-# with the INSTDIR macro, for example:
+# The following install defaults may be customized;
 #
-#   nmake /f Makefile.win INSTDIR="d:\Program Files\Apache" installr
+#   Option      Default
+#   INSTDIR     \Apache2
+#   PORT        80
+#   SSLPORT     443
+#   SERVERNAME  localhost
 #
-# Note: this does *NOT* change the compiled in default "server root"
-# Also be aware that certain awk's will not accept backslahed names,
+# For example;
+#
+#   nmake -f Makefile.win PORT=80 INSTDIR="d:\Program Files\Apache" installr
+#
+# Be aware that certain awk's will not accept backslahed names,
 # so the server root should be given in forward slashes (quoted),
 # preferably with the drive designation!
 
-default:        _apacher
+default: _apacher
 
-!IF !EXIST("srclib\apr")
-!MESSAGE Please check out or download and unpack the Apache Portability Runtime
-!MESSAGE sources (apr and apr-util) into your $(INSTDIR)\srclib directory.
-!MESSAGE Apache cannot build without these libraries!
-!MESSAGE 
-!ERROR Need $(INSTDIR)\srclib\apr
+!IF ("$(CTARGET)" == "") && !EXIST("httpd.mak") && EXIST("Apache.sln")
+CTARGET=/build
 !ENDIF
 
-!IF !EXIST("srclib\apr-util")
+!IF !EXIST("srclib\apr") || !EXIST("srclib\apr-util") || !EXIST("srclib\apr-iconv")
 !MESSAGE Please check out or download and unpack the Apache Portability Runtime
-!MESSAGE sources (apr and apr-util) into your $(INSTDIR)\srclib directory.
+!MESSAGE sources (apr, apr-iconv and apr-util) into your srclib dir.
 !MESSAGE Apache cannot build without these libraries!
 !MESSAGE 
-!ERROR Need $(INSTDIR)\srclib\apr-util
+!ERROR Need srclib\  apr, apr-iconv and apr-util
 !ENDIF
 
 # Note; _tryssl: is only used by the msvc developer studio environment to 'fix up'
 #      the build, since conditional dependencies aren't supported.
 #
 !IF EXIST("srclib\openssl")
-!IF "$(LONG)" == "Debug"
+!IF "$(LONG)" == "Debug" && EXIST("srclib\openssl\out32dll.dbg\openssl.exe")
 SSLBIN=out32dll.dbg
 !ELSE
 SSLBIN=out32dll
 !ENDIF
+
 _tryssl:
 !IF EXIST("modules\ssl\mod_ssl.mak")
        cd modules\ssl
-        $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(LONG)\mod_ssl.so
+       $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..
        cd support
-        $(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(LONG)\abs.exe
+       $(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..
+!ELSEIF EXIST("Apache.sln")
+       devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
+       devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
 !ELSE
-       msdev Apache.dsw /MAKE\
-               "mod_ssl - Win32 $(LONG)"\
+       @msdev Apache.dsw /USEENV /MAKE \
+               "mod_ssl - Win32 $(LONG)" \
                "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
 !ENDIF
 
 !ELSE
+#     NOT EXIST("srclib\openssl")
+
 _tryssl:
-       echo mod_ssl and ab/ssl will not build without openssl 
-       echo installed in $(INSTDIR)\srclib\openssl.  They must be precompiled 
-       echo using the ms/ntdll.mak file.  See INSTALL.W32 for details.
+       @echo -----
+       @echo mod_ssl and ab/ssl will not build unless openssl is installed
+       @echo in srclib\openssl.  They must be precompiled using the 
+       @echo ms/ntdll.mak file, see srclib\openssl\INSTALL.W32.  The most
+       @echo recent version confirmed to build with mod_ssl and ab is 0.9.6h.
+       @echo Available from http://www.openssl.org/
+!ENDIF
+
+!IF EXIST("srclib\zlib")
+
+_tryzlib:
+!IF EXIST("modules\filters\mod_deflate.mak")
+       cd modules\filters
+       $(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+       cd ..\..
+!ELSEIF EXIST("Apache.sln")
+       devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
+!ELSE
+       @msdev Apache.dsw /USEENV /MAKE \
+               "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
+!ENDIF
+
+!ELSE
+#     NOT EXIST("srclib\zlib")
+
+_tryzlib:
+       @echo -----
+       @echo mod_deflate will not build unless zlib is installed in srclib\zlib.  
+       @echo Version 1.2.1 and later available from http://www.gzip.org/zlib/
+       @echo built w/ nmake -f win32/Makefile.msc will satisfy this requirement.
+
 !ENDIF
 
 !IF "$(INSTDIR)" == ""
 INSTDIR=\Apache2
-!MESSAGE Using default install directory $(INSTDIR)
+!ENDIF
+!IF "$(SERVERNAME)" == ""
+SERVERNAME=localhost
+!ENDIF
+!IF "$(PORT)" == ""
+PORT=80
+!ENDIF 
+!IF "$(SSLPORT)" == ""
+SSLPORT=443
 !ENDIF 
 
+!IF "$(LONG)" == ""
+!MESSAGE
+!MESSAGE INSTDIR    = $(INSTDIR)
+!MESSAGE SERVERNAME = $(SERVERNAME)
+!MESSAGE PORT       = $(PORT)
+!IF EXIST("srclib\openssl")
+!MESSAGE SSLPORT    = $(SSLPORT)
+!ENDIF
+!MESSAGE
+!MESSAGE To change these options use 'nmake -f Makefile.win [option=value]'
+!MESSAGE Example: nmake -f Makefile.win PORT=8080
+!MESSAGE
+!MESSAGE
+!ENDIF
+
 !IFNDEF MAKEOPT
 # Only default the behavior if MAKEOPT= is omitted
-!IF "$(MAKE)" == "NMAKE"
+!IFDEF _NMAKE_VER
 # Microsoft NMake options
 MAKEOPT=-nologo
-!ELSEIF "($MAKE)" == "make"
+!ELSEIF "$(MAKE)" == "make"
 # Borland make options?  Not really supported (yet)
 MAKEOPT=-s -N
 !ENDIF
 !ENDIF
 
+_dummy:
+
 _browse:
        cd Browse
          bscmake.exe -nologo -Iu -o Apache.bsc *.sbr
        cd ..
 
 _apacher: 
-       $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build
+       @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build
 
 _apached: 
-       $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build
+       @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build
 
 installr: 
-       $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install
+       @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install
 
 installd: 
-       $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build _install
+       @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build _install
 
 clean: _cleanr _cleand
-       rd /s Browse < << 
+       -if exist Browse\. rd /s Browse < << > nul
 y
 <<
 
-!IF EXIST("Apache.mak")
+!IF EXIST("httpd.mak")
 
 _cleanr:
        $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
@@ -117,155 +178,317 @@ _cleand:
 _build:
        echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
        cd srclib\apr
-        $(MAKE) $(MAKEOPT) -f apr.mak CFG="apr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f libapr.mak CFG="libapr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f apr.mak             CFG="apr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f libapr.mak          CFG="libapr - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+       cd ..\..
+       cd srclib\apr-iconv
+        $(MAKE) $(MAKEOPT) -f apriconv.mak  CFG="apriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f libapriconv.mak  CFG="libapriconv - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+!IF "$(CTARGET)" == "CLEAN"
+       $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
+               BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
+!ELSE
+       cd ccs
+       $(MAKE) $(MAKEOPT) -f Makefile.win all \
+               BUILD_MODE=$(LONG) BIND_MODE=shared
+       cd ..\ces
+       $(MAKE) $(MAKEOPT) -f Makefile.win all \
+               BUILD_MODE=$(LONG) BIND_MODE=shared
+       cd ..
+!ENDIF
        cd ..\..
-       cd srclib\apr-util\uri
-        $(MAKE) $(MAKEOPT) -f gen_uri_delims.mak CFG="gen_uri_delims - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-       cd ..\..\..
        cd srclib\apr-util\xml\expat\lib
-        $(MAKE) $(MAKEOPT) -f xml.mak CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        cd ..\..\..
-        $(MAKE) $(MAKEOPT) -f aprutil.mak CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f libaprutil.mak CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f xml.mak             CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+       cd ..\..\..
+        $(MAKE) $(MAKEOPT) -f aprutil.mak         CFG="aprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f libaprutil.mak      CFG="libaprutil - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..
        cd srclib\pcre
-        $(MAKE) $(MAKEOPT) -f dftables.mak CFG="dftables - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f pcre.mak CFG="pcre - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f pcreposix.mak CFG="pcreposix - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f dftables.mak        CFG="dftables - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f pcre.mak            CFG="pcre - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..
        cd server
-        $(MAKE) $(MAKEOPT) -f gen_test_char.mak CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f gen_test_char.mak   CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..
-        -del $(LONG)\buildmark.obj
-        $(MAKE) $(MAKEOPT) -f libhttpd.mak CFG="libhttpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f Apache.mak CFG="Apache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f libhttpd.mak        CFG="libhttpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f httpd.mak           CFG="httpd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+# build ldap prior to authnz_ldap
+       cd modules\ldap
+        $(MAKE) $(MAKEOPT) -f mod_ldap.mak        CFG="mod_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+       cd ..\..
+       cd modules\database
+        $(MAKE) $(MAKEOPT) -f mod_dbd.mak         CFG="mod_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+       cd ..\..
        cd modules\aaa
-        $(MAKE) $(MAKEOPT) -f mod_auth_anon.mak CFG="mod_auth_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-         $(MAKE) $(MAKEOPT) -f mod_auth_dbm.mak CFG="mod_auth_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_auth_basic.mak  CFG="mod_auth_basic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
         $(MAKE) $(MAKEOPT) -f mod_auth_digest.mak CFG="mod_auth_digest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_authn_anon.mak  CFG="mod_authn_anon - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_authn_dbd.mak   CFG="mod_authn_dbd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_authn_dbm.mak   CFG="mod_authn_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_authn_default.mak CFG="mod_authn_default - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_authn_file.mak  CFG="mod_authn_file - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_authz_dbm.mak   CFG="mod_authz_dbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_authz_default.mak CFG="mod_authz_default - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_authz_groupfile.mak CFG="mod_authz_groupfile - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_authz_host.mak  CFG="mod_authz_host - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_authz_user.mak  CFG="mod_authz_user - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_authnz_ldap.mak CFG="mod_authnz_ldap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..
+       cd modules\arch\win32
+        $(MAKE) $(MAKEOPT) -f mod_isapi.mak       CFG="mod_isapi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+       cd ..\..\..
        cd modules\cache
-        $(MAKE) $(MAKEOPT) -f mod_file_cache.mak CFG="mod_file_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_cache.mak       CFG="mod_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_file_cache.mak  CFG="mod_file_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_mem_cache.mak   CFG="mod_mem_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_disk_cache.mak  CFG="mod_disk_cache - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..
        cd modules\dav\main
-        $(MAKE) $(MAKEOPT) -f mod_dav.mak CFG="mod_dav - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_dav.mak         CFG="mod_dav - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..\..
        cd modules\dav\fs
-        $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_dav_fs.mak      CFG="mod_dav_fs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..\..
+       cd modules\debugging
+        $(MAKE) $(MAKEOPT) -f mod_bucketeer.mak   CFG="mod_bucketeer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_dumpio.mak      CFG="mod_dumpio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+       cd ..\..
+       cd modules\experimental
+       cd ..\..
+       cd modules\filters
+        $(MAKE) $(MAKEOPT) -f mod_charset_lite.mak CFG="mod_charset_lite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+!IF EXIST("srclib\zlib")
+        $(MAKE) $(MAKEOPT) -f mod_deflate.mak     CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+!ENDIF
+        $(MAKE) $(MAKEOPT) -f mod_ext_filter.mak  CFG="mod_ext_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_include.mak     CFG="mod_include - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+       cd ..\..
        cd modules\generators
-         $(MAKE) $(MAKEOPT) -f mod_info.mak CFG"=mod_info - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-         $(MAKE) $(MAKEOPT) -f mod_status.mak CFG="mod_status - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_asis.mak        CFG="mod_asis - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_autoindex.mak   CFG="mod_autoindex - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_cgi.mak         CFG="mod_cgi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_info.mak        CFG="mod_info - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_status.mak      CFG="mod_status - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+       cd ..\..
+       cd modules\http
+        $(MAKE) $(MAKEOPT) -f mod_mime.mak        CFG="mod_mime - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+       cd ..\..
+       cd modules\loggers
+        $(MAKE) $(MAKEOPT) -f mod_log_config.mak  CFG="mod_log_config - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_log_forensic.mak CFG="mod_log_forensic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_logio.mak       CFG="mod_logio - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..
        cd modules\mappers
-         $(MAKE) $(MAKEOPT) -f mod_rewrite.mak CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f mod_speling.mak CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_actions.mak     CFG="mod_actions - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_alias.mak       CFG="mod_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_dir.mak         CFG="mod_dir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_imagemap.mak    CFG="mod_imagemap - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_negotiation.mak CFG="mod_negotiation - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_rewrite.mak     CFG="mod_rewrite - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_speling.mak     CFG="mod_speling - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_userdir.mak     CFG="mod_userdir - Win32 $(LONG)" RECURSE=0 $(CTARGET)
         $(MAKE) $(MAKEOPT) -f mod_vhost_alias.mak CFG="mod_vhost_alias - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..
        cd modules\metadata
-        $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f mod_expires.mak CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f mod_headers.mak CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f mod_mime_magic.mak CFG="mod_mime_magic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f mod_unique_id.mak CFG="mod_unique_id - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f mod_usertrack.mak CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_cern_meta.mak   CFG="mod_cern_meta - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_env.mak         CFG="mod_env - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_expires.mak     CFG="mod_expires - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_headers.mak     CFG="mod_headers - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_ident.mak       CFG="mod_ident - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_mime_magic.mak  CFG="mod_mime_magic - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_setenvif.mak    CFG="mod_setenvif - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_unique_id.mak   CFG="mod_unique_id - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_usertrack.mak   CFG="mod_usertrack - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_version.mak     CFG="mod_version - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..
        cd modules\proxy
-        $(MAKE) $(MAKEOPT) -f mod_proxy.mak CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f proxy_connect.mak CFG="proxy_connect - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f proxy_ftp.mak CFG="proxy_ftp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f proxy_http.mak CFG="proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_proxy.mak       CFG="mod_proxy - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_proxy_ajp.mak   CFG="mod_proxy_ajp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_proxy_balancer.mak  CFG="mod_proxy_balancer - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_proxy_connect.mak CFG="mod_proxy_connect - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_proxy_ftp.mak   CFG="mod_proxy_ftp - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_proxy_http.mak  CFG="mod_proxy_http - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..
 !IF EXIST("srclib\openssl")
        cd modules\ssl
-        $(MAKE) $(MAKEOPT) -f mod_ssl.mak CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f mod_ssl.mak         CFG="mod_ssl - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..
        cd support
-         $(MAKE) $(MAKEOPT) -f abs.mak CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f abs.mak             CFG="abs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..
 !ENDIF
        cd support
-         $(MAKE) $(MAKEOPT) -f ab.mak CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-         $(MAKE) $(MAKEOPT) -f htdbm.mak CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-         $(MAKE) $(MAKEOPT) -f htdigest.mak CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-         $(MAKE) $(MAKEOPT) -f htpasswd.mak CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f logresolve.mak CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f rotatelogs.mak CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f ab.mak              CFG="ab - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f htcacheclean.mak    CFG="htcacheclean - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f htdbm.mak           CFG="htdbm - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f htdigest.mak        CFG="htdigest - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f htpasswd.mak        CFG="htpasswd - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f logresolve.mak      CFG="logresolve - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f rotatelogs.mak      CFG="rotatelogs - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..
        cd support\win32
-         $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-         $(MAKE) $(MAKEOPT) -f wintty.mak CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f ApacheMonitor.mak   CFG="ApacheMonitor - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+        $(MAKE) $(MAKEOPT) -f wintty.mak          CFG="wintty - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..
 
-!ELSE
+!ELSEIF EXIST("Apache.sln")
 
 _cleanr:  
-       $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
+       $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/clean" _build
 
 _cleand:  
-       $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/CLEAN" _build
+       $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/clean" _build
 
 _build:
        echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
-       -del $(LONG)\buildmark.obj
-       msdev Apache.dsw /MAKE\
-               "apr - Win32 $(LONG)"\
-               "libapr - Win32 $(LONG)"\
-               "gen_uri_delims - Win32 $(LONG)"\
-               "xml - Win32 $(LONG)"\
-               "aprutil - Win32 $(LONG)"\
-               "libaprutil - Win32 $(LONG)"\
-               "dftables - Win32 $(LONG)"\
-               "pcre - Win32 $(LONG)"\
-               "pcreposix - Win32 $(LONG)"\
-               "gen_test_char - Win32 $(LONG)"\
-               "libhttpd - Win32 $(LONG)"\
-               "Apache - Win32 $(LONG)"\
-               "mod_auth_anon - Win32 $(LONG)"\
-               "mod_auth_dbm - Win32 $(LONG)"\
-               "mod_auth_digest - Win32 $(LONG)"\
-               "mod_file_cache - Win32 $(LONG)"\
-               "mod_dav - Win32 $(LONG)"\
-               "mod_dav_fs - Win32 $(LONG)"\
-               "mod_info - Win32 $(LONG)"\
-               "mod_status - Win32 $(LONG)"\
-               "mod_rewrite - Win32 $(LONG)"\
-               "mod_speling - Win32 $(LONG)"\
-               "mod_vhost_alias - Win32 $(LONG)"\
-               "mod_cern_meta - Win32 $(LONG)"\
-               "mod_expires - Win32 $(LONG)"\
-               "mod_headers - Win32 $(LONG)"\
-               "mod_mime_magic - Win32 $(LONG)"\
-               "mod_unique_id - Win32 $(LONG)"\
-               "mod_usertrack - Win32 $(LONG)"\
-               "mod_proxy - Win32 $(LONG)"\
-               "proxy_connect - Win32 $(LONG)"\
-               "proxy_ftp - Win32 $(LONG)"\
-               "proxy_http - Win32 $(LONG)"\
-               "ab - Win32 $(LONG)"\
-               "htdbm - Win32 $(LONG)"\
-               "htdigest - Win32 $(LONG)"\
-               "htpasswd - Win32 $(LONG)"\
-               "logresolve - Win32 $(LONG)"\
-               "rotatelogs - Win32 $(LONG)"\
-               "ApacheMonitor - Win32 $(LONG)"\
-               "wintty - Win32 $(LONG)" /NORECURSE $(CTARGET)
+       devenv Apache.sln /useenv $(CTARGET) $(LONG) /project BuildBin
 !IF EXIST("srclib\openssl")
-       msdev Apache.dsw /MAKE\
-               "mod_ssl - Win32 $(LONG)"\
+       devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
+       devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
+!ENDIF
+!IF EXIST("srclib\zlib")
+       devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_deflate
+!ENDIF
+
+!ELSE
+
+_cleanr:  
+       @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET="/CLEAN" _build
+
+_cleand:  
+       @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   CTARGET="/CLEAN" _build
+
+_build:
+       @echo Building Win32 $(LONG) targets ($(SHORT) suffixes)
+       @msdev Apache.dsw /USEENV /MAKE \
+               "BuildBin - Win32 $(LONG)" $(CTARGET)
+!IF "$(CTARGET)" == "/CLEAN"
+       @cd srclib\apr-iconv
+       @$(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
+               BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=.
+       @cd ..\..
+!ENDIF
+!IF EXIST("srclib\openssl")
+       @msdev Apache.dsw /USEENV /MAKE \
+               "mod_ssl - Win32 $(LONG)" \
                "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
 !ENDIF
+!IF EXIST("srclib\zlib")
+       @msdev Apache.dsw /USEENV /MAKE \
+               "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
+!ENDIF
 
 !ENDIF
 
+
+_copybin:
+       copy $(LONG)\httpd.$(src_exe)                           "$(inst_exe)" <.y
+       copy $(LONG)\libhttpd.$(src_dll)                        "$(inst_dll)" <.y
+       copy srclib\apr\$(LONG)\libapr-1.$(src_dll)             "$(inst_dll)" <.y
+       copy srclib\apr-iconv\$(LONG)\libapriconv-1.$(src_dll)  "$(inst_dll)" <.y
+       copy srclib\apr-util\$(LONG)\libaprutil-1.$(src_dll)    "$(inst_dll)" <.y
+       copy modules\aaa\$(LONG)\mod_auth_basic.$(src_so)       "$(inst_so)" <.y
+       copy modules\aaa\$(LONG)\mod_auth_digest.$(src_so)      "$(inst_so)" <.y
+       copy modules\aaa\$(LONG)\mod_authn_anon.$(src_so)       "$(inst_so)" <.y
+       copy modules\aaa\$(LONG)\mod_authn_dbd.$(src_so)        "$(inst_so)" <.y
+       copy modules\aaa\$(LONG)\mod_authn_dbm.$(src_so)        "$(inst_so)" <.y
+       copy modules\aaa\$(LONG)\mod_authn_default.$(src_so)    "$(inst_so)" <.y
+       copy modules\aaa\$(LONG)\mod_authn_file.$(src_so)       "$(inst_so)" <.y
+       copy modules\aaa\$(LONG)\mod_authz_dbm.$(src_so)        "$(inst_so)" <.y
+       copy modules\aaa\$(LONG)\mod_authz_default.$(src_so)    "$(inst_so)" <.y
+       copy modules\aaa\$(LONG)\mod_authz_groupfile.$(src_so)  "$(inst_so)" <.y
+       copy modules\aaa\$(LONG)\mod_authz_host.$(src_so)       "$(inst_so)" <.y
+       copy modules\aaa\$(LONG)\mod_authz_user.$(src_so)       "$(inst_so)" <.y
+       copy modules\aaa\$(LONG)\mod_authnz_ldap.$(src_so)      "$(inst_so)" <.y
+       copy modules\arch\win32\$(LONG)\mod_isapi.$(src_so)     "$(inst_so)" <.y
+       copy modules\cache\$(LONG)\mod_cache.$(src_so)          "$(inst_so)" <.y
+       copy modules\cache\$(LONG)\mod_file_cache.$(src_so)     "$(inst_so)" <.y
+       copy modules\cache\$(LONG)\mod_mem_cache.$(src_so)      "$(inst_so)" <.y
+       copy modules\cache\$(LONG)\mod_disk_cache.$(src_so)     "$(inst_so)" <.y
+       copy modules\database\$(LONG)\mod_dbd.$(src_so)         "$(inst_so)" <.y
+       copy modules\dav\fs\$(LONG)\mod_dav_fs.$(src_so)        "$(inst_so)" <.y
+       copy modules\dav\main\$(LONG)\mod_dav.$(src_so)         "$(inst_so)" <.y
+       copy modules\debugging\$(LONG)\mod_bucketeer.$(src_so)  "$(inst_so)" <.y
+       copy modules\debugging\$(LONG)\mod_dumpio.$(src_so)     "$(inst_so)" <.y
+       copy modules\filters\$(LONG)\mod_charset_lite.$(src_so) "$(inst_so)" <.y
+!IF EXIST("srclib\zlib")
+       copy modules\filters\$(LONG)\mod_deflate.$(src_so)      "$(inst_so)" <.y
+!IF EXIST("srclib\zlib\zlib1.$(src_dll)")
+       copy srclib\zlib\zlib1.$(src_dll)                       "$(inst_dll)" <.y
+!ENDIF
+!ENDIF
+       copy modules\filters\$(LONG)\mod_ext_filter.$(src_so)   "$(inst_so)" <.y
+       copy modules\filters\$(LONG)\mod_include.$(src_so)      "$(inst_so)" <.y
+       copy modules\generators\$(LONG)\mod_asis.$(src_so)      "$(inst_so)" <.y
+       copy modules\generators\$(LONG)\mod_autoindex.$(src_so) "$(inst_so)" <.y
+       copy modules\generators\$(LONG)\mod_cgi.$(src_so)       "$(inst_so)" <.y
+       copy modules\generators\$(LONG)\mod_info.$(src_so)      "$(inst_so)" <.y
+       copy modules\generators\$(LONG)\mod_status.$(src_so)    "$(inst_so)" <.y
+       copy modules\http\$(LONG)\mod_mime.$(src_so)            "$(inst_so)" <.y
+       copy modules\ldap\$(LONG)\mod_ldap.$(src_so)            "$(inst_so)" <.y
+       copy modules\loggers\$(LONG)\mod_log_config.$(src_so)   "$(inst_so)" <.y
+       copy modules\loggers\$(LONG)\mod_log_forensic.$(src_so) "$(inst_so)" <.y
+       copy modules\loggers\$(LONG)\mod_logio.$(src_so)        "$(inst_so)" <.y
+       copy modules\mappers\$(LONG)\mod_actions.$(src_so)      "$(inst_so)" <.y
+       copy modules\mappers\$(LONG)\mod_alias.$(src_so)        "$(inst_so)" <.y
+       copy modules\mappers\$(LONG)\mod_dir.$(src_so)          "$(inst_so)" <.y
+       copy modules\mappers\$(LONG)\mod_imagemap.$(src_so)     "$(inst_so)" <.y
+       copy modules\mappers\$(LONG)\mod_negotiation.$(src_so)  "$(inst_so)" <.y
+       copy modules\mappers\$(LONG)\mod_rewrite.$(src_so)      "$(inst_so)" <.y
+       copy modules\mappers\$(LONG)\mod_speling.$(src_so)      "$(inst_so)" <.y
+       copy modules\mappers\$(LONG)\mod_userdir.$(src_so)      "$(inst_so)" <.y
+       copy modules\mappers\$(LONG)\mod_vhost_alias.$(src_so)  "$(inst_so)" <.y
+       copy modules\metadata\$(LONG)\mod_cern_meta.$(src_so)   "$(inst_so)" <.y
+       copy modules\metadata\$(LONG)\mod_env.$(src_so)         "$(inst_so)" <.y
+       copy modules\metadata\$(LONG)\mod_expires.$(src_so)     "$(inst_so)" <.y
+       copy modules\metadata\$(LONG)\mod_headers.$(src_so)     "$(inst_so)" <.y
+       copy modules\metadata\$(LONG)\mod_ident.$(src_so)       "$(inst_so)" <.y
+       copy modules\metadata\$(LONG)\mod_mime_magic.$(src_so)  "$(inst_so)" <.y
+       copy modules\metadata\$(LONG)\mod_setenvif.$(src_so)    "$(inst_so)" <.y
+       copy modules\metadata\$(LONG)\mod_unique_id.$(src_so)   "$(inst_so)" <.y
+       copy modules\metadata\$(LONG)\mod_usertrack.$(src_so)   "$(inst_so)" <.y
+       copy modules\metadata\$(LONG)\mod_version.$(src_so)     "$(inst_so)" <.y
+       copy modules\proxy\$(LONG)\mod_proxy.$(src_so)          "$(inst_so)" <.y
+       copy modules\proxy\$(LONG)\mod_proxy_ajp.$(src_so)      "$(inst_so)" <.y
+       copy modules\proxy\$(LONG)\mod_proxy_balancer.$(src_so) "$(inst_so)" <.y
+       copy modules\proxy\$(LONG)\mod_proxy_connect.$(src_so)  "$(inst_so)" <.y
+       copy modules\proxy\$(LONG)\mod_proxy_ftp.$(src_so)      "$(inst_so)" <.y
+       copy modules\proxy\$(LONG)\mod_proxy_http.$(src_so)     "$(inst_so)" <.y
+!IF EXIST("srclib\openssl")
+       copy modules\ssl\$(LONG)\mod_ssl.$(src_so)                      "$(inst_so)" <.y
+       $(quiet)copy srclib\openssl\$(SSLBIN)\openssl.$(src_exe)        "$(inst_exe)" <.y
+       $(quiet)copy srclib\openssl\$(SSLBIN)\libeay32.$(src_dll)       "$(inst_dll)" <.y
+       $(quiet)copy srclib\openssl\$(SSLBIN)\ssleay32.$(src_dll)       "$(inst_dll)" <.y
+       copy support\$(LONG)\abs.$(src_exe)     "$(inst_exe)\ab.$(src_exe)" <.y
+!ELSE
+       copy support\$(LONG)\ab.$(src_exe)                              "$(inst_exe)" <.y
+!ENDIF
+       copy support\$(LONG)\htcacheclean.$(src_exe)            "$(inst_exe)" <.y
+       copy support\$(LONG)\htdbm.$(src_exe)                   "$(inst_exe)" <.y
+       copy support\$(LONG)\htdigest.$(src_exe)                "$(inst_exe)" <.y
+       copy support\$(LONG)\htpasswd.$(src_exe)                "$(inst_exe)" <.y
+       copy support\$(LONG)\logresolve.$(src_exe)              "$(inst_exe)" <.y
+       copy support\$(LONG)\rotatelogs.$(src_exe)              "$(inst_exe)" <.y
+       copy support\win32\$(LONG)\ApacheMonitor.$(src_exe)     "$(inst_exe)" <.y
+       copy support\win32\$(LONG)\wintty.$(src_exe)            "$(inst_exe)" <.y
+
+
+# First we create the tree and populate the README so that 
+# whatever happens, all licensing has already propagated.  
+# Then repeatedly invoke the _copybin build to copy the
+# real binaries, then pdb symbols, anf finally dbg syms.
+# Then hit docs of various sorts, then includes and libs,
+# and finally do the .conf magic.
+#
 _install:
        echo Y >.y
        echo A >.A
        -mkdir "$(INSTDIR)"
        -mkdir "$(INSTDIR)\bin"
+       -mkdir "$(INSTDIR)\bin\iconv"
        -mkdir "$(INSTDIR)\cgi-bin"
        -mkdir "$(INSTDIR)\conf"
+       -mkdir "$(INSTDIR)\conf\extra"
        -mkdir "$(INSTDIR)\error"
        -mkdir "$(INSTDIR)\htdocs"
        -mkdir "$(INSTDIR)\manual"
@@ -275,57 +498,37 @@ _install:
        -mkdir "$(INSTDIR)\logs"
        -mkdir "$(INSTDIR)\modules"
        -mkdir "$(INSTDIR)\proxy"
-       copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt"
-       copy CHANGES "$(INSTDIR)\CHANGES.txt"
-       copy INSTALL "$(INSTDIR)\INSTALL.txt"
-       copy LICENSE "$(INSTDIR)\LICENSE.txt"
+       -mkdir "$(INSTDIR)\symbols"
+       -mkdir "$(INSTDIR)\symbols\exe"
+       -mkdir "$(INSTDIR)\symbols\dll"
+       -mkdir "$(INSTDIR)\symbols\so"
+       copy ABOUT_APACHE "$(INSTDIR)\ABOUT_APACHE.txt" <.y
+       copy CHANGES      "$(INSTDIR)\CHANGES.txt" <.y
+       copy INSTALL      "$(INSTDIR)\INSTALL.txt" <.y
+       copy LICENSE      "$(INSTDIR)\LICENSE.txt" <.y
+       copy NOTICE       "$(INSTDIR)\NOTICE.txt" <.y
+       copy README       "$(INSTDIR)\README.txt" <.y
 !IF EXIST("srclib\openssl")
-       copy << + README "$(INSTDIR)\README.txt"
+       type << >> "$(INSTDIR)\NOTICE.txt"
 
-  This product includes cryptographic software written by
-  Eric Young (eay@cryptsoft.com).  This product includes software written
-  by Tim Hudson (tjh@cryptsoft.com).  This product includes software
-  developed by the OpenSSL Project for use in the OpenSSL Toolkit.
-  (http://www.openssl.org/)
+  This binary distribution includes cryptographic software written by
+  Eric Young (eay@cryptsoft.com), software written by Tim Hudson 
+  (tjh@cryptsoft.com), and software developed by the OpenSSL Project 
+  for use in the OpenSSL Toolkit <http://www.openssl.org/>.
 <<
-!ELSE
-#      --- just a vanilla copy, in this case.
-       copy README "$(INSTDIR)\README.txt"
-!ENDIF
-       copy $(LONG)\Apache.exe "$(INSTDIR)\bin"
-       copy $(LONG)\libhttpd.dll "$(INSTDIR)\bin"
-       copy srclib\apr\$(LONG)\libapr.dll "$(INSTDIR)\bin"
-        copy srclib\apr-util\$(LONG)\libaprutil.dll "$(INSTDIR)\bin"
-        copy modules\aaa\$(LONG)\mod_auth_anon.so "$(INSTDIR)\modules"
-       copy modules\aaa\$(LONG)\mod_auth_dbm.so "$(INSTDIR)\modules"
-       copy modules\aaa\$(LONG)\mod_auth_digest.so "$(INSTDIR)\modules"
-       copy modules\cache\$(LONG)\mod_file_cache.so "$(INSTDIR)\modules"
-        copy modules\dav\fs\$(LONG)\mod_dav_fs.so "$(INSTDIR)\modules"
-        copy modules\dav\main\$(LONG)\mod_dav.so "$(INSTDIR)\modules"
-        copy modules\generators\$(LONG)\mod_info.so "$(INSTDIR)\modules"
-        copy modules\generators\$(LONG)\mod_status.so "$(INSTDIR)\modules"
-        copy modules\mappers\$(LONG)\mod_rewrite.so "$(INSTDIR)\modules"
-       copy modules\mappers\$(LONG)\mod_speling.so "$(INSTDIR)\modules"
-       copy modules\mappers\$(LONG)\mod_vhost_alias.so "$(INSTDIR)\modules"
-       copy modules\metadata\$(LONG)\mod_cern_meta.so "$(INSTDIR)\modules"
-       copy modules\metadata\$(LONG)\mod_expires.so "$(INSTDIR)\modules"
-       copy modules\metadata\$(LONG)\mod_headers.so "$(INSTDIR)\modules"
-       copy modules\metadata\$(LONG)\mod_mime_magic.so "$(INSTDIR)\modules"
-       copy modules\metadata\$(LONG)\mod_unique_id.so "$(INSTDIR)\modules"
-       copy modules\metadata\$(LONG)\mod_usertrack.so "$(INSTDIR)\modules"
-       copy modules\proxy\$(LONG)\mod_proxy.so "$(INSTDIR)\modules"
-       copy modules\proxy\$(LONG)\proxy_connect.so "$(INSTDIR)\modules"
-       copy modules\proxy\$(LONG)\proxy_ftp.so "$(INSTDIR)\modules"
-       copy modules\proxy\$(LONG)\proxy_http.so "$(INSTDIR)\modules"
-!IF EXIST("srclib\openssl")
-       -copy modules\ssl\$(LONG)\mod_ssl.so "$(INSTDIR)\modules"
-       -copy srclib\openssl\$(SSLBIN)\openssl.exe "$(INSTDIR)\bin"
-       -copy srclib\openssl\$(SSLBIN)\libeay32.dll "$(INSTDIR)\bin"
-       -copy srclib\openssl\$(SSLBIN)\ssleay32.dll "$(INSTDIR)\bin"
-       -copy srclib\openssl\LICENSE "$(INSTDIR)\OPENSSL-LICENSE.txt"
-       -copy << + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt"
+       -awk -f <<script.awk < "srclib\openssl\LICENSE" >> "$(INSTDIR)\LICENSE.txt"
+BEGIN {
+    print "";
+    print "For the libeay32.dll, ssleay32.dll and certtool.exe components:";
+    print "";
+    while ( getline > 0 ) {
+       print $$0;
+   }
+}
+<<
+       copy << + srclib\openssl\NEWS "$(INSTDIR)\OPENSSL-NEWS.txt" <.y
 
- Apache HTTP Server 2.0 Limited OpenSSL Distribution  17 Aug 2001
+ Apache HTTP Server 2.0 Limited OpenSSL Distribution
 
  This binary distribution includes the minimal components of OpenSSL required
  to support mod_ssl for Apache HTTP Server version 2.0 (details are listed 
@@ -339,9 +542,9 @@ _install:
 
 --------------------------------------------------------------------------------
 <<
-       -copy << + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt"
+       copy << + srclib\openssl\README "$(INSTDIR)\OPENSSL-README.txt" <.y
 
- Apache HTTP Server 2.0 Limited OpenSSL Distribution  19 Aug 2001
+ Apache HTTP Server 2.0 Limited OpenSSL Distribution
 
  This binary installation of OpenSSL is a limited distribution of the documents
  OPENSSL-LICENSE.txt, OPENSSL-NEWS.txt and OPENSSL-README.txt, and the binaries
@@ -351,9 +554,10 @@ _install:
    openssl.exe
 
  These are the minimal libraries and tools required to use mod_ssl as 
- distributed with Apache HTTP Server version 2.0.  No library files, headers
- or sources are distributed with this binary distribution.  Please refer to the
- <http://www.openssl.org/> site for complete source or binary distributions.
+ distributed with Apache HTTP Server version 2.0.  No library link files, 
+ headers or sources are distributed with this binary distribution.  Please 
+ refer to the <http://www.openssl.org/> site for complete source or binary 
+ distributions.
 
  These OpenSSL binaries were built for distribution from the U.S. without 
  support for the patented encryption methods IDEA, MDC-2 or RC5.
@@ -362,120 +566,156 @@ _install:
  and development of the mod_ssl module.  We cannot provide support assistance
  for using or configuring the OpenSSL package or these modules.  Please refer
  all installation and configuration questions to the appropriate forum,
- such as the user supported newsgroups comp.infosystems.www.servers.unix or
- comp.infosystems.www.servers.ms-windows, or see the support options
listed at <http://www.openssl.org/support/>.
+ such as the user supported lists, <http://httpd.apache.org/userslist.html> 
+ the Apache HTTP Server user's list or <http://www.openssl.org/support/> the
OpenSSL support page.
 
 --------------------------------------------------------------------------------
 <<
-        copy support\$(LONG)\abs.exe "$(INSTDIR)\bin\ab.exe"
-!ELSE
-        copy support\$(LONG)\ab.exe "$(INSTDIR)\bin"
 !ENDIF
-       copy support\$(LONG)\htdbm.exe "$(INSTDIR)\bin"
-       copy support\$(LONG)\htdigest.exe "$(INSTDIR)\bin"
-        copy support\$(LONG)\htpasswd.exe "$(INSTDIR)\bin"
-       copy support\$(LONG)\logresolve.exe "$(INSTDIR)\bin"
-       copy support\$(LONG)\rotatelogs.exe "$(INSTDIR)\bin"
-        copy support\win32\$(LONG)\ApacheMonitor.exe "$(INSTDIR)\bin"
-        copy support\win32\$(LONG)\wintty.exe "$(INSTDIR)\bin"
-        copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl"
-       -awk -f <<script.awk "docs\cgi-examples\printenv" "$(INSTDIR)\cgi-bin\printenv.pl"
-    BEGIN { 
-        srcfl = ARGV[1];
-        dstfl = ARGV[2];
-        if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
-            gsub( /\\/, "/", perlroot );
-            print "#!" perlroot > dstfl;
-            getline < srcfl;
-        }
-        while ( ( getline < srcfl ) > 0 ) {
-            print $$0 > dstfl;
+!IF EXIST("srclib\zlib")
+       type << >> "$(INSTDIR)\NOTICE.txt"
+
+  This binary distribution of mod_deflate.so includes zlib compression code
+  <http://www.gzip.org/zlib/> written by Jean-loup Gailly (jloup@gzip.org)
+  and Mark Adler (madler@alumni.caltech.edu) .
+<<
+       -awk -f <<script.awk < "srclib\zlib\README" >> "$(INSTDIR)\LICENSE.txt"
+BEGIN {
+    while ( getline > 0 ) {
+       if ( $$0 ~ /Copyright notice:/ ) {
+           print "";
+           print "For the mod_deflate zlib compression component:";
+           while ( getline > 0 && $$0 !~ /^[^ ]/ ) {
+               print $$0;
+            }
+            exit 0;
         }
     }
+    exit 1;
+}
+<<
+!ENDIF
+       $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
+               _copybin src_exe=exe src_dll=dll src_so=so             \
+               inst_exe="$(INSTDIR)\bin"                              \
+               inst_dll="$(INSTDIR)\bin"                              \
+               inst_so="$(INSTDIR)\modules"
+       $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=$(SHORT) LONG=$(LONG) \
+               _copybin src_exe=pdb src_dll=pdb src_so=pdb quiet="-"  \
+               inst_exe="$(INSTDIR)\bin"                              \
+               inst_dll="$(INSTDIR)\bin"                              \
+               inst_so="$(INSTDIR)\modules"
+       cd srclib\apr-iconv
+       $(MAKE) $(MAKEOPT) -f build\modules.mk.win install \
+               BUILD_MODE=$(LONG) BIND_MODE=shared API_SOURCE=. \
+               INSTALL_DIR="$(INSTDIR)\bin\iconv"
+       cd ..\..
+       copy docs\cgi-examples\printenv "$(INSTDIR)\cgi-bin\printenv.pl" <.y
+       -awk -f <<script.awk "docs/cgi-examples/printenv" > "$(INSTDIR)\cgi-bin\printenv.pl"
+    BEGIN { 
+       if ( "perl -e \"print $$^X;\"" | getline perlroot ) {
+           gsub( /\\/, "/", perlroot );
+           print "#!" perlroot;
+       }
+    }
+    {
+       if ( $$0 !~ /^#!/ ) {
+           print $$0;
+       }
+    }
 <<
-        xcopy docs\cgi-examples\test-cgi.bat "$(INSTDIR)\cgi-bin" /d
-        xcopy docs\error "$(INSTDIR)\error" /s /d < .a
-        xcopy docs\docroot "$(INSTDIR)\htdocs" /d < .a
-        xcopy docs\manual "$(INSTDIR)\manual" /s /d < .a
-
-       xcopy srclib\pcre\pcre*.h "$(INSTDIR)\include" /d < .a
-       xcopy srclib\apr-util\xml\expat\lib\expat.h "$(INSTDIR)\include" /d
-       xcopy srclib\apr\include\*.h "$(INSTDIR)\include" /d < .a
-       xcopy srclib\apr-util\include\*.h "$(INSTDIR)\include" /d < .a
-       xcopy include\*.h "$(INSTDIR)\include" /d < .a
-       xcopy os\win32\*.h "$(INSTDIR)\include" /d < .a
-       xcopy server\*.h "$(INSTDIR)\include" /d < .a
-       xcopy server\mpm\winnt\*.h "$(INSTDIR)\include" /d < .a
-       xcopy modules\dav\fs\*.h "$(INSTDIR)\include" /d < .a
-       xcopy modules\dav\main\*.h "$(INSTDIR)\include" /d < .a
-       xcopy modules\experimental\*.h "$(INSTDIR)\include" /d < .a
-       xcopy modules\filters\*.h "$(INSTDIR)\include" /d < .a
-       xcopy modules\generators\*.h "$(INSTDIR)\include" /d < .a
-       xcopy modules\http\*.h "$(INSTDIR)\include" /d < .a
-       xcopy modules\loggers\*.h "$(INSTDIR)\include" /d < .a
-       xcopy modules\mappers\*.h "$(INSTDIR)\include" /d < .a
-       xcopy modules\ssl\*.h "$(INSTDIR)\include" /d < .a
-       xcopy modules\proxy\*.h "$(INSTDIR)\include" /d < .a
-        xcopy docs\icons "$(INSTDIR)\icons" /s /d < .a
-       copy srclib\apr\Lib$(SHORT)\apr.lib "$(INSTDIR)\lib"
-       copy srclib\apr-util\Lib$(SHORT)\aprutil.lib "$(INSTDIR)\lib"
-       copy srclib\pcre\Lib$(SHORT)\pcre.lib "$(INSTDIR)\lib"
-       copy srclib\pcre\Lib$(SHORT)\pcreposix.lib "$(INSTDIR)\lib"
-#       ### until we determine if it's safe to change expat>libexpat and xml>expat
-#       within our cvs tree... at least remain consistent to our naming conventions;
-       copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib\expat.lib"
-       copy srclib\apr\$(LONG)\libapr.lib "$(INSTDIR)\lib"
-       copy srclib\apr\$(LONG)\libapr.exp "$(INSTDIR)\lib"
-       copy srclib\apr-util\$(LONG)\libaprutil.lib "$(INSTDIR)\lib"
-       copy srclib\apr-util\$(LONG)\libaprutil.exp "$(INSTDIR)\lib"
-       copy $(LONG)\libhttpd.exp "$(INSTDIR)\lib"
-       copy $(LONG)\libhttpd.lib "$(INSTDIR)\lib"
-       copy modules\dav\main\$(LONG)\mod_dav.exp "$(INSTDIR)\lib"
-       copy modules\dav\main\$(LONG)\mod_dav.lib "$(INSTDIR)\lib"
-       copy docs\conf\magic "$(INSTDIR)\conf\magic.default"
-        if not exist "$(INSTDIR)\conf\magic" \
-            copy "$(INSTDIR)\conf\magic.default" "$(INSTDIR)\conf\magic"
-        copy docs\conf\mime.types "$(INSTDIR)\conf\mime.types.default"
-        if not exist "$(INSTDIR)\conf\mime.types" \
-            copy "$(INSTDIR)\conf\mime.types.default" "$(INSTDIR)\conf\mime.types"
-       copy docs\conf\httpd-win.conf "$(INSTDIR)\conf\httpd.default.conf"
-       -awk -f <<script.awk "docs\conf\httpd-win.conf" "$(INSTDIR)\conf\httpd.default.conf" "$(INSTDIR)"
+       xcopy docs\error        "$(INSTDIR)\error" /s /d < .a
+       xcopy docs\docroot      "$(INSTDIR)\htdocs" /d < .a
+       xcopy docs\icons        "$(INSTDIR)\icons" /s /d < .a
+       xcopy docs\manual       "$(INSTDIR)\manual" /s /d < .a
+       xcopy srclib\apr-util\xml\expat\lib\expat.h     "$(INSTDIR)\include" /d < .a
+       xcopy srclib\apr\include\*.h                    "$(INSTDIR)\include" /d < .a
+       xcopy srclib\apr-util\include\*.h               "$(INSTDIR)\include" /d < .a
+       xcopy include\*.h                               "$(INSTDIR)\include" /d < .a
+       copy srclib\apr\Lib$(SHORT)\apr-1.lib           "$(INSTDIR)\lib" <.y
+       copy srclib\apr\Lib$(SHORT)\apr_src.pdb         "$(INSTDIR)\lib" <.y
+       copy srclib\apr-util\Lib$(SHORT)\aprutil-1.lib  "$(INSTDIR)\lib" <.y
+       copy srclib\apr-util\Lib$(SHORT)\aprutil_src.pdb "$(INSTDIR)\lib" <.y
+       copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml.lib "$(INSTDIR)\lib" <.y
+       copy srclib\apr-util\xml\expat\lib\Lib$(SHORT)\xml_src.pdb "$(INSTDIR)\lib" <.y
+       copy srclib\apr\$(LONG)\libapr-1.lib            "$(INSTDIR)\lib" <.y
+       copy srclib\apr\$(LONG)\libapr-1.exp            "$(INSTDIR)\lib" <.y
+       copy srclib\apr-iconv\$(LONG)\libapriconv-1.lib "$(INSTDIR)\lib" <.y
+       copy srclib\apr-iconv\$(LONG)\libapriconv-1.exp "$(INSTDIR)\lib" <.y
+       copy srclib\apr-util\$(LONG)\libaprutil-1.lib   "$(INSTDIR)\lib" <.y
+       copy srclib\apr-util\$(LONG)\libaprutil-1.exp   "$(INSTDIR)\lib" <.y
+       copy $(LONG)\libhttpd.exp                       "$(INSTDIR)\lib" <.y
+       copy $(LONG)\libhttpd.lib                       "$(INSTDIR)\lib" <.y
+       copy modules\dav\main\$(LONG)\mod_dav.exp       "$(INSTDIR)\lib" <.y
+       copy modules\dav\main\$(LONG)\mod_dav.lib       "$(INSTDIR)\lib" <.y
+       echo Y >.y
+       for %f in ( charset.conv magic mime.types ) do ( \
+         copy docs\conf\%f "$(INSTDIR)\conf\%f.default" <.y && \
+         if not exist "$(INSTDIR)\conf\%f" \
+           copy "$(INSTDIR)\conf\%f.default" "$(INSTDIR)\conf\%f" \
+       )
+       copy docs\conf\httpd-win.conf "$(INSTDIR)\conf\httpd.conf.default" <.y
+       -awk -f <<script.awk "docs/conf/httpd-win.conf" "$(INSTDIR)" > "$(INSTDIR)\conf\httpd.conf.default"
     BEGIN { 
-        srcfl = ARGV[1];
-        dstfl = ARGV[2];
-        serverroot = ARGV[3];
-        gsub( /\\/, "/", serverroot );
-        while ( ( getline < srcfl ) > 0 ) {
-            gsub( /@@ServerRoot@@/, serverroot );
-            print $$0 > dstfl;
-        }
+       serverroot = ARGV[2];
+       delete ARGV[2];
+       gsub( /\\/, "/", serverroot );
+       "cd" | getline root;
+       gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
+    }
+    {
+       gsub( /@@ServerRoot@@/, serverroot );
+       gsub( /@@ServerName@@/, "$(SERVERNAME)" );
+       gsub( /@@Port@@/, "$(PORT)" );
+       print $$0;
     }
 <<
        if not exist "$(INSTDIR)\conf\httpd.conf" \
-            copy "$(INSTDIR)\conf\httpd.default.conf" "$(INSTDIR)\conf\httpd.conf"
-       copy docs\conf\ssl-std.conf "$(INSTDIR)\conf\ssl.default.conf"
-       -awk -f <<script.awk "docs\conf\ssl-std.conf" "$(INSTDIR)\conf\ssl.default.conf" "$(INSTDIR)"
+           copy "$(INSTDIR)\conf\httpd.conf.default" "$(INSTDIR)\conf\httpd.conf"
+       for %f in ( docs\conf\extra\*.in ) do ( \
+         copy %f "$(INSTDIR)\conf\extra\%~nf.default" <.y && \
+         awk -f <<script.awk "docs/conf/extra/%~nf.in" "$(INSTDIR)" > "$(INSTDIR)\conf\extra\%~nf.default" )
     BEGIN { 
-        srcfl = ARGV[1];
-        dstfl = ARGV[2];
-        serverroot = ARGV[3];
-        gsub( /\\/, "/", serverroot );
-        while ( ( getline < srcfl ) > 0 ) {
-            gsub( /@@ServerRoot@@/, serverroot );
-            print $$0 > dstfl;
-        }
+       serverroot = ARGV[2];
+       delete ARGV[2];
+       gsub( /\\/, "/", serverroot );
+       "cd" | getline root;
+       gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
+    }
+    {
+       gsub( /SSLMutex  file:@exp_runtimedir@\/ssl_mutex/, "SSLMutex default" );
+       gsub( /@@ServerRoot@@/,   serverroot );
+       gsub( /@exp_cgidir@/,     serverroot "/cgi-bin" );
+       gsub( /@exp_sysconfdir@/, serverroot "/conf" );
+       gsub( /@exp_errordir@/,   serverroot "/error" );
+       gsub( /@exp_htdocsdir@/,  serverroot "/htdocs" );
+       gsub( /@exp_iconsdir@/,   serverroot "/icons" );
+       gsub( /@exp_logfiledir@/, serverroot "/logs" );
+       gsub( /@exp_runtimedir@/, serverroot "/logs" );
+       gsub( /@exp_manualdir@/,  serverroot "/manual" );
+       gsub( /@rel_runtimedir@/, "logs" );
+       gsub( /@rel_logfiledir@/, "logs" );
+       gsub( /\/home\/\*\/public_html/, "\"C:/Documents and Settings/*/My Documents/My Website\"" );
+       gsub( /UserDir public_html/, "UserDir \"My Documents/My Website\"" );
+       gsub( /@@ServerName@@/, "$(SERVERNAME)" );
+       gsub( /@@Port@@/, "$(PORT)" );
+       gsub( /443/, "$(SSLPORT)" );
+       print $$0;
     }
 <<
-       if not exist "$(INSTDIR)\conf\ssl.conf" \
-            copy "$(INSTDIR)\conf\ssl.default.conf" "$(INSTDIR)\conf\ssl.conf"
-       awk -f <<script.awk "support\dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
+       for %f in ( docs\conf\extra\*.in ) do ( \
+         if not exist "$(INSTDIR)\conf\extra\%~nf" \
+           copy "$(INSTDIR)\conf\extra\%~nf.default" "$(INSTDIR)\conf\extra\%~nf" \
+       )
+       copy "support\dbmmanage.in" "$(INSTDIR)\bin\dbmmanage.pl"
+       -awk -f <<script.awk "support/dbmmanage.in" >"$(INSTDIR)\bin\dbmmanage.pl"
     { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
-          sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" ); 
+         sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" ); 
       }
       if ( $$0 !~ /^#!@perlbin@/ )
-          print $$0;
+         print $$0;
     }
 <<
-       del .a .y
-
+       del .y
+       del .a