diff -durN serf-1.3.9.orig/auth/auth_spnego_sspi.c serf-1.3.9/auth/auth_spnego_sspi.c --- serf-1.3.9.orig/auth/auth_spnego_sspi.c 2015-09-17 21:28:14.000000000 +0800 +++ serf-1.3.9/auth/auth_spnego_sspi.c 2017-05-20 12:49:21.328125000 +0800 @@ -27,6 +27,8 @@ #include #define SECURITY_WIN32 +#include +#include #include /* SEC_E_MUTUAL_AUTH_FAILED is not defined in Windows Platform SDK 5.0. */ diff -durN serf-1.3.9.orig/SConstruct serf-1.3.9/SConstruct --- serf-1.3.9.orig/SConstruct 2017-05-20 12:46:18.718750000 +0800 +++ serf-1.3.9/SConstruct 2017-05-20 12:48:37.375000000 +0800 @@ -386,8 +386,11 @@ return env.MergeFlags(cmd, unique) env.ParseConfig('$GSSAPI --libs gssapi', parse_libs) env.Append(CPPDEFINES=['SERF_HAVE_GSSAPI']) -if sys.platform == 'win32': +if sys.platform == 'win32' or sys.platform == 'msys': env.Append(CPPDEFINES=['SERF_HAVE_SSPI']) + if sys.platform == 'msys': + env['SECUR32_LIBS'] = '-lsecur32' + env.Append(LIBS='secur32') # On some systems, the -R values that APR describes never make it into actual # RPATH flags. We'll manually map all directories in LIBPATH into new @@ -404,8 +407,9 @@ '@LIBDIR@': '$LIBDIR', '@INCLUDE_SUBDIR@': 'serf-%d' % (MAJOR,), '@VERSION@': '%d.%d.%d' % (MAJOR, MINOR, PATCH), - '@LIBS@': '%s %s %s -lz' % (apu_libs, apr_libs, - env.get('GSSAPI_LIBS', '')), + '@LIBS@': '%s %s %s %s -lz' % (apu_libs, apr_libs, + env.get('GSSAPI_LIBS', ''), + env.get('SECUR32_LIBS', '')), }) env.Default(lib_static, lib_shared, pkgconfig)