This commit was manufactured by cvs2svn to create tag
[krb5.git] / src / Makefile.in
index 21ba0bae30764e8d07ec7c44c16ca9136c634094..771be6af003db3837b36fcfeca4f7d53ddeeefc6 100644 (file)
@@ -1,6 +1,10 @@
-CFLAGS = $(CCOPTS) $(DEFS)
-
-##DOS##BUILDTOP = .
+thisconfigdir=.
+myfulldir=.
+mydir=.
+MY_SUBDIRS=util include lib @krb524@ kdc kadmin slave clients appl tests \
+       config-files gen-manpages
+BUILDTOP=$(REL)$(C)
+LOCALINCLUDES = -I$(srcdir) 
 
 SRCS =  
 HDRS = 
@@ -11,26 +15,26 @@ all-unix::
 
 all-mac::
 
-all-windows:: makefile-windows
-       @echo Making in util\windows
-       cd util\windows
-       -$(MAKE) -$(MAKEFLAGS)
+all-windows:: maybe-awk Makefile-windows
+       @echo Making in util
+       cd util
+       $(MAKE) -$(MFLAGS)
        @echo Making in include
-       cd ..\..\include
-       -$(MAKE) -$(MAKEFLAGS) 
-       @echo Making in util\et
-       cd ..\util\et
-       -$(MAKE) -$(MAKEFLAGS) 
-       @echo Making in util\profile
-       cd ..\profile
-       -$(MAKE) -$(MAKEFLAGS) 
+       cd ..\include
+       $(MAKE) -$(MFLAGS) 
        @echo Making in lib
-       cd ..\..\lib
-       -$(MAKE) -$(MAKEFLAGS) 
+       cd ..\lib
+       $(MAKE) -$(MFLAGS) 
        @echo Making in windows
        cd ..\windows
-       -$(MAKE) -$(MAKEFLAGS) 
-       cd ..
+       $(MAKE) -$(MFLAGS) 
+       @echo Making in clients
+       cd ..\clients
+       $(MAKE) -$(MFLAGS)
+       @echo Making in appl\gss-sample
+       cd ..\appl\gss-sample
+       $(MAKE) -$(MFLAGS)
+       cd ..\..
 
 world::
        date
@@ -47,15 +51,12 @@ install-recurse: install-mkdirs
 
 install-mkdirs:
        @for i in $(INSTALLMKDIRS); do \
-               if test -d $(DESTDIR)$$i; then :; else (set -x; mkdir -p $(DESTDIR)$$i); fi ; \
+               $(srcdir)/config/mkinstalldirs $(DESTDIR)$$i; \
        done
 
 # install::
 #      $(MAKE) $(MFLAGS) install.man
 
-.c.o:
-       $(CC) -c $(CPPFLAGS) $(DEFS) -I$(srcdir) $(CFLAGS) $<
-
 TAGS: $(SRCS)
        etags $(SRCS)
 
@@ -110,142 +111,190 @@ unixmac:
 # Microsoft Windows build process...
 #
 
-config-windows:: makefile-windows
-       @echo Making in include
-       cd include
-       -$(MAKE) -$(MAKEFLAGS)
-       cd ..
-
-##DOS##MKFDEP= wconfig.exe config\pre.in config\post.in \
-##DOS##        config\windows.in config\win-post.in
-
-##DOS##makefile-windows:: $(MKFDEP) makefile \
-##DOS##                include\makefile include\krb5\makefile \
-##DOS##                lib\makefile lib\crypto\makefile \
-##DOS##                lib\crypto\crc32\makefile lib\crypto\des\makefile \
-##DOS##                lib\crypto\sha\makefile \
-##DOS##                lib\crypto\md4\makefile lib\crypto\md5\makefile \
-##DOS##                lib\crypto\os\makefile lib\des425\makefile \
-##DOS##                lib\gssapi\makefile lib\gssapi\generic\makefile \
-##DOS##                lib\gssapi\krb5\makefile lib\gssapi\mechglue\makefile \
-##DOS##                lib\kadm\makefile lib\krb5\makefile \
-##DOS##                lib\krb5\asn.1\makefile lib\krb5\ccache\makefile \
-##DOS##                lib\krb5\ccache\file\makefile \
-##DOS##                lib\krb5\ccache\stdio\makefile \
-##DOS##                lib\krb5\error_tables\makefile \
-##DOS##                lib\krb5\free\makefile lib\krb5\keytab\makefile \
-##DOS##                lib\krb5\keytab\file\makefile lib\krb5\krb\makefile \
-##DOS##                lib\krb5\os\makefile lib\krb5\posix\makefile \
-##DOS##                lib\krb5\rcache\makefile \
-##DOS##                util\et\makefile util\profile\makefile \
-##DOS##                util\windows\makefile \
-##DOS##                windows\Makefile \
-##DOS##                windows\cns\Makefile windows\gina\Makefile \
-##DOS##                windows\gss\Makefile windows\wintel\Makefile
-##DOS##        config\rm.bat wconfig.obj msvc.pdb
-
-##DOS##makefile: makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <makefile.in >makefile
-##DOS##include\makefile: include\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <include\makefile.in >include\makefile
-##DOS##include\krb5\makefile: include\krb5\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <include\krb5\makefile.in >include\krb5\makefile
-##DOS##lib\makefile: lib\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\makefile.in >lib\makefile
-##DOS##lib\crypto\makefile: lib\crypto\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\crypto\makefile.in >lib\crypto\makefile
-##DOS##lib\crypto\crc32\makefile: lib\crypto\crc32\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\crypto\crc32\makefile.in >lib\crypto\crc32\makefile
-##DOS##lib\crypto\des\makefile: lib\crypto\des\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\crypto\des\makefile.in >lib\crypto\des\makefile
-##DOS##lib\crypto\sha\makefile: lib\crypto\sha\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\crypto\sha\makefile.in >lib\crypto\sha\makefile
-##DOS##lib\crypto\md4\makefile: lib\crypto\md4\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\crypto\md4\makefile.in >lib\crypto\md4\makefile
-##DOS##lib\crypto\md5\makefile: lib\crypto\md5\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\crypto\md5\makefile.in >lib\crypto\md5\makefile
-##DOS##lib\crypto\os\makefile: lib\crypto\os\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\crypto\os\makefile.in >lib\crypto\os\makefile
-##DOS##lib\des425\makefile: lib\des425\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\des425\makefile.in >lib\des425\makefile
-##DOS##lib\gssapi\makefile: lib\gssapi\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\gssapi\makefile.in >lib\gssapi\makefile
-##DOS##lib\gssapi\generic\makefile: lib\gssapi\generic\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\gssapi\generic\makefile.in >lib\gssapi\generic\makefile
-##DOS##lib\gssapi\mechglue\makefile: lib\gssapi\mechglue\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\gssapi\mechglue\makefile.in >lib\gssapi\mechglue\makefile
-##DOS##lib\gssapi\krb5\makefile: lib\gssapi\krb5\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\gssapi\krb5\makefile.in >lib\gssapi\krb5\makefile
-##DOS##lib\kadm\makefile: lib\kadm\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\kadm\makefile.in >lib\kadm\makefile
-##DOS##lib\krb4\makefile: lib\krb4\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb4\makefile.in >lib\krb4\makefile
-##DOS##lib\krb5\makefile: lib\krb5\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb5\makefile.in >lib\krb5\makefile
-##DOS##lib\krb5\asn.1\makefile: lib\krb5\asn.1\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb5\asn.1\makefile.in >lib\krb5\asn.1\makefile
-##DOS##lib\krb5\ccache\makefile: lib\krb5\ccache\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb5\ccache\makefile.in >lib\krb5\ccache\makefile
-##DOS##lib\krb5\ccache\file\makefile: lib\krb5\ccache\file\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb5\ccache\file\makefile.in >lib\krb5\ccache\file\makefile
-##DOS##lib\krb5\ccache\stdio\makefile: lib\krb5\ccache\stdio\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb5\ccache\stdio\makefile.in >lib\krb5\ccache\stdio\makefile
-##DOS##lib\krb5\error_tables\makefile: lib\krb5\error_tables\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb5\error_tables\makefile.in >lib\krb5\error_tables\makefile
-##DOS##lib\krb5\free\makefile: lib\krb5\free\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb5\free\makefile.in >lib\krb5\free\makefile
-##DOS##lib\krb5\keytab\makefile: lib\krb5\keytab\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb5\keytab\makefile.in >lib\krb5\keytab\makefile
-##DOS##lib\krb5\keytab\file\makefile: lib\krb5\keytab\file\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb5\keytab\file\makefile.in >lib\krb5\keytab\file\makefile
-##DOS##lib\krb5\krb\makefile: lib\krb5\krb\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb5\krb\makefile.in >lib\krb5\krb\makefile
-##DOS##lib\krb5\os\makefile: lib\krb5\os\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb5\os\makefile.in >lib\krb5\os\makefile
-##DOS##lib\krb5\posix\makefile: lib\krb5\posix\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb5\posix\makefile.in >lib\krb5\posix\makefile
-##DOS##lib\krb5\rcache\makefile: lib\krb5\rcache\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <lib\krb5\rcache\makefile.in >lib\krb5\rcache\makefile
-##DOS##util\et\makefile: util\et\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <util\et\makefile.in >util\et\makefile
-##DOS##util\profile\makefile: util\profile\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <util\profile\makefile.in >util\profile\makefile
-##DOS##util\windows\makefile: util\windows\makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <util\windows\makefile.in >util\windows\makefile
-##DOS##windows\Makefile:  windows\Makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <windows\Makefile.in >windows\Makefile
-##DOS##windows\cns\Makefile:  windows\cns\Makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <windows\cns\Makefile.in >windows\cns\Makefile
-##DOS##windows\gina\Makefile:  windows\gina\Makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <windows\gina\Makefile.in >windows\gina\Makefile
-##DOS##windows\gss\Makefile:  windows\gss\Makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <windows\gss\Makefile.in >windows\gss\Makefile
-##DOS##windows\wintel\Makefile:  windows\wintel\Makefile.in $(MKFDEP)
-##DOS##        .\wconfig config <windows\wintel\Makefile.in >windows\wintel\Makefile
-
-##DOS##wconfig.exe: wconfig.c
-##DOS##        SET CL=/nologo
-##DOS##        $(CC) /AL wconfig.c
-
-clean-windows::
+config-windows:: Makefile-windows
+#      @echo Making in include
+#      cd include
+#      $(MAKE) -$(MFLAGS)
+#      cd ..
+
+#
+# We need outpre-dir explicitly in here because we may
+# try to build wconfig on a config-windows.
+#
+##DOS##$(WCONFIG_EXE): outpre-dir wconfig.c
+##DOS##        $(CC) -Fe$@ -Fo$*.obj wconfig.c
+
+##DOS##MKFDEP=$(WCONFIG_EXE) config\win-pre.in config\win-post.in
+
+WINMAKEFILES=Makefile \
+       appl\gss-sample\Makefile \
+       clients\Makefile clients\kdestroy\Makefile \
+       clients\kinit\Makefile clients\klist\Makefile \
+       clients\kpasswd\Makefile clients\kvno\Makefile \
+       include\Makefile include\krb5\Makefile \
+       lib\Makefile lib\crypto\Makefile \
+       lib\crypto\crc32\Makefile lib\crypto\des\Makefile \
+       lib\crypto\dk\Makefile lib\crypto\enc_provider\Makefile \
+       lib\crypto\hash_provider\Makefile \
+       lib\crypto\keyhash_provider\Makefile \
+       lib\crypto\raw\Makefile lib\crypto\old\Makefile \
+       lib\crypto\sha1\Makefile \
+       lib\crypto\md4\Makefile lib\crypto\md5\Makefile \
+       lib\des425\Makefile \
+       lib\gssapi\Makefile lib\gssapi\generic\Makefile \
+       lib\gssapi\krb5\Makefile lib\gssapi\mechglue\Makefile \
+       lib\krb4\Makefile lib\krb5\Makefile \
+       lib\krb5\asn.1\Makefile lib\krb5\ccache\Makefile \
+       lib\krb5\ccache\file\Makefile \
+       lib\krb5\ccache\stdio\Makefile \
+       lib\krb5\ccache\memory\Makefile \
+       lib\krb5\ccache\ccapi\Makefile \
+       lib\krb5\error_tables\Makefile \
+       lib\krb5\keytab\Makefile \
+       lib\krb5\keytab\file\Makefile \
+       lib\krb5\keytab\srvtab\Makefile \
+       lib\krb5\krb\Makefile \
+       lib\krb5\os\Makefile lib\krb5\posix\Makefile \
+       lib\krb5\rcache\Makefile \
+       util\Makefile \
+       util\et\Makefile util\profile\Makefile \
+       util\windows\Makefile \
+       windows\Makefile windows\lib\Makefile \
+       windows\cns\Makefile windows\gina\Makefile \
+       windows\gss\Makefile windows\wintel\Makefile
+
+##DOS##Makefile-windows:: $(MKFDEP) $(WINMAKEFILES)
+
+##DOS##Makefile: Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##appl\gss-sample\Makefile: appl\gss-sample\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##clients\Makefile: clients\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##clients\kdestroy\Makefile: clients\kdestroy\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##clients\kinit\Makefile: clients\kinit\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##clients\klist\Makefile: clients\klist\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##clients\kpasswd\Makefile: clients\kpasswd\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##clients\kvno\Makefile: clients\kvno\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##include\Makefile: include\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##include\krb5\Makefile: include\krb5\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\Makefile: lib\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\crypto\Makefile: lib\crypto\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\crypto\crc32\Makefile: lib\crypto\crc32\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\crypto\des\Makefile: lib\crypto\des\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\crypto\dk\Makefile: lib\crypto\dk\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\crypto\enc_provider\Makefile: lib\crypto\enc_provider\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\crypto\hash_provider\Makefile: lib\crypto\hash_provider\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\crypto\keyhash_provider\Makefile: lib\crypto\keyhash_provider\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\crypto\sha1\Makefile: lib\crypto\sha1\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\crypto\md4\Makefile: lib\crypto\md4\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\crypto\md5\Makefile: lib\crypto\md5\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\crypto\old\Makefile: lib\crypto\old\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\crypto\raw\Makefile: lib\crypto\raw\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\des425\Makefile: lib\des425\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\gssapi\Makefile: lib\gssapi\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\gssapi\generic\Makefile: lib\gssapi\generic\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\gssapi\mechglue\Makefile: lib\gssapi\mechglue\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\gssapi\krb5\Makefile: lib\gssapi\krb5\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb4\Makefile: lib\krb4\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\Makefile: lib\krb5\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\asn.1\Makefile: lib\krb5\asn.1\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\ccache\Makefile: lib\krb5\ccache\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\ccache\file\Makefile: lib\krb5\ccache\file\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\ccache\stdio\Makefile: lib\krb5\ccache\stdio\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\ccache\memory\Makefile: lib\krb5\ccache\memory\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\ccache\ccapi\Makefile: lib\krb5\ccache\ccapi\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\error_tables\Makefile: lib\krb5\error_tables\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\keytab\Makefile: $$@.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\keytab\file\Makefile: $$@.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\keytab\srvtab\Makefile: $$@.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\krb\Makefile: lib\krb5\krb\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\os\Makefile: lib\krb5\os\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\posix\Makefile: lib\krb5\posix\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##lib\krb5\rcache\Makefile: lib\krb5\rcache\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##util\Makefile: util\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##util\et\Makefile: util\et\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##util\profile\Makefile: util\profile\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##util\windows\Makefile: util\windows\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##windows\Makefile: windows\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##windows\lib\Makefile: windows\lib\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##windows\cns\Makefile: windows\cns\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##windows\gina\Makefile: windows\gina\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##windows\gss\Makefile: windows\gss\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##windows\wintel\Makefile: windows\wintel\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
+
+clean-windows:: Makefile-windows
+       @echo Making clean in util
+       cd util
+       $(MAKE) -$(MFLAGS) clean
        @echo Making clean in include
-       cd include
-       -$(MAKE) -$(MAKEFLAGS) clean
-       @echo Making clean in util\et
-       cd ..\util\et
-       -$(MAKE) -$(MAKEFLAGS) clean
-       @echo Making clean in util\profile
-       cd ..\profile
-       -$(MAKE) -$(MAKEFLAGS) clean
+       cd ..\include
+       $(MAKE) -$(MFLAGS) clean
        @echo Making clean in lib
-       cd ..\..\lib
-       -$(MAKE) -$(MAKEFLAGS) clean
+       cd ..\lib
+       $(MAKE) -$(MFLAGS) clean
        @echo Making clean in windows
        cd ..\windows
-       -$(MAKE) -$(MAKEFLAGS) clean
-       cd ..
+       $(MAKE) -$(MFLAGS) clean
+       @echo Making clean in clients
+       cd ..\clients
+       $(MAKE) -$(MFLAGS) clean
+       @echo Making in appl\gss-sample
+       cd ..\appl\gss-sample
+       $(MAKE) -$(MFLAGS) clean
+       cd ..\..
        @echo Making clean in root
-       config\rm.bat *.obj msvc.pdb *.err wconfig.obj wconfig.exe
 
 #
 # Renames DOS 8.3 filenames back to their proper, longer names.
@@ -259,32 +308,39 @@ ren2long:
 #
 ZIP=zip
 FILES= ./* \
-       config/* include/* include/krb5/* include/krb5/asn.1/* \
-       include/krb5/stock/* include/sys/* lib/* lib/crypto/* \
-       lib/crypto/crc32/* lib/crypto/des/* lib/crypto/sha/* lib/crypto/md4/* \
-       lib/crypto/md5/* lib/crypto/os/* lib/des425/* lib/gssapi/* \
-       lib/gssapi/generic/* lib/gssapi/krb5/* lib/gssapi/mechglue/* \
-       lib/kadm/* lib/krb4/* lib/krb425/* \
+       clients/* clients/kdestroy/* clients/kinit/* clients/klist/* \
+       clients/kpasswd/* \
+       config/* include/* include/kerberosIV/* \
+       include/krb5/* include/krb5/stock/* include/sys/* lib/* \
+       lib/crypto/* lib/crypto/crc32/* lib/crypto/des/* lib/crypto/dk/* \
+       lib/crypto/enc_provider/* lib/crypto/hash_provider/* \
+       lib/crypto/keyhash_provider/* lib/crypto/old/* lib/crypto/raw/* \
+       lib/crypto/sha1/* lib/crypto/md4/* lib/crypto/md5/* \
+       lib/des425/* lib/gssapi/* lib/gssapi/generic/* lib/gssapi/krb5/* \
+       lib/gssapi/mechglue/* lib/krb4/* \
        lib/krb5/* lib/krb5/asn.1/* lib/krb5/krb/* \
-       lib/krb5/ccache/* lib/krb5/ccache/file/* \
-       lib/krb5/ccache/stdio/* lib/krb5/error_tables/* \
-       lib/krb5/free/* lib/krb5/keytab/* lib/krb5/keytab/file/* \
-       lib/krb5/os/* lib/krb5/posix/* lib/krb5/rcache/* util/et/* \
-       util/profile/* util/windows/*
-
-WINFILES= windows/* windows/cns/* windows/wintel/* windows/gss/* windows/gina/*
-
-MACFILES= mac/* mac/kconfig/* mac/libraries/* mac/telnet-k5-auth/* \
-       mac/gss-sample/* mac/SAP/* config/* include/* include/krb5/* \
-       include/krb5/asn.1/* include/krb5/stock/* include/sys/* \
+       lib/krb5/ccache/* lib/krb5/ccache/file/* lib/krb5/ccache/memory/* \
+       lib/krb5/ccache/stdio/* lib/krb5/ccache/ccapi/* \
+       lib/krb5/error_tables/* \
+       lib/krb5/keytab/* lib/krb5/keytab/file/* lib/krb5/keytab/srvtab/* \
+       lib/krb5/os/* lib/krb5/posix/* lib/krb5/rcache/* \
+       util/* util/et/* util/profile/*
+
+WINFILES= util/windows/* windows/* windows/lib/* windows/cns/* \
+       windows/wintel/* windows/gss/* windows/gina/*
+
+MACFILES= mac/* mac/libraries/* config/* include/* \
+       include/krb5/* include/krb5/stock/* include/sys/* \
        ./patchlevel.h
 
-WINBINARYFILES=windows/cns/*.ico windows/wintel/*.ico windows/gss/*.ico
+WINBINARYFILES=        windows/*/*.ico windows/*/*.doc windows/*/*.hlp \
+       windows/*/*.hpj windows/lib/*.lib
 
 #
 # Part of building the PC release has to be done on Unix. This includes
 # anything the requires awk.
 #
+AWK = gawk
 AH  = util/et/et_h.awk
 AC  = util/et/et_c.awk
 INC = include/
@@ -298,15 +354,16 @@ ETOUT =   $(INC)asn1_err.h $(ET)asn1_err.c \
        $(INC)krb5_err.h $(ET)krb5_err.c \
        $(INC)kv5m_err.h $(ET)kv5m_err.c \
        $(INC)adm_err.h $(ET)adm_err.c \
+       $(INC)/kerberosIV/krb_err.h lib/krb4/krb_err.c \
        $(PR)prof_err.h $(PR)prof_err.c \
        $(GG)gssapi_err_generic.h $(GG)gssapi_err_generic.c \
        $(GK)gssapi_err_krb5.h $(GK)gssapi_err_krb5.c
 
 HOUT = $(INC)krb5.h $(GG)gssapi.h $(PR)profile.h
 
-CLEANUP= $(ETOUT) $(HOUT) \
+CLEANUP= Makefile $(ETOUT) $(HOUT) \
        include/profile.h include/krb5/osconf.h \
-       winfile.list macfile.list \
+       winfile.list macfile.list
 
 
 kerbsrc.win: kerbsrc.zip
@@ -321,57 +378,58 @@ macfile.list:
        find $(MACFILES) -prune -type f -print | \
                sed -f config/winexclude.sed >> macfile.list
 
-Makefile.sav:
-       rm -f Makefile.sav
-       mv Makefile Makefile.sav
-       cat config/windows.in Makefile.in config/win-post.in | \
-               sed -e 's/^##DOS##//' -e 's/^##DOS//' > Makefile
+dos-Makefile:
+       cat config/win-pre.in Makefile.in config/win-post.in | \
+               sed -e "s/^##DOS##//" -e "s/^##DOS//" > Makefile.tmp
+       mv Makefile.tmp Makefile
 
-kerbsrc.zip: Makefile.sav awk-windows-mac winfile.list
-       rm -f kerbsrc.zip
-       $(ZIP) -Dlk kerbsrc.zip `cat winfile.list`
-       $(ZIP) -Dk kerbsrc.zip $(WINBINARYFILES)
-       mv Makefile.sav Makefile
-       rm -f $(CLEANUP)
+prep-windows: dos-Makefile awk-windows-mac
 
-kerbsrc-nt.zip: Makefile.sav awk-windows-mac winfile.list
-       rm -f kerbsrc-nt.zip
-       $(ZIP) -Dl kerbsrc-nt.zip `cat winfile.list`
-       $(ZIP) -D kerbsrc-nt.zip $(WINBINARYFILES)
-       mv Makefile.sav Makefile
-       rm -f $(CLEANUP)
+krbsrc83.zip: krbsrc83-is-obsolete
 
-dos-zipfiles: Makefile.sav awk-windows-mac winfile.list
+krbsrc83-is-obsolete:
+       @echo "Win16 and krbsrc83.zip are no longer supported."
+       @echo "We don't support building under 8.3 restricted filesystems"
+       @echo "anymore.  You can still build for Win32 on filesystems"
+       @echo "without 8.3 restrictions using kerbsrc.zip"
+       @echo " "
+
+kerbsrc.zip: dos-Makefile awk-windows-mac winfile.list
        rm -f kerbsrc.zip
-       $(ZIP) -Dlk kerbsrc.zip `cat winfile.list`
-       $(ZIP) -Dk kerbsrc.zip $(WINBINARYFILES)
-       rm -f kerbsrc-nt.zip
-       $(ZIP) -Dl kerbsrc-nt.zip `cat winfile.list`
-       $(ZIP) -D kerbsrc-nt.zip $(WINBINARYFILES)
-       mv Makefile.sav Makefile
+       $(ZIP) -@Dl kerbsrc.zip < winfile.list
+       $(ZIP) -D kerbsrc.zip $(WINBINARYFILES)
        rm -f $(CLEANUP)
 
-Macfile: macfile.list Makefile.sav
+kerbsrc-nt.zip: kerbsrc-nt-is-obsolete
+
+kerbsrc-nt-is-obsolete:
+       @echo "kerbsrc-nt.zip is now obsolete.  Just use and build kerbsrc.zip"
+       @echo "We don't support building under 8.3 restricted filesystems"
+       @echo "anymore, so what was kerbsrc-nt.zip is now kerbsrc.zip."
+       @echo " "
+
+Macfile: macfile.list 
        rm -f Macfile
        sed -e 's|/|:|g' -e 's/^/:/' -e '/:.:/d' -e '/:mac:/d' macfile.list > macfile.maclist
        grep '\.c$$' macfile.maclist > macsrcsgss
        grep -v ':gssapi:' macsrcsgss > macsrcsk5
        echo SRCS = `cat macsrcsgss` >> Macfile
+       echo SRCDIRS = `sed -n -e 's/\(.*:\)[^:]*\.c$$/ \1/p' macfile.maclist | sort -u` >> Macfile
        echo GSSOBJS68K = `sed -e 's/$$/.68K.o/' -e 's/.*://' \
                -e 's/^/:bin:68K:/' macsrcsgss` >> Macfile
-       echo GSSOBJS68KCFM = `sed -e 's/$$/.68K.o/' -e 's/.*://' \
+       echo GSSOBJS68KCFM = `sed -e 's/$$/.CFM68.o/' -e 's/.*://' \
                -e 's/^/:bin:CFM-68K:/' macsrcsgss` >> Macfile
        echo GSSOBJSPPC = `sed -e 's/$$/.PPC.o/' -e 's/.*://' \
                -e 's/^/:bin:PPC:/' macsrcsgss` >> Macfile
        echo K5OBJS68K = `sed -e 's/$$/.68K.o/' -e 's/.*://' \
                -e 's/^/:bin:68K:/' macsrcsk5` >> Macfile
-       echo K5OBJS68KCFM = `sed -e 's/$$/.68K.o/' -e 's/.*://' \
+       echo K5OBJS68KCFM = `sed -e 's/$$/.CFM68.o/' -e 's/.*://' \
                -e 's/^/:bin:CFM-68K:/' macsrcsk5` >> Macfile
        echo K5OBJSPPC = `sed -e 's/$$/.PPC.o/' -e 's/.*://' \
                -e 's/^/:bin:PPC:/' macsrcsk5` >> Macfile
        echo INCLUDES = `sed -n -e 's/\(.*:\)[^:]*\.h$$/-i \1/p' macfile.maclist | sort -u` >> Macfile
        echo "" >> Macfile
-       tr '%/:\\' '/:\304\266'< mac/Makefile.tmpl >> Macfile
+       tr '@/:\\' '\245:\304\266'< mac/Makefile.tmpl >> Macfile
 
 mac-bin-dirs:
        rm -rf bin
@@ -388,57 +446,103 @@ kerbsrc.mac.tar: awk-windows-mac macfile.list mac-bin-dirs Macfile
        rm -f $(CLEANUP)
        rm -rf bin
        rm -f include/autoconf.h Makefile macsrc* macfile.maclist
-       mv Makefile.sav Makefile
-
 
 $(INC)asn1_err.h: $(AH) $(ET)asn1_err.et
-       gawk -f $(AH) outfile=$@ $(ET)asn1_err.et
+       $(AWK) -f $(AH) outfile=$@ $(ET)asn1_err.et
 $(INC)kdb5_err.h: $(AH) $(ET)kdb5_err.et
-       gawk -f $(AH) outfile=$@ $(ET)kdb5_err.et
+       $(AWK) -f $(AH) outfile=$@ $(ET)kdb5_err.et
 $(INC)krb5_err.h: $(AH) $(ET)krb5_err.et
-       gawk -f $(AH) outfile=$@ $(ET)krb5_err.et
+       $(AWK) -f $(AH) outfile=$@ $(ET)krb5_err.et
 $(INC)kv5m_err.h: $(AH) $(ET)kv5m_err.et
-       gawk -f $(AH) outfile=$@ $(ET)kv5m_err.et
+       $(AWK) -f $(AH) outfile=$@ $(ET)kv5m_err.et
 $(INC)adm_err.h: $(AH) $(ET)adm_err.et
-       gawk -f $(AH) outfile=$@ $(ET)adm_err.et
+       $(AWK) -f $(AH) outfile=$@ $(ET)adm_err.et
+$(INC)/kerberosIV/krb_err.h: $(AH) lib/krb4/krb_err.et
+       $(AWK) -f $(AH) outfile=$@ lib/krb4/krb_err.et
 $(PR)prof_err.h: $(AH) $(PR)prof_err.et
-       gawk -f $(AH) outfile=$@ $(PR)prof_err.et
+       $(AWK) -f $(AH) outfile=$@ $(PR)prof_err.et
 $(GG)gssapi_err_generic.h: $(AH) $(GG)gssapi_err_generic.et
-       gawk -f $(AH) outfile=$@ $(GG)gssapi_err_generic.et
+       $(AWK) -f $(AH) outfile=$@ $(GG)gssapi_err_generic.et
 $(GK)gssapi_err_krb5.h: $(AH) $(GK)gssapi_err_krb5.et
-       gawk -f $(AH) outfile=$@ $(GK)gssapi_err_krb5.et
+       $(AWK) -f $(AH) outfile=$@ $(GK)gssapi_err_krb5.et
 
 $(ET)asn1_err.c: $(AC) $(ET)asn1_err.et
-       gawk -f $(AC) outfile=$@ $(ET)asn1_err.et
+       $(AWK) -f $(AC) outfile=$@ $(ET)asn1_err.et
 $(ET)kdb5_err.c: $(AC) $(ET)kdb5_err.et
-       gawk -f $(AC) outfile=$@ $(ET)kdb5_err.et
+       $(AWK) -f $(AC) outfile=$@ $(ET)kdb5_err.et
 $(ET)krb5_err.c: $(AC) $(ET)krb5_err.et
-       gawk -f $(AC) outfile=$@ $(ET)krb5_err.et
+       $(AWK) -f $(AC) outfile=$@ $(ET)krb5_err.et
 $(ET)kv5m_err.c: $(AC) $(ET)kv5m_err.et
-       gawk -f $(AC) outfile=$@ $(ET)kv5m_err.et
+       $(AWK) -f $(AC) outfile=$@ $(ET)kv5m_err.et
 $(ET)adm_err.c: $(AC) $(ET)adm_err.et
-       gawk -f $(AC) outfile=$@ $(ET)adm_err.et
+       $(AWK) -f $(AC) outfile=$@ $(ET)adm_err.et
+lib/krb4/krb_err.c: $(AC) lib/krb4/krb_err.et
+       $(AWK) -f $(AC) outfile=$@ lib/krb4/krb_err.et
 $(PR)prof_err.c: $(AC) $(PR)prof_err.et
-       gawk -f $(AC) outfile=$@ $(PR)prof_err.et
+       $(AWK) -f $(AC) outfile=$@ $(PR)prof_err.et
 $(GG)gssapi_err_generic.c: $(AC) $(GG)gssapi_err_generic.et
-       gawk -f $(AC) outfile=$@ $(GG)gssapi_err_generic.et
+       $(AWK) -f $(AC) outfile=$@ $(GG)gssapi_err_generic.et
 $(GK)gssapi_err_krb5.c: $(AC) $(GK)gssapi_err_krb5.et
-       gawk -f $(AC) outfile=$@ $(GK)gssapi_err_krb5.et
+       $(AWK) -f $(AC) outfile=$@ $(GK)gssapi_err_krb5.et
 
 KRBHDEP = $(INC)krb5.hin $(INC)krb5_err.h $(INC)kdb5_err.h \
        $(INC)kv5m_err.h $(INC)asn1_err.h
 
 $(INC)krb5.h: $(KRBHDEP)
-       $(RM) $@
+       rm -f $@
        cat $(KRBHDEP) > $@
 $(PR)profile.h: $(PR)profile.hin $(PR)prof_err.h
-       $(RM) $@
+       rm -f $@
        cat $(PR)profile.hin $(PR)prof_err.h > $@
 $(GG)gssapi.h: $(GG)gssapi.hin
-       $(RM) $@
+       rm -f $@
        cat $(GG)gssapi.hin > $@
 
 awk-windows-mac: $(ETOUT) $(HOUT)
 
+#
+# The maybe-awk target needs to happen after AWK is defined.
+#
+
+##DOS##maybe-awk::
+##DOS##!ifdef WHICH_CMD
+##DOS##!if ![ $(WHICH_CMD) $(AWK) ]
+##DOS##maybe-awk:: awk-windows-mac
+##DOS##!endif
+##DOS##!endif
+
 clean-windows-mac:
-       $(RM) $(CLEANUP)
+       rm -f $(CLEANUP)
+
+distclean-windows:
+       config\rm.bat $(CLEANUP:^/=^\)
+       config\rm.bat $(WINMAKEFILES)
+       config\rm.bat $(KBINDIR)\*.dll $(KBINDIR)\*.exe
+       @if exist $(KBINDIR)\nul rmdir $(KBINDIR)
+
+install-windows::
+       @if "$(KRB_INSTALL_DIR)"=="" @echo KRB_INSTALL_DIR is not defined!  Please define it.
+       @if "$(KRB_INSTALL_DIR)"=="" @dir /b \nul\nul
+       @if not exist "$(KRB_INSTALL_DIR)\$(NULL)" @echo The directory $(KRB_INSTALL_DIR) does not exist.  Please create it.
+       @if not exist "$(KRB_INSTALL_DIR)\$(NULL)" @dir /b $(KRB_INSTALL_DIR)\nul
+       @if not exist "$(KRB_INSTALL_DIR)\include\$(NULL)" @mkdir "$(KRB_INSTALL_DIR)\include"
+       @if not exist "$(KRB_INSTALL_DIR)\include\gssapi\$(NULL)" @mkdir "$(KRB_INSTALL_DIR)\include\gssapi"
+       @if not exist "$(KRB_INSTALL_DIR)\lib\$(NULL)" @mkdir "$(KRB_INSTALL_DIR)\lib"
+       @if not exist "$(KRB_INSTALL_DIR)\bin\$(NULL)" @mkdir "$(KRB_INSTALL_DIR)\bin"
+       $(CP) include\krb5.h "$(KRB_INSTALL_DIR)\include\."
+       $(CP) include\win-mac.h "$(KRB_INSTALL_DIR)\include\."
+       $(CP) include\profile.h "$(KRB_INSTALL_DIR)\include\."
+       $(CP) include\com_err.h "$(KRB_INSTALL_DIR)\include\."
+       $(CP) include\gssapi\gssapi.h "$(KRB_INSTALL_DIR)\include\gssapi\."
+       $(CP) include\gssapi\gssapi_krb5.h "$(KRB_INSTALL_DIR)\include\gssapi\."
+       $(CP) lib\$(OUTPRE)*.lib "$(KRB_INSTALL_DIR)\lib\."
+       $(CP) lib\$(OUTPRE)*.dll "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) windows\cns\$(OUTPRE)krb5.exe "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) windows\wintel\$(OUTPRE)telnet.exe "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) windows\gss\$(OUTPRE)gss.exe "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) clients\klist\$(OUTPRE)klist.exe "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) clients\kinit\$(OUTPRE)kinit.exe "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) clients\kdestroy\$(OUTPRE)kdestroy.exe "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) clients\kpasswd\$(OUTPRE)kpasswd.exe "$(KRB_INSTALL_DIR)\bin\."
+       @if exist "$(KRB_INSTALL_DIR)\bin\krb4_32.dll" del "$(KRB_INSTALL_DIR)\bin\krb4_32.dll"
+       @if exist "$(KRB_INSTALL_DIR)\lib\krb4_32.lib" del "$(KRB_INSTALL_DIR)\lib\krb4_32.lib"