Compiling krb5.1.8.1 for windows

Ruurd Beerstra ruurdb at wxs.nl
Mon May 3 15:01:51 EDT 2010


Hi,
 
I'm author of IVT, a VT220 emulator for Windows that can do Kerberized
telnet, too (see http://home.wxs.nl/~ruurdb/IVT.HTM for details).
 
I've kept reasonably up-to-date with new MIT releases of Kerberos,
downloading, compiling and linking my application against MIT code ever
since 2003.
Starting with version 1.7 that stopped being easy, I got a number of errors
in the make process.
Fixing one led to other problems, and I decided to wait a bit until someone
else fixed it for me (lazy, I know).
 
I downloaded 1.8.1 today and attempted to build the Windows DLLs once more.
I still run into the same problems.
Obviously, no one has actually tested this Windows build process.
After unpacking and doing "nmake -f Makefile.in prep-windows" (which works,
or at least gives no immediate errors), I do:
 
Y:\krb5-1.8.1\src>nmake NODEBUG=1
 
Microsoft (R) Program Maintenance Utility   Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
 
Output going into obj\i386\rel
        cl -Fe.\\obj\i386\rel\wconfig.exe -Fo.\\obj\i386\rel\wconfig.obj
wconfig.c  /MANIFEST
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for
80x86
Copyright (C) Microsoft Corporation.  All rights reserved.
 
cl : Command line warning D9002 : ignoring unknown option '/MANIFEST'
wconfig.c
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation.  All rights reserved.
 
/out:.\\obj\i386\rel\wconfig.exe
.\\obj\i386\rel\wconfig.obj
        if exist .\\obj\i386\rel\wconfig.exe.manifest mt.exe -manifest
.\\obj\i386\rel\wconfig.exe.manifest
-outputresource:.\\obj\i386\rel\wconfig.exe;1
        .\\obj\i386\rel\wconfig  config < Makefile.in > Makefile
        .\\obj\i386\rel\wconfig  config < appl\gss-sample\Makefile.in >
appl\gss-sample\Makefile
NMAKE : fatal error U1073: don't know how to make
'appl\gssftp\ftp\Makefile.in'
Stop.
 
The first unknown option (/MANIFEST) is just ignored (there is no /link
preceding it). wconfig.exe builds OK, so I ignore it, too.
 
The second is caused by FTP no longer being part of the MIT tree (it has
been moved to the appl package).
So, I take out FTP of the Makefile.in (making, cleaning, prepping), and try
again.
 
NMAKE : fatal error U1073: don't know how to make
'lib\crypto\@CRYPTO_IMPL@\des\Makefile.in'
Stop.
 
Caused by the prep-windows step NOT substituting @CRYPTO_IMPL@ by the chosen
implementation (like "builtin").
When that is fixed (adding a substitute to the SED command in there), I get:
        .\\obj\i386\rel\wconfig  config <
lib\crypto\builtin\hash_provider\Makefile.in >
lib\crypto\builtin\hash_provider\Makefile
NMAKE : fatal error U1073: don't know how to make
'lib\crypto\krb\keyhash_provider\Makefile.in'
Stop.
 
That whole directory no longer exists. Rule removed. Next:
NMAKE : fatal error U1073: don't know how to make
'lib\crypto\krb\prf\Makefile'
Forgotten rule in the makefile. Added. Same for rand2key.
arcfour uses @CRYPTO_IMPL@ but is in "builtin".
 
NMAKE : fatal error U1073: don't know how to make
'lib\crypto\md5\builtin\Makefile.in'
Should read builtin\md5 instead of md5\builtin
 
After that, it finally groks the makefile and starts compiling. For about 10
seconds:
        perl -w .\../util/def-check.pl private-and-public-decls
.\../lib/krb5_32.def
 extern void initialize_krb5_error_table
' at .\../util/def-check.pl line 175, <GEN0> line 2855.
NMAKE : fatal error U1077: 'perl' : return code '0x9'
 
There is a check in line 175 of that perl script. I could not quite figure
out what it tries to do there, commented it out and tried again.
It starts building again, but now:
 
Making in crypto\krb
        nmake -
NMAKE : fatal error U1064: MAKEFILE not found and no target specified
Stop.
 
because lib\crypto\krb has a Makefile.in but no Makefile (missing rule in
Makefile.in).
This is where I give up - this whole windows make-process is badly broken.
 
Can I assume someone reading this mailing list can actually fix this?
 
Anwers appreciated to ruurdb at wxs.nl
 



More information about the krbdev mailing list