summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJeffrey Altman <jaltman@secure-endpoints.com>2006-12-07 21:56:20 +0000
committerJeffrey Altman <jaltman@secure-endpoints.com>2006-12-07 21:56:20 +0000
commitde72ef9370c7a4982d420569e5c43f12c553ebf0 (patch)
tree4868c06e1bd898e131b7823174048cee9a82a6f5 /src
parent3d22bd77a212fc75d49495476f5d08d76be2f313 (diff)
Modifications to support the generation and embedding
of library manifests into generated EXEs and DLLs. Manifests are required for Windows XP and above when applications are built with Microsoft Visual Studio 2005 (aka VS8) or above. ticket: 3642 tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@18930 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.in1
-rw-r--r--src/appl/gss-sample/Makefile.in2
-rw-r--r--src/appl/gssftp/ftp/Makefile.in1
-rw-r--r--src/clients/kcpytkt/Makefile.in1
-rw-r--r--src/clients/kdeltkt/Makefile.in1
-rw-r--r--src/clients/kdestroy/Makefile.in1
-rw-r--r--src/clients/kinit/Makefile.in1
-rw-r--r--src/clients/klist/Makefile.in1
-rw-r--r--src/clients/kvno/Makefile.in1
-rw-r--r--src/config/win-post.in1
-rw-r--r--src/config/win-pre.in7
-rw-r--r--src/include/krb5/krb5.hin7
-rw-r--r--src/krb524/Makefile.in2
-rw-r--r--src/lib/Makefile.in6
-rw-r--r--src/lib/krb5/krb/gic_opt.c12
-rw-r--r--src/util/windows/Makefile.in4
-rw-r--r--src/windows/cns/Makefile.in1
-rw-r--r--src/windows/gina/Makefile.in1
-rw-r--r--src/windows/identity/config/Makefile.w323
-rw-r--r--src/windows/kfwlogon/Makefile.in76
-rw-r--r--src/windows/ms2mit/Makefile.in2
-rw-r--r--src/windows/wintel/Makefile.in1
22 files changed, 91 insertions, 42 deletions
diff --git a/src/Makefile.in b/src/Makefile.in
index 94829d061..5e88fb94d 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -159,6 +159,7 @@ config-windows:: Makefile-windows
#
##DOS##$(WCONFIG_EXE): outpre-dir wconfig.c
##DOS## $(CC) -Fe$@ -Fo$*.obj wconfig.c $(CCLINKOPTION)
+##DOS## $(_VC_MANIFEST_EMBED_EXE)
##DOS##MKFDEP=$(WCONFIG_EXE) config\win-pre.in config\win-post.in
diff --git a/src/appl/gss-sample/Makefile.in b/src/appl/gss-sample/Makefile.in
index 92cecb501..f43bdc9d6 100644
--- a/src/appl/gss-sample/Makefile.in
+++ b/src/appl/gss-sample/Makefile.in
@@ -21,9 +21,11 @@ gss-client: gss-client.o gss-misc.o $(GSS_DEPLIBS) $(KRB5_BASE_DEPLIBS)
$(OUTPRE)gss-server.exe: $(OUTPRE)gss-server.obj $(OUTPRE)gss-misc.obj $(GLIB) $(KLIB)
link $(EXE_LINKOPTS) -out:$@ $** ws2_32.lib $(SCLIB)
+ $(_VC_MANIFEST_EMBED_EXE)
$(OUTPRE)gss-client.exe: $(OUTPRE)gss-client.obj $(OUTPRE)gss-misc.obj $(GLIB) $(KLIB)
link $(EXE_LINKOPTS) -out:$@ $** ws2_32.lib $(SCLIB)
+ $(_VC_MANIFEST_EMBED_EXE)
clean-unix::
$(RM) gss-server gss-client
diff --git a/src/appl/gssftp/ftp/Makefile.in b/src/appl/gssftp/ftp/Makefile.in
index ded4c95da..490b5dc3b 100644
--- a/src/appl/gssftp/ftp/Makefile.in
+++ b/src/appl/gssftp/ftp/Makefile.in
@@ -38,6 +38,7 @@ ftp: $(OBJS) $(GSS_DEPLIBS) $(KRB5_BASE_DEPLIBS)
$(OUTPRE)ftp.exe: $(OBJS) $(GLIB) $(KLIB)
link $(EXE_LINKOPTS) -out:$@ $** ws2_32.lib advapi32.lib $(SCLIB)
+ $(_VC_MANIFEST_EMBED_EXE)
clean-unix::
$(RM) ftp
diff --git a/src/clients/kcpytkt/Makefile.in b/src/clients/kcpytkt/Makefile.in
index d7089841c..a989b5006 100644
--- a/src/clients/kcpytkt/Makefile.in
+++ b/src/clients/kcpytkt/Makefile.in
@@ -15,6 +15,7 @@ kcpytkt: kcpytkt.o $(KRB4COMPAT_DEPLIBS)
$(OUTPRE)kcpytkt.exe: $(OUTPRE)kcpytkt.obj $(BUILDTOP)\util\windows\$(OUTPRE)getopt.obj $(KLIB) $(CLIB)
link $(EXE_LINKOPTS) /out:$@ $**
+ $(_VC_MANIFEST_EMBED_EXE)
clean-unix::
$(RM) kcpytkt.o kcpytkt
diff --git a/src/clients/kdeltkt/Makefile.in b/src/clients/kdeltkt/Makefile.in
index d7d371a79..f5f746f28 100644
--- a/src/clients/kdeltkt/Makefile.in
+++ b/src/clients/kdeltkt/Makefile.in
@@ -15,6 +15,7 @@ kdeltkt: kdeltkt.o $(KRB4COMPAT_DEPLIBS)
$(OUTPRE)kdeltkt.exe: $(OUTPRE)kdeltkt.obj $(BUILDTOP)\util\windows\$(OUTPRE)getopt.obj $(KLIB) $(CLIB)
link $(EXE_LINKOPTS) /out:$@ $**
+ $(_VC_MANIFEST_EMBED_EXE)
clean-unix::
$(RM) kdeltkt.o kdeltkt
diff --git a/src/clients/kdestroy/Makefile.in b/src/clients/kdestroy/Makefile.in
index 6c24f7190..ce273af9b 100644
--- a/src/clients/kdestroy/Makefile.in
+++ b/src/clients/kdestroy/Makefile.in
@@ -17,6 +17,7 @@ kdestroy: kdestroy.o $(KRB4COMPAT_DEPLIBS)
$(OUTPRE)kdestroy.exe: $(OUTPRE)kdestroy.obj $(BUILDTOP)\util\windows\$(OUTPRE)getopt.obj $(KLIB) $(CLIB)
link $(EXE_LINKOPTS) -out:$@ $**
+ $(_VC_MANIFEST_EMBED_EXE)
clean-unix::
$(RM) kdestroy.o kdestroy
diff --git a/src/clients/kinit/Makefile.in b/src/clients/kinit/Makefile.in
index 17c6e5a92..ec023b757 100644
--- a/src/clients/kinit/Makefile.in
+++ b/src/clients/kinit/Makefile.in
@@ -20,6 +20,7 @@ kinit: kinit.o $(KRB4COMPAT_DEPLIBS)
$(OUTPRE)kinit.exe: $(OUTPRE)kinit.obj $(BUILDTOP)\util\windows\$(OUTPRE)getopt.lib $(KLIB) $(CLIB)
link $(EXE_LINKOPTS) -out:$@ $** advapi32.lib
+ $(_VC_MANIFEST_EMBED_EXE)
clean-unix::
$(RM) kinit.o kinit
diff --git a/src/clients/klist/Makefile.in b/src/clients/klist/Makefile.in
index 669c11e86..7a834045c 100644
--- a/src/clients/klist/Makefile.in
+++ b/src/clients/klist/Makefile.in
@@ -17,6 +17,7 @@ klist: klist.o $(KRB4COMPAT_DEPLIBS)
$(OUTPRE)klist.exe: $(OUTPRE)klist.obj $(BUILDTOP)\util\windows\$(OUTPRE)getopt.lib $(SLIB) $(KLIB) $(CLIB)
link $(EXE_LINKOPTS) -out:$@ $** ws2_32.lib $(SCLIB)
+ $(_VC_MANIFEST_EMBED_EXE)
clean-unix::
$(RM) klist.o klist
diff --git a/src/clients/kvno/Makefile.in b/src/clients/kvno/Makefile.in
index f8a3eeb3a..70729311e 100644
--- a/src/clients/kvno/Makefile.in
+++ b/src/clients/kvno/Makefile.in
@@ -17,6 +17,7 @@ kvno: kvno.o $(KRB4COMPAT_DEPLIBS)
$(OUTPRE)kvno.exe: $(OUTPRE)kvno.obj $(BUILDTOP)\util\windows\$(OUTPRE)getopt.obj $(KLIB) $(CLIB)
link $(EXE_LINKOPTS) /out:$@ $**
+ $(_VC_MANIFEST_EMBED_EXE)
clean-unix::
$(RM) kvno.o kvno
diff --git a/src/config/win-post.in b/src/config/win-post.in
index a568bf9a9..fd874aebe 100644
--- a/src/config/win-post.in
+++ b/src/config/win-post.in
@@ -107,4 +107,5 @@ clean-windows-files::
$(RM) .\$(OUTPRE)*.lib .\$(OUTPRE)*.pdb
$(RM) .\$(OUTPRE)*.exp .\$(OUTPRE)*.map
$(RM) .\$(OUTPRE)*.idb .\$(OUTPRE)*.ilk
+ $(RM) .\$(OUTPRE)*.manifest
!endif
diff --git a/src/config/win-pre.in b/src/config/win-pre.in
index 2f8b0dad2..7cadbe903 100644
--- a/src/config/win-pre.in
+++ b/src/config/win-pre.in
@@ -144,6 +144,13 @@ SCLIB=
DEBUGOPT=/ZI
!endif
+#if the compiler is vstudio 8, generate manifest
+!if exists("$(VCINSTALLDIR)\..\..\MICROSOFT VISUAL STUDIO 8")
+CCLINKOPTION = $(CCLINKOPTION) /MANIFEST
+_VC_MANIFEST_EMBED_EXE = if exist $*.exe.manifest mt.exe -manifest $*.exe.manifest -outputresource:$*.exe;1
+_VC_MANIFEST_EMBED_DLL = if exist $*.dll.manifest mt.exe -manifest $*.dll.manifest -outputresource:$*.dll;2
+!endif
+
# /ZI gives better debug info in each object file (MSVC 6.0 or higher).
# /Zi gives debug info in each object file.
# /Gs Avoid stack probes (they don't seem to work anyway)
diff --git a/src/include/krb5/krb5.hin b/src/include/krb5/krb5.hin
index 9d9920efd..9c6fd2311 100644
--- a/src/include/krb5/krb5.hin
+++ b/src/include/krb5/krb5.hin
@@ -2429,7 +2429,7 @@ typedef struct _krb5_get_init_creds_opt {
#define KRB5_GET_INIT_CREDS_OPT_ADDRESS_LIST 0x0020
#define KRB5_GET_INIT_CREDS_OPT_PREAUTH_LIST 0x0040
#define KRB5_GET_INIT_CREDS_OPT_SALT 0x0080
-
+#define KRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPT 0x0100
void KRB5_CALLCONV
krb5_get_init_creds_opt_init
@@ -2477,7 +2477,10 @@ krb5_get_init_creds_opt_set_salt
(krb5_get_init_creds_opt *opt,
krb5_data *salt);
-
+void KRB5_CALLCONV
+krb5_get_init_creds_opt_set_change_password_prompt
+(krb5_get_init_creds_opt *opt,
+ int prompt);
krb5_error_code KRB5_CALLCONV
krb5_get_init_creds_password
diff --git a/src/krb524/Makefile.in b/src/krb524/Makefile.in
index acc121aa8..7f729192c 100644
--- a/src/krb524/Makefile.in
+++ b/src/krb524/Makefile.in
@@ -87,9 +87,11 @@ k524init: $(CLIENT_OBJS) $(KRB5_DEPLIB) $(KRB4COMPAT_DEPLIBS)
$(K524LIB): $(OUTPRE)krb524.$(OBJEXT) $(OUTPRE)libinit.$(OBJEXT) $(KLIB) $(CLIB)
link $(DLL_LINKOPTS) -def:$(K524DEF) -out:$*.dll $** $(WINLIBS)
+ $(_VC_MANIFEST_EMBED_DLL)
$(OUTPRE)k524init.exe: $(OUTPRE)k524init.$(OBJEXT) $(KLIB) $(K4LIB) $(CLIB) $(BUILDTOP)\util\windows\$(OUTPRE)getopt.lib
link $(EXE_LINKOPTS) -out:$@ $** $(WINLIBS) $(SCLIB)
+ $(_VC_MANIFEST_EMBED_EXE)
install-unix::
$(INSTALL_PROGRAM) krb524d $(DESTDIR)$(SERVER_BINDIR)/krb524d
diff --git a/src/lib/Makefile.in b/src/lib/Makefile.in
index 736f9a515..b1590df71 100644
--- a/src/lib/Makefile.in
+++ b/src/lib/Makefile.in
@@ -101,6 +101,7 @@ clean-windows::
##WIN32##$(SLIB): $(SDEF) $(SLIBS) $(SGLUE) $(SRES)
##WIN32## link $(WINDLLFLAGS) -def:$(SDEF) -out:$*.dll \
##WIN32## $(SLIBS) $(SGLUE) $(SRES) $(WINLIBS) $(SCLIB)
+##WIN32## $(_VC_MANIFEST_EMBED_DLL)
##WIN32##$(SDEF): ..\util\support\libkrb5support.exports
##WIN32## echo EXPORTS > $(SDEF).new
##WIN32## type ..\util\support\libkrb5support.exports >> $(SDEF).new
@@ -110,22 +111,27 @@ clean-windows::
##WIN32##$(CLIB): $(CDEF) $(CLIBS) $(CGLUE) $(CRES) $(SLIB)
##WIN32## link $(WINDLLFLAGS) -def:$(CDEF) -out:$*.dll \
##WIN32## $(CLIBS) $(CGLUE) $(CRES) $(SLIB) $(WINLIBS) $(SCLIB)
+##WIN32## $(_VC_MANIFEST_EMBED_DLL)
##WIN32##$(PLIB): $(PDEF) $(PLIBS) $(PGLUE) $(PRES) $(CLIB) $(SLIB)
##WIN32## link $(WINDLLFLAGS) -def:$(PDEF) -out:$*.dll \
##WIN32## $(PLIBS) $(PGLUE) $(PRES) $(CLIB) $(SLIB) $(WINLIBS)
+##WIN32## $(_VC_MANIFEST_EMBED_DLL)
##WIN32##$(KLIB): $(KDEF) $(KLIBS) $(KGLUE) $(KRES) $(CLIB) $(SLIB) $(MITLIBS) $(DNSLIBS)
##WIN32## link $(WINDLLFLAGS) -def:$(KDEF) -out:$*.dll \
##WIN32## $(KLIBS) $(KGLUE) $(KRES) $(CLIB) $(SLIB) $(MITLIBS) $(DNSLIBS) $(WINLIBS) $(SCLIB)
+##WIN32## $(_VC_MANIFEST_EMBED_DLL)
##WIN32##$(GLIB): $(GDEF) $(GLIBS) $(GGLUE) $(GRES) $(KLIB) $(CLIB) $(SLIB)
##WIN32## link $(WINDLLFLAGS) -def:$(GDEF) -out:$*.dll \
##WIN32## $(GLIBS) $(GGLUE) $(GRES) $(KLIB) $(CLIB) $(SLIB) $(WINLIBS) $(SCLIB)
+##WIN32## $(_VC_MANIFEST_EMBED_DLL)
##WIN32##$(K4LIB): $(K4DEF) $(K4LIBS) $(K4GLUE) $(K4RES) $(KLIB) $(CLIB) $(PLIB)
##WIN32## link $(WINDLLFLAGS) -def:$(K4DEF) -out:$*.dll \
##WIN32## $(K4LIBS) $(K4GLUE) $(K4RES) $(KLIB) $(CLIB) $(PLIB) $(WINLIBS) $(SCLIB)
+##WIN32## $(_VC_MANIFEST_EMBED_DLL)
##WIN32##$(K5_GLUE): win_glue.c
##WIN32## $(CC) $(ALL_CFLAGS) $(MITFLAGS) /c /DKRB5=1 /Fo$@ $**
diff --git a/src/lib/krb5/krb/gic_opt.c b/src/lib/krb5/krb/gic_opt.c
index 58d07b03d..963bbc278 100644
--- a/src/lib/krb5/krb/gic_opt.c
+++ b/src/lib/krb5/krb/gic_opt.c
@@ -3,7 +3,7 @@
void KRB5_CALLCONV
krb5_get_init_creds_opt_init(krb5_get_init_creds_opt *opt)
{
- opt->flags = 0;
+ opt->flags = KRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPT;
}
void KRB5_CALLCONV
@@ -63,3 +63,13 @@ krb5_get_init_creds_opt_set_salt(krb5_get_init_creds_opt *opt, krb5_data *salt)
opt->flags |= KRB5_GET_INIT_CREDS_OPT_SALT;
opt->salt = salt;
}
+
+void KRB5_CALLCONV
+krb5_get_init_creds_opt_set_salt(krb5_get_init_creds_opt *opt, int prompt)
+{
+ if (prompt)
+ opt->flags |= KRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPT;
+ else
+ opt->flags &= ~KRB5_GET_INIT_CREDS_OPT_CHG_PWD_PRMPT;
+}
+
diff --git a/src/util/windows/Makefile.in b/src/util/windows/Makefile.in
index 102ae741c..f857c4667 100644
--- a/src/util/windows/Makefile.in
+++ b/src/util/windows/Makefile.in
@@ -4,6 +4,8 @@ all-windows:: $(OUTPRE)libecho.exe $(OUTPRE)getopt.lib
$(OUTPRE)libecho.exe: $(OUTPRE)libecho.obj
link -out:$@ $** $(SCLIB)
+ $(_VC_MANIFEST_EMBED_EXE)
+
$(OUTPRE)getopt.lib: $(OUTPRE)getopt.obj $(OUTPRE)getopt_long.obj
lib -out:$@ $**
@@ -11,4 +13,4 @@ $(OUTPRE)getopt.lib: $(OUTPRE)getopt.obj $(OUTPRE)getopt_long.obj
install-windows::
clean-windows::
- $(RM) $(OUTPRE)*.res $(OUTPRE)*.map $(OUTPRE)*.obj $(OUTPRE)*.exe
+ $(RM) $(OUTPRE)*.res $(OUTPRE)*.map $(OUTPRE)*.obj $(OUTPRE)*.exe $(OUTPRE)*.manifest
diff --git a/src/windows/cns/Makefile.in b/src/windows/cns/Makefile.in
index 1e9e50ed6..bc884a3fb 100644
--- a/src/windows/cns/Makefile.in
+++ b/src/windows/cns/Makefile.in
@@ -55,6 +55,7 @@ all:: Makefile $(OUTPRE)$(NAME).exe
$(OUTPRE)$(NAME).exe: $(NAME).def $(OBJS) $(XOBJS) $(LIBS)
$(LINK) $(LFLAGS) /map:$*.map /out:$@ $(OBJS) $(XOBJS) \
$(LIBS) $(SYSLIBS) $(SCLIB)
+ $(_VC_MANIFEST_EMBED_EXE)
install::
$(CP) $(OUTPRE)$(NAME).exe $(DESTDIR)
diff --git a/src/windows/gina/Makefile.in b/src/windows/gina/Makefile.in
index 2aec54469..c2f7ada19 100644
--- a/src/windows/gina/Makefile.in
+++ b/src/windows/gina/Makefile.in
@@ -28,6 +28,7 @@ clean-windows::
$(OUTPRE)kgina.dll: $(OBJS) $(KLIB) $(CLIB)
link $(WINDLLFLAGS) -def:gina.def -out:$*.dll \
$** $(WINLIBS) $(SCLIB)
+ $(_VC_MANIFEST_EMBED_DLL)
$(OUTPRE)ginastub.obj: ginastub.h
diff --git a/src/windows/identity/config/Makefile.w32 b/src/windows/identity/config/Makefile.w32
index c66042689..8ede1dbae 100644
--- a/src/windows/identity/config/Makefile.w32
+++ b/src/windows/identity/config/Makefile.w32
@@ -324,7 +324,8 @@ MT=mt.exe -nologo
_VC_MANIFEST_EMBED_EXE= \
if exist $@.manifest $(MT) -outputresource:$@;1 -manifest $@.manifest
-_VC_MANIFEST_EMBED_DLL=$(_VC_MANIFEST_EMBED_EXE)
+_VC_MANIFEST_EMBED_DLL= \
+if exist $@.manifest $(MT) -outputresource:$@;2 -manifest $@.manifest
# Note that if you are merging manifests, then the VS generated
# manifest should be cleaned up after calling _VC_MANIFEST_EMBED_???.
diff --git a/src/windows/kfwlogon/Makefile.in b/src/windows/kfwlogon/Makefile.in
index 03fc6e7e4..96562ec36 100644
--- a/src/windows/kfwlogon/Makefile.in
+++ b/src/windows/kfwlogon/Makefile.in
@@ -1,37 +1,39 @@
-# Makefile for the KFW Network Provider
-#
-
-thisconfigdir=./..
-myfulldir=windows/nplogon
-mydir=.
-BUILDTOP=$(REL)..$(S)..
-DEFINES =
-LOCALINCLUDES = -I$(BUILDTOP) -I$(PISMERE)\athena\util\loadfuncs \
- -I$(PISMERE)\athena\auth\krb5\src\include\kerberosIV \
- -I$(PISMERE)\athena\auth\krb4\include \
- -I$(PISMERE)\athena\auth\leash\include
-PROG_LIBPATH=-L$(TOPLIBD) -L$(KRB5_LIBDIR)
-
-SYSLIBS = kernel32.lib user32.lib advapi32.lib wsock32.lib secur32.lib userenv.lib
-RFLAGS = $(LOCALINCLUDES)
-RCFLAGS = $(RFLAGS) -D_WIN32
-
-all-windows:: $(OUTPRE)kfwlogon.dll $(OUTPRE)kfwcpcc.exe
-
-$(OUTPRE)kfwlogon.res: kfwlogon.rc ..\version.rc
-
-$(OUTPRE)kfwcpcc.res: kfwcpcc.rc ..\version.rc
-
-$(OUTPRE)kfwlogon.dll: $(OUTPRE)kfwlogon.obj $(OUTPRE)kfwcommon.obj $(OUTPRE)kfwlogon.res
- link $(DLL_LINKOPTS) -out:$@ $(OUTPRE)kfwlogon.obj $(OUTPRE)kfwcommon.obj -entry:DllEntryPoint -def:kfwlogon.def $(SYSLIBS) $(KLIB) $(CLIB)
-
-$(OUTPRE)kfwcpcc.exe: $(OUTPRE)kfwcpcc.obj $(OUTPRE)kfwcommon.obj $(OUTPRE)kfwcpcc.res
- link $(EXE_LINKOPTS) -out:$@ $(OUTPRE)kfwcpcc.obj $(OUTPRE)kfwcommon.obj $(SYSLIBS) $(KLIB) $(CLIB)
-
-install::
- copy $(OUTPRE)kfwlogon.dll $(DESTDIR)
- copy $(OUTPRE)kfwcpcc.exe $(DESTDIR)
-
-clean::
- $(RM) $(OUTPRE)*.exe $(OUTPRE)*.dll $(OUTPRE)*.res
-
+# Makefile for the KFW Network Provider
+#
+
+thisconfigdir=./..
+myfulldir=windows/nplogon
+mydir=.
+BUILDTOP=$(REL)..$(S)..
+DEFINES =
+LOCALINCLUDES = -I$(BUILDTOP) -I$(PISMERE)\athena\util\loadfuncs \
+ -I$(PISMERE)\athena\auth\krb5\src\include\kerberosIV \
+ -I$(PISMERE)\athena\auth\krb4\include \
+ -I$(PISMERE)\athena\auth\leash\include
+PROG_LIBPATH=-L$(TOPLIBD) -L$(KRB5_LIBDIR)
+
+SYSLIBS = kernel32.lib user32.lib advapi32.lib wsock32.lib secur32.lib userenv.lib
+RFLAGS = $(LOCALINCLUDES)
+RCFLAGS = $(RFLAGS) -D_WIN32
+
+all-windows:: $(OUTPRE)kfwlogon.dll $(OUTPRE)kfwcpcc.exe
+
+$(OUTPRE)kfwlogon.res: kfwlogon.rc ..\version.rc
+
+$(OUTPRE)kfwcpcc.res: kfwcpcc.rc ..\version.rc
+
+$(OUTPRE)kfwlogon.dll: $(OUTPRE)kfwlogon.obj $(OUTPRE)kfwcommon.obj $(OUTPRE)kfwlogon.res
+ link $(DLL_LINKOPTS) -out:$@ $(OUTPRE)kfwlogon.obj $(OUTPRE)kfwcommon.obj -entry:DllEntryPoint -def:kfwlogon.def $(SYSLIBS) $(KLIB) $(CLIB)
+ $(_VC_MANIFEST_EMBED_DLL)
+
+$(OUTPRE)kfwcpcc.exe: $(OUTPRE)kfwcpcc.obj $(OUTPRE)kfwcommon.obj $(OUTPRE)kfwcpcc.res
+ link $(EXE_LINKOPTS) -out:$@ $(OUTPRE)kfwcpcc.obj $(OUTPRE)kfwcommon.obj $(SYSLIBS) $(KLIB) $(CLIB)
+ $(_VC_MANIFEST_EMBED_EXE)
+
+install::
+ copy $(OUTPRE)kfwlogon.dll $(DESTDIR)
+ copy $(OUTPRE)kfwcpcc.exe $(DESTDIR)
+
+clean::
+ $(RM) $(OUTPRE)*.exe $(OUTPRE)*.dll $(OUTPRE)*.res
+
diff --git a/src/windows/ms2mit/Makefile.in b/src/windows/ms2mit/Makefile.in
index b1275bbb4..6162eb08e 100644
--- a/src/windows/ms2mit/Makefile.in
+++ b/src/windows/ms2mit/Makefile.in
@@ -13,9 +13,11 @@ all-windows:: $(OUTPRE)ms2mit.exe $(OUTPRE)mit2ms.exe
$(OUTPRE)ms2mit.exe: $(OUTPRE)ms2mit.obj
link $(EXE_LINKOPTS) -out:$@ $(OUTPRE)ms2mit.obj $(BUILDTOP)\util\windows\$(OUTPRE)getopt.obj user32.lib advapi32.lib $(KLIB) $(CLIB)
+ $(_VC_MANIFEST_EMBED_EXE)
$(OUTPRE)mit2ms.exe: $(OUTPRE)mit2ms.obj
link $(EXE_LINKOPTS) -out:$@ $(OUTPRE)mit2ms.obj $(BUILDTOP)\util\windows\$(OUTPRE)getopt.obj user32.lib advapi32.lib $(KLIB) $(CLIB)
+ $(_VC_MANIFEST_EMBED_EXE)
install::
copy $(OUTPRE)ms2mit.exe $(DESTDIR)
diff --git a/src/windows/wintel/Makefile.in b/src/windows/wintel/Makefile.in
index 0603cc4ba..1ff8f599b 100644
--- a/src/windows/wintel/Makefile.in
+++ b/src/windows/wintel/Makefile.in
@@ -35,6 +35,7 @@ all:: Makefile $(OUTPRE)telnet.exe
$(OUTPRE)telnet.exe: telnet.def $(OBJS) $(XOBJS) $(LIBS)
$(LINK) $(LFLAGS) /map:$*.map /out:$@ $(OBJS) $(XOBJS) \
$(LIBS) $(SYSLIBS) $(SCLIB)
+ $(_VC_MANIFEST_EMBED_EXE)
install::
copy $(OUTPRE)telnet.exe $(DESTDIR)