]> 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
 #
 #   _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!
 
 # 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
 
 !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 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 
 !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")
 !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
 SSLBIN=out32dll.dbg
 !ELSE
 SSLBIN=out32dll
 !ENDIF
+
 _tryssl:
 !IF EXIST("modules\ssl\mod_ssl.mak")
        cd modules\ssl
 _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
        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 ..
        cd ..
+!ELSEIF EXIST("Apache.sln")
+       devenv Apache.sln /useenv $(CTARGET) $(LONG) /project mod_ssl
+       devenv Apache.sln /useenv $(CTARGET) $(LONG) /project abs
 !ELSE
 !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
                "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
 !ENDIF
 
 !ELSE
+#     NOT EXIST("srclib\openssl")
+
 _tryssl:
 _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
 !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 
 
 !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
 !IFNDEF MAKEOPT
 # Only default the behavior if MAKEOPT= is omitted
-!IF "$(MAKE)" == "NMAKE"
+!IFDEF _NMAKE_VER
 # Microsoft NMake options
 MAKEOPT=-nologo
 # Microsoft NMake options
 MAKEOPT=-nologo
-!ELSEIF "($MAKE)" == "make"
+!ELSEIF "$(MAKE)" == "make"
 # Borland make options?  Not really supported (yet)
 MAKEOPT=-s -N
 !ENDIF
 !ENDIF
 
 # 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: 
 _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: 
 
 _apached: 
-       $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build
+       @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=D LONG=Debug   _build
 
 installr: 
 
 installr: 
-       $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install
+       @$(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release _build _install
 
 installd: 
 
 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
 
 clean: _cleanr _cleand
-       rd /s Browse < << 
+       -if exist Browse\. rd /s Browse < << > nul
 y
 <<
 
 y
 <<
 
-!IF EXIST("Apache.mak")
+!IF EXIST("httpd.mak")
 
 _cleanr:
        $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
 
 _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
 _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 ..\..
-       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
        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
        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
        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 ..
        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
        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_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 ..\..
+       cd modules\arch\win32
+        $(MAKE) $(MAKEOPT) -f mod_isapi.mak       CFG="mod_isapi - Win32 $(LONG)" RECURSE=0 $(CTARGET)
+       cd ..\..\..
        cd modules\cache
        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
        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
        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 ..\..\..
+       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
        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
        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_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
        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
        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
        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
        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
        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 ..\..
 
        cd ..\..
 
-!ELSE
+!ELSEIF EXIST("Apache.sln")
 
 _cleanr:  
 
 _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:  
 
 _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)
 
 _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")
 !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
                "abs - Win32 $(LONG)" /NORECURSE $(CTARGET)
 !ENDIF
+!IF EXIST("srclib\zlib")
+       @msdev Apache.dsw /USEENV /MAKE \
+               "mod_deflate - Win32 $(LONG)" /NORECURSE $(CTARGET)
+!ENDIF
 
 !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"
 _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)\cgi-bin"
        -mkdir "$(INSTDIR)\conf"
+       -mkdir "$(INSTDIR)\conf\extra"
        -mkdir "$(INSTDIR)\error"
        -mkdir "$(INSTDIR)\htdocs"
        -mkdir "$(INSTDIR)\manual"
        -mkdir "$(INSTDIR)\error"
        -mkdir "$(INSTDIR)\htdocs"
        -mkdir "$(INSTDIR)\manual"
@@ -275,57 +498,37 @@ _install:
        -mkdir "$(INSTDIR)\logs"
        -mkdir "$(INSTDIR)\modules"
        -mkdir "$(INSTDIR)\proxy"
        -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")
 !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 
 
  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
 
  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 
    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.
 
  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,
  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
 !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 { 
     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" \
     }
 <<
        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 { 
     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::/ ) {
     { if ( $$0 ~ /^BEGIN \{ @AnyDBM_File::/ ) {
-          sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" ); 
+         sub( /ISA = qw\(.*\)/, "ISA = qw(SDBM_File)" ); 
       }
       if ( $$0 !~ /^#!@perlbin@/ )
       }
       if ( $$0 !~ /^#!@perlbin@/ )
-          print $$0;
+         print $$0;
     }
 <<
     }
 <<
-       del .a .y
-
+       del .y
+       del .a