]> granicus.if.org Git - apache/blobdiff - Makefile.win
Backout r410758 because DavLockDB needs to point to an httpd-writable
[apache] / Makefile.win
index b98dc8f2589483e1aa09b1f73e8e73857c24dd25..4e71b3f787deb3bb2c749481e844108cf2481530 100644 (file)
 #   Option      Default
 #   INSTDIR     \Apache2
 #   PORT        80
+#   SSLPORT     443
 #   SERVERNAME  localhost
 #
 # For example;
 #
-#   nmake /f Makefile.win PORT=80 INSTDIR="d:\Program Files\Apache" installr
+#   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),
 
 default: _apacher
 
-!IF ("$(CTARGET)" == "") && EXIST("Apache.sln")
+!IF ("$(CTARGET)" == "") && !EXIST("httpd.mak") && EXIST("Apache.sln")
 CTARGET=/build
 !ENDIF
 
-!IF !EXIST("srclib\apr") || !EXIST("srclib\apr-util") 
-## || !EXIST("srclib\apr-iconv")
+!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 dir.
+!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 and 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
@@ -53,10 +53,10 @@ SSLBIN=out32dll
 _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
@@ -75,7 +75,7 @@ _tryssl:
        @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.6c.
+       @echo recent version confirmed to build with mod_ssl and ab is 0.9.6h.
        @echo Available from http://www.openssl.org/
 !ENDIF
 
@@ -84,7 +84,7 @@ _tryssl:
 _tryzlib:
 !IF EXIST("modules\filters\mod_deflate.mak")
        cd modules\filters
-       $(MAKE) $(MAKEOPT) -f mod_deflate.mak CFG="mod_deflate - Win32 $(LONG)" RECURSE=0 .\$(LONG)\mod_deflate.so
+       $(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
@@ -99,8 +99,8 @@ _tryzlib:
 _tryzlib:
        @echo -----
        @echo mod_deflate will not build unless zlib is installed in srclib\zlib.  
-       @echo zlib does not need to be built, we compile the sources directly.
-       @echo Available from http://www.gzip.org/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
 
@@ -113,25 +113,31 @@ SERVERNAME=localhost
 !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 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
@@ -161,7 +167,7 @@ clean:      _cleanr _cleand
 y
 <<
 
-!IF EXIST("Apache.mak")
+!IF EXIST("httpd.mak")
 
 _cleanr:
        $(MAKE) $(MAKEOPT) -f Makefile.win SHORT=R LONG=Release CTARGET=CLEAN _build
@@ -175,9 +181,22 @@ _build:
         $(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-util\uri
-        $(MAKE) $(MAKEOPT) -f gen_uri_delims.mak  CFG="gen_uri_delims - 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\xml\expat\lib
         $(MAKE) $(MAKEOPT) -f xml.mak             CFG="xml - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..\..\..
@@ -187,25 +206,42 @@ _build:
        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)
        cd ..\..
        cd server
         $(MAKE) $(MAKEOPT) -f gen_test_char.mak   CFG="gen_test_char - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        cd ..
         $(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 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_access.mak      CFG="mod_access - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(MAKE) $(MAKEOPT) -f mod_auth.mak        CFG="mod_auth - Win32 $(LONG)" RECURSE=0 $(CTARGET)
-        $(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_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)
@@ -213,16 +249,18 @@ _build:
        cd modules\dav\fs
         $(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
-        $(MAKE) $(MAKEOPT) -f mod_cache.mak       CFG="mod_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)
-        $(MAKE) $(MAKEOPT) -f mod_ext_filter.mak  CFG="mod_ext_filter - Win32 $(LONG)" RECURSE=0 $(CTARGET)
        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
@@ -237,12 +275,14 @@ _build:
        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_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_imap.mak        CFG="mod_imap - 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)
@@ -254,20 +294,24 @@ _build:
         $(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 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) .\$(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 $(CTARGET)
@@ -275,6 +319,7 @@ _build:
 !ENDIF
        cd support
         $(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)
@@ -317,6 +362,12 @@ _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)" \
@@ -329,13 +380,115 @@ _build:
 
 !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"
@@ -345,117 +498,18 @@ _install:
        -mkdir "$(INSTDIR)\logs"
        -mkdir "$(INSTDIR)\modules"
        -mkdir "$(INSTDIR)\proxy"
+       -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 README "$(INSTDIR)\README.txt" <.y
-       copy $(LONG)\Apache.exe "$(INSTDIR)\bin" <.y
-       copy $(LONG)\libhttpd.dll "$(INSTDIR)\bin" <.y
-       copy srclib\apr\$(LONG)\libapr.dll "$(INSTDIR)\bin" <.y
-       copy srclib\apr-util\$(LONG)\libaprutil.dll "$(INSTDIR)\bin" <.y
-       copy modules\aaa\$(LONG)\mod_access.so "$(INSTDIR)\modules" <.y
-       copy modules\aaa\$(LONG)\mod_auth.so "$(INSTDIR)\modules" <.y
-       copy modules\aaa\$(LONG)\mod_auth_anon.so "$(INSTDIR)\modules" <.y
-       copy modules\aaa\$(LONG)\mod_auth_dbm.so "$(INSTDIR)\modules" <.y
-       copy modules\aaa\$(LONG)\mod_auth_digest.so "$(INSTDIR)\modules" <.y
-       copy modules\arch\win32\$(LONG)\mod_isapi.so "$(INSTDIR)\modules" <.y
-       copy modules\cache\$(LONG)\mod_file_cache.so "$(INSTDIR)\modules" <.y
-       copy modules\dav\fs\$(LONG)\mod_dav_fs.so "$(INSTDIR)\modules" <.y
-       copy modules\dav\main\$(LONG)\mod_dav.so "$(INSTDIR)\modules" <.y
-       copy modules\experimental\$(LONG)\mod_cache.so "$(INSTDIR)\modules" <.y
-       copy modules\experimental\$(LONG)\mod_mem_cache.so "$(INSTDIR)\modules" <.y
-       copy modules\experimental\$(LONG)\mod_disk_cache.so "$(INSTDIR)\modules" <.y
-       copy modules\experimental\$(LONG)\mod_ext_filter.so "$(INSTDIR)\modules" <.y
-       copy modules\filters\$(LONG)\mod_include.so "$(INSTDIR)\modules" <.y
-       copy modules\generators\$(LONG)\mod_asis.so "$(INSTDIR)\modules" <.y
-       copy modules\generators\$(LONG)\mod_autoindex.so "$(INSTDIR)\modules" <.y
-       copy modules\generators\$(LONG)\mod_cgi.so "$(INSTDIR)\modules" <.y
-       copy modules\generators\$(LONG)\mod_info.so "$(INSTDIR)\modules" <.y
-       copy modules\generators\$(LONG)\mod_status.so "$(INSTDIR)\modules" <.y
-       copy modules\http\$(LONG)\mod_mime.so "$(INSTDIR)\modules" <.y
-       copy modules\loggers\$(LONG)\mod_log_config.so "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_actions.so "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_alias.so "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_dir.so "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_imap.so "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_negotiation.so "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_rewrite.so "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_speling.so "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_userdir.so "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_vhost_alias.so "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_cern_meta.so "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_env.so "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_expires.so "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_headers.so "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_mime_magic.so "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_setenvif.so "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_unique_id.so "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_usertrack.so "$(INSTDIR)\modules" <.y
-       copy modules\proxy\$(LONG)\mod_proxy.so "$(INSTDIR)\modules" <.y
-       copy modules\proxy\$(LONG)\mod_proxy_connect.so "$(INSTDIR)\modules" <.y
-       copy modules\proxy\$(LONG)\mod_proxy_ftp.so "$(INSTDIR)\modules" <.y
-       copy modules\proxy\$(LONG)\mod_proxy_http.so "$(INSTDIR)\modules" <.y
-!IF "$(SHORT)" == "D"
-       copy $(LONG)\Apache.pdb "$(INSTDIR)\bin" <.y
-       copy $(LONG)\libhttpd.pdb "$(INSTDIR)\bin" <.y
-       copy srclib\apr\$(LONG)\libapr.pdb "$(INSTDIR)\bin" <.y
-       copy srclib\apr-util\$(LONG)\libaprutil.pdb "$(INSTDIR)\bin" <.y
-       copy modules\aaa\$(LONG)\mod_access.pdb "$(INSTDIR)\modules" <.y
-       copy modules\aaa\$(LONG)\mod_auth.pdb "$(INSTDIR)\modules" <.y
-       copy modules\aaa\$(LONG)\mod_auth_anon.pdb "$(INSTDIR)\modules" <.y
-       copy modules\aaa\$(LONG)\mod_auth_dbm.pdb "$(INSTDIR)\modules" <.y
-       copy modules\aaa\$(LONG)\mod_auth_digest.pdb "$(INSTDIR)\modules" <.y
-       copy modules\arch\win32\$(LONG)\mod_isapi.pdb "$(INSTDIR)\modules" <.y
-       copy modules\cache\$(LONG)\mod_file_cache.pdb "$(INSTDIR)\modules" <.y
-       copy modules\dav\fs\$(LONG)\mod_dav_fs.pdb "$(INSTDIR)\modules" <.y
-       copy modules\dav\main\$(LONG)\mod_dav.pdb "$(INSTDIR)\modules" <.y
-       copy modules\experimental\$(LONG)\mod_cache.pdb "$(INSTDIR)\modules" <.y
-       copy modules\experimental\$(LONG)\mod_mem_cache.pdb "$(INSTDIR)\modules" <.y
-       copy modules\experimental\$(LONG)\mod_disk_cache.pdb "$(INSTDIR)\modules" <.y
-       copy modules\experimental\$(LONG)\mod_ext_filter.pdb "$(INSTDIR)\modules" <.y
-       copy modules\filters\$(LONG)\mod_include.pdb "$(INSTDIR)\modules" <.y
-       copy modules\generators\$(LONG)\mod_asis.pdb "$(INSTDIR)\modules" <.y
-       copy modules\generators\$(LONG)\mod_autoindex.pdb "$(INSTDIR)\modules" <.y
-       copy modules\generators\$(LONG)\mod_cgi.pdb "$(INSTDIR)\modules" <.y
-       copy modules\generators\$(LONG)\mod_info.pdb "$(INSTDIR)\modules" <.y
-       copy modules\generators\$(LONG)\mod_status.pdb "$(INSTDIR)\modules" <.y
-       copy modules\http\$(LONG)\mod_mime.pdb "$(INSTDIR)\modules" <.y
-       copy modules\loggers\$(LONG)\mod_log_config.pdb "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_actions.pdb "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_alias.pdb "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_dir.pdb "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_imap.pdb "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_negotiation.pdb "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_rewrite.pdb "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_speling.pdb "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_userdir.pdb "$(INSTDIR)\modules" <.y
-       copy modules\mappers\$(LONG)\mod_vhost_alias.pdb "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_cern_meta.pdb "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_env.pdb "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_expires.pdb "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_headers.pdb "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_mime_magic.pdb "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_setenvif.pdb "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_unique_id.pdb "$(INSTDIR)\modules" <.y
-       copy modules\metadata\$(LONG)\mod_usertrack.pdb "$(INSTDIR)\modules" <.y
-       copy modules\proxy\$(LONG)\mod_proxy.pdb "$(INSTDIR)\modules" <.y
-       copy modules\proxy\$(LONG)\mod_proxy_connect.pdb "$(INSTDIR)\modules" <.y
-       copy modules\proxy\$(LONG)\mod_proxy_ftp.pdb "$(INSTDIR)\modules" <.y
-       copy modules\proxy\$(LONG)\mod_proxy_http.pdb "$(INSTDIR)\modules" <.y
-!ENDIF
+       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 modules\ssl\$(LONG)\mod_ssl.so "$(INSTDIR)\modules" <.y
-       copy srclib\openssl\$(SSLBIN)\openssl.exe "$(INSTDIR)\bin" <.y
-       copy srclib\openssl\$(SSLBIN)\libeay32.dll "$(INSTDIR)\bin" <.y
-       copy srclib\openssl\$(SSLBIN)\ssleay32.dll "$(INSTDIR)\bin" <.y
-!IF "$(SHORT)" == "D"
-       copy modules\ssl\$(LONG)\mod_ssl.pdb "$(INSTDIR)\modules" <.y
-       copy srclib\openssl\$(SSLBIN)\openssl.pdb "$(INSTDIR)\bin" <.y
-       copy srclib\openssl\$(SSLBIN)\libeay32.pdb "$(INSTDIR)\bin" <.y
-       copy srclib\openssl\$(SSLBIN)\ssleay32.pdb "$(INSTDIR)\bin" <.y
-!ENDIF
-       type << >> "$(INSTDIR)\README.txt"
+       type << >> "$(INSTDIR)\NOTICE.txt"
 
   This binary distribution includes cryptographic software written by
   Eric Young (eay@cryptsoft.com), software written by Tim Hudson 
@@ -518,18 +572,9 @@ BEGIN {
 
 --------------------------------------------------------------------------------
 <<
-       copy support\$(LONG)\abs.exe "$(INSTDIR)\bin\ab.exe" <.y
-!IF "$(SHORT)" == "D"
-       copy support\$(LONG)\abs.pdb "$(INSTDIR)\bin\ab.pdb" <.y
-!ENDIF
-!ELSE
-       copy support\$(LONG)\ab.exe "$(INSTDIR)\bin" <.y
-!IF "$(SHORT)" == "D"
-       copy support\$(LONG)\ab.pdb "$(INSTDIR)\bin" <.y
-!ENDIF
 !ENDIF
 !IF EXIST("srclib\zlib")
-       type << >> "$(INSTDIR)\README.txt"
+       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)
@@ -550,27 +595,22 @@ BEGIN {
     exit 1;
 }
 <<
-       copy modules\filters\$(LONG)\mod_deflate.so "$(INSTDIR)\modules" <.y
-!IF "$(SHORT)" == "D"
-       copy modules\filters\$(LONG)\mod_deflate.pdb "$(INSTDIR)\modules" <.y
-!ENDIF
-!ENDIF
-       copy support\$(LONG)\htdbm.exe "$(INSTDIR)\bin" <.y
-       copy support\$(LONG)\htdigest.exe "$(INSTDIR)\bin" <.y
-       copy support\$(LONG)\htpasswd.exe "$(INSTDIR)\bin" <.y
-       copy support\$(LONG)\logresolve.exe "$(INSTDIR)\bin" <.y
-       copy support\$(LONG)\rotatelogs.exe "$(INSTDIR)\bin" <.y
-       copy support\win32\$(LONG)\ApacheMonitor.exe "$(INSTDIR)\bin" <.y
-       copy support\win32\$(LONG)\wintty.exe "$(INSTDIR)\bin" <.y
-!IF "$(SHORT)" == "D"
-       copy support\$(LONG)\htdbm.pdb "$(INSTDIR)\bin" <.y
-       copy support\$(LONG)\htdigest.pdb "$(INSTDIR)\bin" <.y
-       copy support\$(LONG)\htpasswd.pdb "$(INSTDIR)\bin" <.y
-       copy support\$(LONG)\logresolve.pdb "$(INSTDIR)\bin" <.y
-       copy support\$(LONG)\rotatelogs.pdb "$(INSTDIR)\bin" <.y
-       copy support\win32\$(LONG)\ApacheMonitor.pdb "$(INSTDIR)\bin" <.y
-       copy support\win32\$(LONG)\wintty.pdb "$(INSTDIR)\bin" <.y
 !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 { 
@@ -585,38 +625,38 @@ BEGIN {
        }
     }
 <<
-       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 < .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
-       xcopy docs\icons "$(INSTDIR)\icons" /s /d < .a
-       copy srclib\apr\Lib$(SHORT)\apr.lib "$(INSTDIR)\lib" <.y
-       copy srclib\apr-util\Lib$(SHORT)\aprutil.lib "$(INSTDIR)\lib" <.y
-       copy srclib\pcre\Lib$(SHORT)\pcre.lib "$(INSTDIR)\lib" <.y
-       copy srclib\pcre\Lib$(SHORT)\pcreposix.lib "$(INSTDIR)\lib" <.y
-#       ### 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" <.y
-       copy srclib\apr\$(LONG)\libapr.lib "$(INSTDIR)\lib" <.y
-       copy srclib\apr\$(LONG)\libapr.exp "$(INSTDIR)\lib" <.y
-       copy srclib\apr-util\$(LONG)\libaprutil.lib "$(INSTDIR)\lib" <.y
-       copy srclib\apr-util\$(LONG)\libaprutil.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
-       copy docs\conf\magic "$(INSTDIR)\conf\magic.default" <.y
-       if not exist "$(INSTDIR)\conf\magic" \
-           copy "$(INSTDIR)\conf\magic.default" "$(INSTDIR)\conf\magic"
-       copy docs\conf\mime.types "$(INSTDIR)\conf\mime.types.default" <.y
-       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" <.y
-       -awk -f <<script.awk "docs/conf/httpd-win.conf" "$(INSTDIR)" > "$(INSTDIR)\conf\httpd.default.conf"
+       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 { 
        serverroot = ARGV[2];
        delete ARGV[2];
@@ -632,9 +672,10 @@ BEGIN {
     }
 <<
        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" <.y
-       -awk -f <<script.awk "docs/conf/ssl-std.conf" "$(INSTDIR)" > "$(INSTDIR)\conf\ssl.default.conf"
+           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 { 
        serverroot = ARGV[2];
        delete ARGV[2];
@@ -643,12 +684,31 @@ BEGIN {
        gsub( /^\//, substr( root, 1, 2 ) "/", serverroot );
     }
     {
-       gsub( /@@ServerRoot@@/, 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"
+       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)" );