summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMark Brand <mabrand@mabrand.nl>2011-02-18 12:19:55 (GMT)
committerMark Brand <mabrand@mabrand.nl>2011-02-18 12:19:55 (GMT)
commit23dfd6d5807cabf9f66aabf462da9422dd5ae711 (patch)
treefcbe5a29aa017947648dc5818d627955f50022d2 /src
parente8fb5628e8382fa9259073651840c76ae128d033 (diff)
downloadmxe-23dfd6d5807cabf9f66aabf462da9422dd5ae711.zip
mxe-23dfd6d5807cabf9f66aabf462da9422dd5ae711.tar.gz
mxe-23dfd6d5807cabf9f66aabf462da9422dd5ae711.tar.bz2
upgrade package freetds to cvs
Diffstat (limited to 'src')
-rw-r--r--src/freetds-1-fastforward.patch1031
1 files changed, 1031 insertions, 0 deletions
diff --git a/src/freetds-1-fastforward.patch b/src/freetds-1-fastforward.patch
index 658392c..8b656d9 100644
--- a/src/freetds-1-fastforward.patch
+++ b/src/freetds-1-fastforward.patch
@@ -175321,3 +175321,1034 @@ index 641ef39..6316797 100644
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
+
+commit 84a50624c38aec2452a1b5cbb1cb040ce2823531
+Author: jklowden <jklowden>
+Date: Thu Feb 17 15:55:24 2011 +0000
+
+ default to Win32-Debug
+
+diff --git a/ChangeLog b/ChangeLog
+index e0dacf2..3e15a10 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,10 @@
++Thu Feb 17 10:51:40 EST 2011 JK Lowden <jklowden@freetds.org>
++ * Nmakefile default to Win32-Debug
++ * src/apps/bsqldb.c use sybfront.h, not sqlfront.h
++ * include/sybdb.h include/tds.h src/dblib/dblib.c
++ - src/tds/login.c
++ - indicate if TDS version automatically downgraded
++
+ Sat Feb 12 20:53:19 EST 2011 JK Lowden <jklowden@freetds.org>
+ * doc/userguide.sgml Add linker appendix
+
+@@ -3160,4 +3167,4 @@ Wed Jan 9 19:54:43 EST 2008 JK Lowden <jklowden@freetds.org>
+ * ChangeLog-0.82 added because of release
+
+ $FreeTDS$
+-$Id: ChangeLog,v 1.3197 2011/02/13 01:54:37 jklowden Exp $
++$Id: ChangeLog,v 1.3198 2011/02/17 15:55:24 jklowden Exp $
+diff --git a/Nmakefile b/Nmakefile
+index 6ad02e9..0b9e46c 100755
+--- a/Nmakefile
++++ b/Nmakefile
+@@ -1,4 +1,4 @@
+-# $Id: Nmakefile,v 1.7 2010/10/13 17:49:17 jklowden Exp $
++# $Id: Nmakefile,v 1.8 2011/02/17 15:55:24 jklowden Exp $
+ # Build FreeTDS and assorted utilities for Win32/Win64 without an IDE.
+ # Makefiles, unlike Visual Studio project files, are stable over time.
+ # Contributed to the public domain by James K. Lowden, February 2009
+@@ -13,6 +13,13 @@
+ # nmake.exe -f Nmakefile -nologo build-win32d
+ #
+
++!IFNDEF PLATFORM
++PLATFORM = Win32
++!ENDIF
++!IFNDEF CONFIGURATION
++CONFIGURATION = Debug
++!ENDIF
++
+ MKDIR = MD
+ MV = move /Y
+
+@@ -226,7 +233,7 @@ $(DBLIB_OUT) $(REPLACEMENTS_OUT) $(TDS_OUT) $(APPS_OUT):
+ # If it finds one, it enables the code to generate the header files.
+ #
+
+-!IF 0 == [dir /b /ad CVS]
++!IF 0 == [dir /b /ad CVS 2>NUL:]
+ #
+ # Generate distributed header files
+ #
+
+commit 407615535f2214151e5f4523375c676240337f71
+Author: jklowden <jklowden>
+Date: Thu Feb 17 15:55:28 2011 +0000
+
+ use sybfront.h, not sqlfront.h
+
+diff --git a/src/apps/bsqldb.c b/src/apps/bsqldb.c
+index 3601b36..0360abd 100644
+--- a/src/apps/bsqldb.c
++++ b/src/apps/bsqldb.c
+@@ -49,11 +49,11 @@
+ #include <locale.h>
+ #endif
+
+-#include <sqlfront.h>
++#include <sybfront.h>
+ #include <sybdb.h>
+ #include "replacements.h"
+
+-static char software_version[] = "$Id: bsqldb.c,v 1.47 2010/12/21 16:55:24 jklowden Exp $";
++static char software_version[] = "$Id: bsqldb.c,v 1.48 2011/02/17 15:55:28 jklowden Exp $";
+ static void *no_unused_var_warn[] = { software_version, no_unused_var_warn };
+
+ #ifdef _WIN32
+
+commit 7df4baa46eb629682521b51d377ef2a4c5cce8f8
+Author: jklowden <jklowden>
+Date: Thu Feb 17 15:55:36 2011 +0000
+
+ src/tds/login.c indicate if TDS version automatically downgraded
+
+diff --git a/include/sybdb.h b/include/sybdb.h
+index 24901d5..63be6a2 100644
+--- a/include/sybdb.h
++++ b/include/sybdb.h
+@@ -42,7 +42,7 @@ extern "C"
+ #define TDS_STATIC_CAST(type, a) ((type)(a))
+ #endif
+
+-static const char rcsid_sybdb_h[] = "$Id: sybdb.h,v 1.98 2011/01/25 06:18:53 jklowden Exp $";
++static const char rcsid_sybdb_h[] = "$Id: sybdb.h,v 1.99 2011/02/17 15:55:36 jklowden Exp $";
+ static const void *const no_unused_sybdb_h_warn[] = { rcsid_sybdb_h, no_unused_sybdb_h_warn };
+
+ #ifdef FALSE
+@@ -796,6 +796,7 @@ RETCODE dbstrcpy(DBPROCESS * dbproc, int start, int numbytes, char *dest);
+ int dbstrlen(DBPROCESS * dbproc);
+ DBINT dbvarylen(DBPROCESS * dbproc, int column);
+
++#define SYBEVERDOWN 100 /* TDS version downgraded . */
+ #define SYBEICONVIU 2400 /* Some character(s) could not be converted into client's character set. */
+ #define SYBEICONVAVAIL 2401 /* Character set conversion is not available between client character set '%.*s' and server character set '%.*s'.*/
+ #define SYBEICONVO 2402 /* Error converting characters into server's character set. Some character(s) could not be converted.*/
+diff --git a/include/tds.h b/include/tds.h
+index 3955b48..026b6e3 100644
+--- a/include/tds.h
++++ b/include/tds.h
+@@ -21,7 +21,7 @@
+ #ifndef _tds_h_
+ #define _tds_h_
+
+-/* $Id: tds.h,v 1.349 2011/01/17 22:27:40 freddy77 Exp $ */
++/* $Id: tds.h,v 1.350 2011/02/17 15:55:36 jklowden Exp $ */
+
+ #include <stdarg.h>
+ #include <stdio.h>
+@@ -283,6 +283,7 @@ enum tds_end
+ * in db-lib and ODBC. ct-lib maps them to ct-lib numbers (todo).
+ */
+ typedef enum { TDSEOK = TDS_SUCCEED,
++ TDSEVERDOWN = 100,
+ TDSEICONVIU = 2400,
+ TDSEICONVAVAIL = 2401,
+ TDSEICONVO = 2402,
+diff --git a/src/dblib/dblib.c b/src/dblib/dblib.c
+index 240b304..3d52154 100644
+--- a/src/dblib/dblib.c
++++ b/src/dblib/dblib.c
+@@ -75,7 +75,7 @@
+ #include <dmalloc.h>
+ #endif
+
+-TDS_RCSID(var, "$Id: dblib.c,v 1.377 2011/01/14 14:18:15 freddy77 Exp $");
++TDS_RCSID(var, "$Id: dblib.c,v 1.378 2011/02/17 15:55:36 jklowden Exp $");
+
+ static RETCODE _dbresults(DBPROCESS * dbproc);
+ static int _db_get_server_type(int bindtype);
+@@ -7515,7 +7515,8 @@ typedef struct _dblib_error_message
+ * an extra NULL to indicate a zero-length format string.
+ */
+ static const DBLIB_ERROR_MESSAGE dblib_error_messages[] =
+- { { SYBEICONVIU, EXCONVERSION, "Some character(s) could not be converted into client's character set\0" }
++ { { SYBEVERDOWN, EXINFO, "TDS version downgraded to '%1!'\0%s" }
++ , { SYBEICONVIU, EXCONVERSION, "Some character(s) could not be converted into client's character set\0" }
+ , { SYBEICONVAVAIL, EXCONVERSION, "Character set conversion is not available between client character set '%1!' and "
+ "server character set '%2!'\0%s %s" }
+ , { SYBEICONVO, EXCONVERSION, "Error converting characters into server's character set. Some character(s) could "
+
+commit cacaa90826e86dc8448559e1fac2dbbb079cfa8f
+Author: jklowden <jklowden>
+Date: Thu Feb 17 21:42:29 2011 +0000
+
+ more help for building under Windows
+
+diff --git a/ChangeLog b/ChangeLog
+index 3e15a10..aed712d 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,6 @@
++Thu Feb 17 16:40:58 EST 2011 JK Lowden <jklowden@freetds.org>
++ * Nmakefile more help for building under Windows
++
+ Thu Feb 17 10:51:40 EST 2011 JK Lowden <jklowden@freetds.org>
+ * Nmakefile default to Win32-Debug
+ * src/apps/bsqldb.c use sybfront.h, not sqlfront.h
+@@ -3167,4 +3170,4 @@ Wed Jan 9 19:54:43 EST 2008 JK Lowden <jklowden@freetds.org>
+ * ChangeLog-0.82 added because of release
+
+ $FreeTDS$
+-$Id: ChangeLog,v 1.3198 2011/02/17 15:55:24 jklowden Exp $
++$Id: ChangeLog,v 1.3199 2011/02/17 21:42:29 jklowden Exp $
+diff --git a/Nmakefile b/Nmakefile
+index 0b9e46c..1ec03d1 100755
+--- a/Nmakefile
++++ b/Nmakefile
+@@ -1,389 +1,17 @@
+-# $Id: Nmakefile,v 1.8 2011/02/17 15:55:24 jklowden Exp $
+-# Build FreeTDS and assorted utilities for Win32/Win64 without an IDE.
+-# Makefiles, unlike Visual Studio project files, are stable over time.
+-# Contributed to the public domain by James K. Lowden, February 2009
++# $Id: Nmakefile,v 1.9 2011/02/17 21:42:29 jklowden Exp $
++OTHERS = Release\BcpStreams.lib x64\Debug\BcpStreams.lib x64\Release\BcpStreams.lib
+
+-# Define in the environment or on the command line:
+-# 1. CONFIGURATION = debug/release
+-# 2. PLATFORM = win32/x64
+-# These will determine what is built and where outputs are placed.
+-#
+-# Example invocations:
+-# nmake.exe -f Nmakefile -nologo PLATFORM=win32 CONFIGURATION=debug
+-# nmake.exe -f Nmakefile -nologo build-win32d
+-#
++all: Debug\BcpStreams.lib $(OTHERS)
+
+-!IFNDEF PLATFORM
+-PLATFORM = Win32
+-!ENDIF
+-!IFNDEF CONFIGURATION
+-CONFIGURATION = Debug
+-!ENDIF
+-
+-MKDIR = MD
+-MV = move /Y
+-
+-DBLIB_DIR = src\dblib
+-REPLACEMENTS_DIR = src\replacements
+-TDS_DIR = src\tds
+-APPS_DIR = src\apps
+-
+-DBLIB_OUT = $(DBLIB_DIR)\$(PLATFORM)\$(CONFIGURATION)
+-REPLACEMENTS_OUT = $(REPLACEMENTS_DIR)\$(PLATFORM)\$(CONFIGURATION)
+-TDS_OUT = $(TDS_DIR)\$(PLATFORM)\$(CONFIGURATION)
+-APPS_OUT = $(APPS_DIR)\$(PLATFORM)\$(CONFIGURATION)
+-
+-DBLIB_SRC = $(DBLIB_DIR)\bcp.c \
+- $(DBLIB_DIR)\dblib.c \
+- $(DBLIB_DIR)\dbopen.c \
+- $(DBLIB_DIR)\dbutil.c \
+- $(DBLIB_DIR)\rpc.c \
+- $(DBLIB_DIR)\xact.c
+-
+-DBLIB_OBJ = $(DBLIB_OUT)\bcp.obj \
+- $(DBLIB_OUT)\dblib.obj \
+- $(DBLIB_OUT)\dbopen.obj \
+- $(DBLIB_OUT)\dbutil.obj \
+- $(DBLIB_OUT)\rpc.obj \
+- $(DBLIB_OUT)\xact.obj
+-
+-REPLACEMENTS_SRC = $(REPLACEMENTS_DIR)\asprintf.c \
+- $(REPLACEMENTS_DIR)\basename.c \
+- $(REPLACEMENTS_DIR)\fakepoll.c \
+- $(REPLACEMENTS_DIR)\gettimeofday.c \
+- $(REPLACEMENTS_DIR)\getopt.c \
+- $(REPLACEMENTS_DIR)\iconv.c \
+- $(REPLACEMENTS_DIR)\readpassphrase.c \
+- $(REPLACEMENTS_DIR)\strlcat.c \
+- $(REPLACEMENTS_DIR)\strlcpy.c \
+- $(REPLACEMENTS_DIR)\strtok_r.c \
+- $(REPLACEMENTS_DIR)\vasprintf.c
+-
+-REPLACEMENTS_OBJ = $(REPLACEMENTS_OUT)\asprintf.obj \
+- $(REPLACEMENTS_OUT)\basename.obj \
+- $(REPLACEMENTS_OUT)\fakepoll.obj \
+- $(REPLACEMENTS_OUT)\gettimeofday.obj \
+- $(REPLACEMENTS_OUT)\getopt.obj \
+- $(REPLACEMENTS_OUT)\iconv.obj \
+- $(REPLACEMENTS_OUT)\readpassphrase.obj \
+- $(REPLACEMENTS_OUT)\strlcat.obj \
+- $(REPLACEMENTS_OUT)\strlcpy.obj \
+- $(REPLACEMENTS_OUT)\strtok_r.obj \
+- $(REPLACEMENTS_OUT)\vasprintf.obj
+-
+-TDS_SRC = $(TDS_DIR)\bulk.c \
+- $(TDS_DIR)\challenge.c \
+- $(TDS_DIR)\config.c \
+- $(TDS_DIR)\convert.c \
+- $(TDS_DIR)\data.c \
+- $(TDS_DIR)\des.c \
+- $(TDS_DIR)\getmac.c \
+- $(TDS_DIR)\gssapi.c \
+- $(TDS_DIR)\hmac_md5.c \
+- $(TDS_DIR)\iconv.c \
+- $(TDS_DIR)\locale.c \
+- $(TDS_DIR)\log.c \
+- $(TDS_DIR)\login.c \
+- $(TDS_DIR)\md4.c \
+- $(TDS_DIR)\md5.c \
+- $(TDS_DIR)\mem.c \
+- $(TDS_DIR)\net.c \
+- $(TDS_DIR)\numeric.c \
+- $(TDS_DIR)\query.c \
+- $(TDS_DIR)\read.c \
+- $(TDS_DIR)\sspi.c \
+- $(TDS_DIR)\tds_checks.c \
+- $(TDS_DIR)\tdsstring.c \
+- $(TDS_DIR)\threadsafe.c \
+- $(TDS_DIR)\token.c \
+- $(TDS_DIR)\util.c \
+- $(TDS_DIR)\vstrbuild.c \
+- $(TDS_DIR)\win_mutex.c \
+- $(TDS_DIR)\write.c
+-
+-TDS_OBJ = $(TDS_OUT)\bulk.obj \
+- $(TDS_OUT)\challenge.obj \
+- $(TDS_OUT)\config.obj \
+- $(TDS_OUT)\convert.obj \
+- $(TDS_OUT)\data.obj \
+- $(TDS_OUT)\des.obj \
+- $(TDS_OUT)\getmac.obj \
+- $(TDS_OUT)\gssapi.obj \
+- $(TDS_OUT)\hmac_md5.obj \
+- $(TDS_OUT)\iconv.obj \
+- $(TDS_OUT)\locale.obj \
+- $(TDS_OUT)\log.obj \
+- $(TDS_OUT)\login.obj \
+- $(TDS_OUT)\md4.obj \
+- $(TDS_OUT)\md5.obj \
+- $(TDS_OUT)\mem.obj \
+- $(TDS_OUT)\net.obj \
+- $(TDS_OUT)\numeric.obj \
+- $(TDS_OUT)\query.obj \
+- $(TDS_OUT)\read.obj \
+- $(TDS_OUT)\sspi.obj \
+- $(TDS_OUT)\tds_checks.obj \
+- $(TDS_OUT)\tdsstring.obj \
+- $(TDS_OUT)\threadsafe.obj \
+- $(TDS_OUT)\token.obj \
+- $(TDS_OUT)\util.obj \
+- $(TDS_OUT)\vstrbuild.obj \
+- $(TDS_OUT)\win_mutex.obj \
+- $(TDS_OUT)\write.obj
+-
+-# not yet: $(APPS_DIR)\bsqlodbc.c
+-
+-APPS_SRC = $(APPS_DIR)\bsqldb.c \
+- $(APPS_DIR)\datacopy.c \
+- $(APPS_DIR)\defncopy.c \
+- $(APPS_DIR)\freebcp.c \
+- $(APPS_DIR)\tsql.c
+-
+-APPS_OBJ = $(APPS_OUT)\bsqldb.obj \
+- $(APPS_OUT)\datacopy.obj \
+- $(APPS_OUT)\defncopy.obj \
+- $(APPS_OUT)\freebcp.obj \
+- $(APPS_OUT)\tsql.obj
+-
+-APPS_EXE = $(APPS_OUT)\bsqldb.exe \
+- $(APPS_OUT)\datacopy.exe \
+- $(APPS_OUT)\defncopy.exe \
+- $(APPS_OUT)\freebcp.exe \
+- $(APPS_OUT)\tsql.exe
+-
+-db-lib: $(DBLIB_OUT)\db-lib.lib
+-
+-apps: $(DBLIB_OUT)\db-lib.lib $(APPS_EXE)
+-tsql: $(APPS_OUT)\tsql.exe
+-bsqldb: $(APPS_OUT)\bsqldb.exe
+-help:
+- @echo targets: db-lib, apps, tsql, bsqldb
+-
+-##(APPS_OUT)\bsqldb.exe: $(APPS_DIR)\bsqldb.exe $(DBLIB_OUT)\db-lib.lib
+-# Don't know how to create this dependency without explicitly defining every output.
+-
+-#
+-# Sadly the environment settings for building for different architectures
+-# is undocumented. Microsoft's directions are to run the requisite
+-# batch file without explaining what it does. While it's possible to
+-# read the file -- and it's not complicated -- it's impossible to
+-# know the purpose of setting PATH/INCLUDE/LIB just so. Worse, the
+-# settings are per-machine, and if the file is lost, the only way to
+-# recreate it is to reinstall the compiler.
+-#
+-# The "solution" is to follow their advice. Run vcvarsall.bat with the
+-# appropriate argument to set up the environment, and go from there.
+-#
+-# As of this writing, the variables are:
+-# x86 Native: Vcvarsall "x86"
+-# x64 Native: Vcvarsall "amd64"
+-# x64 Cross: Vcvarsall "x86_amd64"
+-#
+-
+-# Check that cl.exe is in the PATH. Cf. "help FOR" to see how this works.
+-# See above comments regarding environment setup.
+-#
+-COMPILER = cl.exe
+-!IF 0 != [for /f %I in ("$(COMPILER)") DO @dir /b "%~dp$$PATH:I\$(COMPILER)" > NUL:]
+-!MESSAGE cl.exe not in PATH
+-!ERROR Perhaps run vcvarsall.bat to set up the command-line development environment?
+-!ENDIF
+-
+-all: build-win32d build-win32r build-win64d build-win64r
+-
+-build-win32d:
+- $(MAKE) -fNmakefile -nologo apps PLATFORM=win32 CONFIGURATION=debug
+-build-win32r:
+- $(MAKE) -fNmakefile -nologo apps PLATFORM=win32 CONFIGURATION=release
+-build-win64d:
+- $(MAKE) -fNmakefile -nologo apps PLATFORM=win64 CONFIGURATION=debug
+-build-win64r:
+- $(MAKE) -fNmakefile -nologo apps PLATFORM=win64 CONFIGURATION=release
+-
+-clean:
+- @if "" equ "$(PLATFORM)" PLATFORM not defined, see comments in Nmakefile >&2 && exit 1
+- @if "" equ "$(CONFIGURATION)" CONFIGURATION not defined, see comments in Nmakefile >&2 && exit 1
+- if exist $(DBLIB_OUT) del /q $(DBLIB_OUT)\*.obj
+- if exist $(REPLACEMENTS_OUT) del /q $(REPLACEMENTS_OUT)\*.obj
+- if exist $(TDS_OUT) del /q $(TDS_OUT)\*.obj
+- if exist $(APPS_OUT) del /q $(APPS_OUT)\*.obj $(APPS_OUT)\*.exe
+-
+-clean-app:
+- @if "" equ "$(PLATFORM)" PLATFORM not defined, see comments in Nmakefile >&2 && exit 1
+- @if "" equ "$(CONFIGURATION)" CONFIGURATION not defined, see comments in Nmakefile >&2 && exit 1
+- if exist $(APPS_OUT) del /q $(APPS_OUT)\*.obj $(APPS_OUT)\*.exe
+-
+-# Create output directories
+-$(DBLIB_OUT) $(REPLACEMENTS_OUT) $(TDS_OUT) $(APPS_OUT):
+- @echo creating output directory for configuration: "$(PLATFORM)|$(CONFIGURATION)"
+- @if "" equ "$(PLATFORM)" PLATFORM not defined, see comments in Nmakefile >&2 && exit 1
+- @if "" equ "$(CONFIGURATION)" CONFIGURATION not defined, see comments in Nmakefile >&2 && exit 1
+- $(MKDIR) $@
+-
+-#
+-# Some header files are generated with Perl for consistency.
+-# The Perl scripts are maintained in CVS, and someone developing
+-# with CVS needs Perl to build FreeTDS.
+-#
+-# To avoid any dependency on Perl for everyone else, the
+-# distribution tarball contains the pre-generated files.
+-#
+-# The preprocessing test below checks for the existence of a CVS
+-# directory, which wouldn't be present in a freshly unpacked tarball.
+-# If it finds one, it enables the code to generate the header files.
+-#
+-
+-!IF 0 == [dir /b /ad CVS 2>NUL:]
+-#
+-# Generate distributed header files
+-#
+-include\tdsver.h:
+- perl -e"@a=localtime; printf qq(#undef TDS_VERSION_NO\n#define TDS_VERSION_NO \"freetds v0.83.dev.%d%02d%02d\"\n), 1900+$$a[5], 1+$$a[-1], $$a[3]" \
+- > $@.err
+- move /Y $@.err $@
+-
+-src\tds\types.h:
+- perl src\tds\types.pl misc\types.txt > $@.err
+- move /Y $@.err $@
+-
+-src\tds\tds_willconvert.h: src\tds\tds_willconvert.pl
+- perl src\tds\tds_willconvert.pl > $@.tmp
+- $(MV) $@.tmp $@
+-
+-src\tds\encodings.h: src\tds\encodings.pl src\tds\alternative_character_sets.h
+- perl src\tds\encodings.pl src\tds > $@.tmp 2> NUL:
+- $(MV) $@.tmp $@
+-
+-src\tds\num_limits.h: src\tds\num_limits.pl
+- perl src\tds\num_limits.pl > $@.tmp
+- $(MV) $@.tmp $@
+-!ENDIF
+-
+-GENERATED_FILES = include\tdsver.h src\tds\types.h \
+- src\tds\tds_willconvert.h src\tds\encodings.h src\tds\num_limits.h
+-
+-$(DBLIB_OUT)\db-lib.lib: $(GENERATED_FILES) $(DBLIB_OUT) $(DBLIB_OBJ) $(REPLACEMENTS_OUT)\replacements.lib $(TDS_OUT)\tds.lib
+- @echo building $@ >&2
+- lib -nologo -out:"$@" $(DBLIB_OBJ) \
+- $(REPLACEMENTS_OUT)\replacements.lib \
+- $(TDS_OUT)\tds.lib
+-$(REPLACEMENTS_OUT)\replacements.lib: $(REPLACEMENTS_OUT) $(REPLACEMENTS_OBJ)
+- lib -nologo -out:"$@" $(REPLACEMENTS_OBJ)
+-$(TDS_OUT)\tds.lib: $(TDS_OUT) $(TDS_OBJ)
+- lib -nologo -out:"$@" $(TDS_OBJ)
+-
+-#
+-# set compiler flags
+-#
+-INC = -I "include" -I "win32" -I "include\x64"
+-FLG = -nologo -W3 -Wp64 -EHsc -TC -Gm -errorReport:prompt
+-DEF = -D "_MBCS" -D "_LIB" -D "WIN32" \
+- -D "_CRT_SECURE_NO_WARNINGS" -D _CRT_NONSTDC_NO_DEPRECATE \
+- -D "HAVE_CONFIG_H" \
+- -D "_FREETDS_LIBRARY_SOURCE"
+-DBG = -MTd -Od -D "_DEBUG" -ZI -RTC1
+-REL = -MT -O2 -D "_NDEBUG" -Zi
+-
+-MSLIBS = Ws2_32.lib shell32.lib
+-
+-CC = cl $(CFLAGS) $(FLG) $(DEF) $(INC)
+-CC32 = $(CC)
+-CC64 = $(CC)
+-
+-## Rules ##
+-
+-#
+-# dblib
+-#
+-#c.{$(DBLIB_DIR)\win32\debug}.obj::
+-{$(DBLIB_DIR)}.c{$(DBLIB_DIR)\win32\debug}.obj::
+- $(CC32) -c $(DBG) -Fo"$(DBLIB_OUT)\\" \
+- -Fd"$(DBLIB_OUT)\vc80.pdb" \
+- $<
+-
+-{$(DBLIB_DIR)\}.c{$(DBLIB_DIR)\win32\release}.obj::
+- $(CC32) -c $(REL) -Fo"$(DBLIB_OUT)\\" \
+- -Fd"$(DBLIB_OUT)\vc80.pdb" \
+- $<
+-
+-{$(DBLIB_DIR)}.c{$(DBLIB_DIR)\x64\debug}.obj::
+- $(CC64) -c $(DBG) -Fo"$(DBLIB_OUT)\\" \
+- -Fd"$(DBLIB_OUT)\vc80.pdb" \
+- $<
+-
+-{$(DBLIB_DIR)}.c{$(DBLIB_DIR)\x64\release}.obj::
+- $(CC64) -c $(REL) -Fo"$(DBLIB_OUT)\\" \
+- -Fd"$(DBLIB_OUT)\vc80.pdb" \
+- $<
+-
+-#
+-# replacements
+-#
+-{$(REPLACEMENTS_DIR)}.c{$(REPLACEMENTS_DIR)\win32\debug}.obj::
+- $(CC32) -c $(DBG) -Fo"$(REPLACEMENTS_OUT)\\" \
+- -Fd"$(REPLACEMENTS_OUT)\vc80.pdb" \
+- $<
+-
+-{$(REPLACEMENTS_DIR)}.c{$(REPLACEMENTS_DIR)\win32\release}.obj::
+- $(CC32) -c $(REL) -Fo"$(REPLACEMENTS_OUT)\\" \
+- -Fd"$(REPLACEMENTS_OUT)\vc80.pdb" \
+- $<
+-
+-{$(REPLACEMENTS_DIR)}.c{$(REPLACEMENTS_DIR)\x64\debug}.obj::
+- $(CC64) -c $(DBG) -Fo"$(REPLACEMENTS_OUT)\\" \
+- -Fd"$(REPLACEMENTS_OUT)\vc80.pdb" \
+- $<
+-
+-{$(REPLACEMENTS_DIR)}.c{$(REPLACEMENTS_DIR)\x64\release}.obj::
+- $(CC64) -c $(REL) -Fo"$(REPLACEMENTS_OUT)\\" \
+- -Fd"$(REPLACEMENTS_OUT)\vc80.pdb" \
+- $<
+-
+-#
+-# tds
+-#
+-{$(TDS_DIR)}.c{$(TDS_DIR)\win32\debug}.obj::
+- $(CC32) -c $(DBG) -Fo"$(TDS_OUT)\\" \
+- -Fd"$(TDS_OUT)\vc80.pdb" \
+- $<
+-
+-{$(TDS_DIR)}.c{$(TDS_DIR)\win32\release}.obj::
+- $(CC32) -c $(REL) -Fo"$(TDS_OUT)\\" \
+- -Fd"$(TDS_OUT)\vc80.pdb" \
+- $<
+-
+-{$(TDS_DIR)}.c{$(TDS_DIR)\x64\debug}.obj::
+- $(CC64) -c $(DBG) -Fo"$(TDS_OUT)\\" \
+- -Fd"$(TDS_OUT)\vc80.pdb" \
+- $<
+-
+-{$(TDS_DIR)}.c{$(TDS_DIR)\x64\release}.obj::
+- $(CC64) -c $(REL) -Fo"$(TDS_OUT)\\" \
+- -Fd"$(TDS_OUT)\vc80.pdb" \
+- $<
+-
+-#
+-# Utilities
+-#
+-$(APPS_EXE): $(DBLIB_OUT)\db-lib.lib
+-
+-{$(APPS_DIR)}.c{$(APPS_DIR)\win32\debug}.exe:
+- @if not exist $(APPS_OUT) $(MKDIR) $(APPS_OUT)
+- $(CC32) $(DBG) -Fd"$(APPS_OUT)\vc80.pdb" -Fe$@ \
+- $< -link -LIBPATH:$(DBLIB_OUT) db-lib.lib $(MSLIBS)
++$(OTHERS):
++ vcbuild BcpStreams.sln
+
+-{$(APPS_DIR)\}.c{$(APPS_DIR)\win32\release}.exe:
+- @if not exist $(APPS_OUT) $(MKDIR) $(APPS_OUT)
+- $(CC32) $(REL) -Fe$@ -Fd"$(APPS_OUT)\vc80.pdb" \
+- $< -link -LIBPATH:$(DBLIB_OUT) db-lib.lib $(MSLIBS)
+-
+-{$(APPS_DIR)}.c{$(APPS_DIR)\x64\debug}.exe:
+- @if not exist $(APPS_OUT) $(MKDIR) $(APPS_OUT)
+- $(CC64) $(DBG) -Fe$@ -Fd"$(APPS_OUT)\vc80.pdb" \
+- $< -link -LIBPATH:$(DBLIB_OUT) db-lib.lib $(MSLIBS)
++debug32: Debug\BcpStreams.lib
+
+-{$(APPS_DIR)}.c{$(APPS_DIR)\x64\release}.exe:
+- @if not exist $(APPS_OUT) $(MKDIR) $(APPS_OUT)
+- $(CC64) $(REL) -Fe$@ -Fd"$(APPS_OUT)\vc80.pdb" \
+- $< -link -LIBPATH:$(DBLIB_OUT) db-lib.lib $(MSLIBS)
++Debug\BcpStreams.lib:
++ vcbuild BcpStreams.sln "Debug|Win32"
+
++# DebugST\BcpStreams.lib
++# Release\BcpStreams.lib
++# x64\Debug\BcpStreams.lib
++# x64\Release\BcpStreams.lib
+\ No newline at end of file
+diff --git a/src/tds/login.c b/src/tds/login.c
+index 9cdb942..bc25aac 100644
+--- a/src/tds/login.c
++++ b/src/tds/login.c
+@@ -51,7 +51,7 @@
+ #include <dmalloc.h>
+ #endif
+
+-TDS_RCSID(var, "$Id: login.c,v 1.201 2010/11/30 10:55:43 freddy77 Exp $");
++TDS_RCSID(var, "$Id: login.c,v 1.202 2011/02/17 21:42:29 jklowden Exp $");
+
+ static int tds_send_login(TDSSOCKET * tds, TDSCONNECTION * connection);
+ static int tds8_do_login(TDSSOCKET * tds, TDSCONNECTION * connection);
+@@ -333,8 +333,10 @@ tds_connect(TDSSOCKET * tds, TDSCONNECTION * connection, int *p_oserr)
+ };
+
+ /* disable tds9 if iconv wanted, currently not supported */
+- if (IS_TDS72_PLUS(connection) && tds->use_iconv)
++ if (IS_TDS72_PLUS(connection) && tds->use_iconv) {
+ connection->tds_version = 0x701;
++ tdserror(tds->tds_ctx, tds, TDSEVERDOWN, 0);
++ }
+
+ if (TDS_MAJOR(connection) == 0) {
+ unsigned int i;
+
+commit 6fc48ae463c4058ec1c89e368c19fa2b8846523f
+Author: jklowden <jklowden>
+Date: Thu Feb 17 22:12:22 2011 +0000
+
+ fix oops
+
+diff --git a/Nmakefile b/Nmakefile
+index 1ec03d1..f2d0060 100755
+--- a/Nmakefile
++++ b/Nmakefile
+@@ -1,17 +1,392 @@
+-# $Id: Nmakefile,v 1.9 2011/02/17 21:42:29 jklowden Exp $
+-OTHERS = Release\BcpStreams.lib x64\Debug\BcpStreams.lib x64\Release\BcpStreams.lib
++# $Id: Nmakefile,v 1.10 2011/02/17 22:12:22 jklowden Exp $
++# Build FreeTDS and assorted utilities for Win32/Win64 without an IDE.
++# Makefiles, unlike Visual Studio project files, are stable over time.
++# Contributed to the public domain by James K. Lowden, February 2009
+
+-all: Debug\BcpStreams.lib $(OTHERS)
++# Define in the environment or on the command line:
++# 1. CONFIGURATION = debug/release
++# 2. PLATFORM = win32/x64
++# These will determine what is built and where outputs are placed.
++#
++# Example invocations:
++# nmake.exe -f Nmakefile -nologo PLATFORM=win32 CONFIGURATION=debug
++# nmake.exe -f Nmakefile -nologo build-win32d
++#
+
+-$(OTHERS):
+- vcbuild BcpStreams.sln
++!IFNDEF PLATFORM
++PLATFORM = Win32
++!ENDIF
++!IFNDEF CONFIGURATION
++CONFIGURATION = Debug
++!ENDIF
++
++MKDIR = MD
++MV = move /Y
++
++DBLIB_DIR = src\dblib
++REPLACEMENTS_DIR = src\replacements
++TDS_DIR = src\tds
++APPS_DIR = src\apps
++
++DBLIB_OUT = $(DBLIB_DIR)\$(PLATFORM)\$(CONFIGURATION)
++REPLACEMENTS_OUT = $(REPLACEMENTS_DIR)\$(PLATFORM)\$(CONFIGURATION)
++TDS_OUT = $(TDS_DIR)\$(PLATFORM)\$(CONFIGURATION)
++APPS_OUT = $(APPS_DIR)\$(PLATFORM)\$(CONFIGURATION)
++
++DBLIB_SRC = $(DBLIB_DIR)\bcp.c \
++ $(DBLIB_DIR)\dblib.c \
++ $(DBLIB_DIR)\dbopen.c \
++ $(DBLIB_DIR)\dbutil.c \
++ $(DBLIB_DIR)\rpc.c \
++ $(DBLIB_DIR)\xact.c
++
++DBLIB_OBJ = $(DBLIB_OUT)\bcp.obj \
++ $(DBLIB_OUT)\dblib.obj \
++ $(DBLIB_OUT)\dbopen.obj \
++ $(DBLIB_OUT)\dbutil.obj \
++ $(DBLIB_OUT)\rpc.obj \
++ $(DBLIB_OUT)\xact.obj
++
++REPLACEMENTS_SRC = $(REPLACEMENTS_DIR)\asprintf.c \
++ $(REPLACEMENTS_DIR)\basename.c \
++ $(REPLACEMENTS_DIR)\fakepoll.c \
++ $(REPLACEMENTS_DIR)\gettimeofday.c \
++ $(REPLACEMENTS_DIR)\getopt.c \
++ $(REPLACEMENTS_DIR)\iconv.c \
++ $(REPLACEMENTS_DIR)\readpassphrase.c \
++ $(REPLACEMENTS_DIR)\strlcat.c \
++ $(REPLACEMENTS_DIR)\strlcpy.c \
++ $(REPLACEMENTS_DIR)\strtok_r.c \
++ $(REPLACEMENTS_DIR)\vasprintf.c
++
++REPLACEMENTS_OBJ = $(REPLACEMENTS_OUT)\asprintf.obj \
++ $(REPLACEMENTS_OUT)\basename.obj \
++ $(REPLACEMENTS_OUT)\fakepoll.obj \
++ $(REPLACEMENTS_OUT)\gettimeofday.obj \
++ $(REPLACEMENTS_OUT)\getopt.obj \
++ $(REPLACEMENTS_OUT)\iconv.obj \
++ $(REPLACEMENTS_OUT)\readpassphrase.obj \
++ $(REPLACEMENTS_OUT)\strlcat.obj \
++ $(REPLACEMENTS_OUT)\strlcpy.obj \
++ $(REPLACEMENTS_OUT)\strtok_r.obj \
++ $(REPLACEMENTS_OUT)\vasprintf.obj
++
++TDS_SRC = $(TDS_DIR)\bulk.c \
++ $(TDS_DIR)\challenge.c \
++ $(TDS_DIR)\config.c \
++ $(TDS_DIR)\convert.c \
++ $(TDS_DIR)\data.c \
++ $(TDS_DIR)\des.c \
++ $(TDS_DIR)\getmac.c \
++ $(TDS_DIR)\gssapi.c \
++ $(TDS_DIR)\hmac_md5.c \
++ $(TDS_DIR)\iconv.c \
++ $(TDS_DIR)\locale.c \
++ $(TDS_DIR)\log.c \
++ $(TDS_DIR)\login.c \
++ $(TDS_DIR)\md4.c \
++ $(TDS_DIR)\md5.c \
++ $(TDS_DIR)\mem.c \
++ $(TDS_DIR)\net.c \
++ $(TDS_DIR)\numeric.c \
++ $(TDS_DIR)\ptw32_MCS_lock.c \
++ $(TDS_DIR)\query.c \
++ $(TDS_DIR)\read.c \
++ $(TDS_DIR)\sspi.c \
++ $(TDS_DIR)\tds_checks.c \
++ $(TDS_DIR)\tdsstring.c \
++ $(TDS_DIR)\threadsafe.c \
++ $(TDS_DIR)\token.c \
++ $(TDS_DIR)\util.c \
++ $(TDS_DIR)\vstrbuild.c \
++ $(TDS_DIR)\win_mutex.c \
++ $(TDS_DIR)\write.c
++
++TDS_OBJ = $(TDS_OUT)\bulk.obj \
++ $(TDS_OUT)\challenge.obj \
++ $(TDS_OUT)\config.obj \
++ $(TDS_OUT)\convert.obj \
++ $(TDS_OUT)\data.obj \
++ $(TDS_OUT)\des.obj \
++ $(TDS_OUT)\getmac.obj \
++ $(TDS_OUT)\gssapi.obj \
++ $(TDS_OUT)\hmac_md5.obj \
++ $(TDS_OUT)\iconv.obj \
++ $(TDS_OUT)\locale.obj \
++ $(TDS_OUT)\log.obj \
++ $(TDS_OUT)\login.obj \
++ $(TDS_OUT)\md4.obj \
++ $(TDS_OUT)\md5.obj \
++ $(TDS_OUT)\mem.obj \
++ $(TDS_OUT)\net.obj \
++ $(TDS_OUT)\numeric.obj \
++ $(TDS_OUT)\ptw32_MCS_lock.obj \
++ $(TDS_OUT)\query.obj \
++ $(TDS_OUT)\read.obj \
++ $(TDS_OUT)\sspi.obj \
++ $(TDS_OUT)\tds_checks.obj \
++ $(TDS_OUT)\tdsstring.obj \
++ $(TDS_OUT)\threadsafe.obj \
++ $(TDS_OUT)\token.obj \
++ $(TDS_OUT)\util.obj \
++ $(TDS_OUT)\vstrbuild.obj \
++ $(TDS_OUT)\win_mutex.obj \
++ $(TDS_OUT)\write.obj
++
++# not yet: $(APPS_DIR)\bsqlodbc.c
++
++APPS_SRC = $(APPS_DIR)\bsqldb.c \
++ $(APPS_DIR)\datacopy.c \
++ $(APPS_DIR)\defncopy.c \
++ $(APPS_DIR)\freebcp.c \
++ $(APPS_DIR)\tsql.c
++
++APPS_OBJ = $(APPS_OUT)\bsqldb.obj \
++ $(APPS_OUT)\datacopy.obj \
++ $(APPS_OUT)\defncopy.obj \
++ $(APPS_OUT)\freebcp.obj \
++ $(APPS_OUT)\tsql.obj
++
++APPS_EXE = $(APPS_OUT)\bsqldb.exe \
++ $(APPS_OUT)\datacopy.exe \
++ $(APPS_OUT)\defncopy.exe \
++ $(APPS_OUT)\freebcp.exe \
++ $(APPS_OUT)\tsql.exe
++
++db-lib: $(DBLIB_OUT)\db-lib.lib
++
++apps: $(DBLIB_OUT)\db-lib.lib $(APPS_EXE)
++tsql: $(APPS_OUT)\tsql.exe
++bsqldb: $(APPS_OUT)\bsqldb.exe
++help:
++ @echo targets: db-lib, apps, tsql, bsqldb
++
++##(APPS_OUT)\bsqldb.exe: $(APPS_DIR)\bsqldb.exe $(DBLIB_OUT)\db-lib.lib
++# Don't know how to create this dependency without explicitly defining every output.
++
++#
++# Sadly the environment settings for building for different architectures
++# is undocumented. Microsoft's directions are to run the requisite
++# batch file without explaining what it does. While it's possible to
++# read the file -- and it's not complicated -- it's impossible to
++# know the purpose of setting PATH/INCLUDE/LIB just so. Worse, the
++# settings are per-machine, and if the file is lost, the only way to
++# recreate it is to reinstall the compiler.
++#
++# The "solution" is to follow their advice. Run vcvarsall.bat with the
++# appropriate argument to set up the environment, and go from there.
++#
++# As of this writing, the variables are:
++# x86 Native: Vcvarsall "x86"
++# x64 Native: Vcvarsall "amd64"
++# x64 Cross: Vcvarsall "x86_amd64"
++#
++
++# Check that cl.exe is in the PATH. Cf. "help FOR" to see how this works.
++# See above comments regarding environment setup.
++#
++COMPILER = cl.exe
++!IF 0 != [for /f %I in ("$(COMPILER)") DO @dir /b "%~dp$$PATH:I\$(COMPILER)" > NUL:]
++!MESSAGE cl.exe not in PATH
++!ERROR Perhaps run vcvarsall.bat to set up the command-line development environment?
++!ENDIF
++
++all: build-win32d build-win32r build-win64d build-win64r
++
++build-win32d:
++ $(MAKE) -fNmakefile -nologo apps PLATFORM=win32 CONFIGURATION=debug
++build-win32r:
++ $(MAKE) -fNmakefile -nologo apps PLATFORM=win32 CONFIGURATION=release
++build-win64d:
++ $(MAKE) -fNmakefile -nologo apps PLATFORM=win64 CONFIGURATION=debug
++build-win64r:
++ $(MAKE) -fNmakefile -nologo apps PLATFORM=win64 CONFIGURATION=release
++
++clean:
++ @if "" equ "$(PLATFORM)" PLATFORM not defined, see comments in Nmakefile >&2 && exit 1
++ @if "" equ "$(CONFIGURATION)" CONFIGURATION not defined, see comments in Nmakefile >&2 && exit 1
++ if exist $(DBLIB_OUT) del /q $(DBLIB_OUT)\*.obj $(DBLIB_OUT)\*.lib
++ if exist $(REPLACEMENTS_OUT) del /q $(REPLACEMENTS_OUT)\*.obj $(REPLACEMENTS_OUT)\*.lib
++ if exist $(TDS_OUT) del /q $(TDS_OUT)\*.obj $(TDS_OUT)\*.lib
++ if exist $(APPS_OUT) del /q $(APPS_OUT)\*.obj $(APPS_OUT)\*.exe
++
++clean-app:
++ @if "" equ "$(PLATFORM)" PLATFORM not defined, see comments in Nmakefile >&2 && exit 1
++ @if "" equ "$(CONFIGURATION)" CONFIGURATION not defined, see comments in Nmakefile >&2 && exit 1
++ if exist $(APPS_OUT) del /q $(APPS_OUT)\*.obj $(APPS_OUT)\*.exe
++
++# Create output directories
++$(DBLIB_OUT) $(REPLACEMENTS_OUT) $(TDS_OUT) $(APPS_OUT):
++ @echo creating output directory for configuration: "$(PLATFORM)|$(CONFIGURATION)"
++ @if "" equ "$(PLATFORM)" PLATFORM not defined, see comments in Nmakefile >&2 && exit 1
++ @if "" equ "$(CONFIGURATION)" CONFIGURATION not defined, see comments in Nmakefile >&2 && exit 1
++ $(MKDIR) $@
++
++#
++# Some header files are generated with Perl for consistency.
++# The Perl scripts are maintained in CVS, and someone developing
++# with CVS needs Perl to build FreeTDS.
++#
++# To avoid any dependency on Perl for everyone else, the
++# distribution tarball contains the pre-generated files.
++#
++# The preprocessing test below checks for the existence of a CVS
++# directory, which wouldn't be present in a freshly unpacked tarball.
++# If it finds one, it enables the code to generate the header files.
++#
++
++!IF 0 == [dir /b /ad CVS 2>NUL:]
++#
++# Generate distributed header files
++#
++include\tdsver.h:
++ perl -e"@a=localtime; printf qq(#undef TDS_VERSION_NO\n#define TDS_VERSION_NO \"freetds v0.83.dev.%d%02d%02d\"\n), 1900+$$a[5], 1+$$a[-1], $$a[3]" \
++ > $@.err
++ move /Y $@.err $@
++
++src\tds\types.h:
++ perl src\tds\types.pl misc\types.txt > $@.err
++ move /Y $@.err $@
++
++src\tds\tds_willconvert.h: src\tds\tds_willconvert.pl
++ perl src\tds\tds_willconvert.pl > $@.tmp
++ $(MV) $@.tmp $@
++
++src\tds\encodings.h: src\tds\encodings.pl src\tds\alternative_character_sets.h
++ perl src\tds\encodings.pl src\tds > $@.tmp 2> NUL:
++ $(MV) $@.tmp $@
++
++src\tds\num_limits.h: src\tds\num_limits.pl
++ perl src\tds\num_limits.pl > $@.tmp
++ $(MV) $@.tmp $@
++!ENDIF
++
++GENERATED_FILES = include\tdsver.h src\tds\types.h \
++ src\tds\tds_willconvert.h src\tds\encodings.h src\tds\num_limits.h
++
++$(DBLIB_OUT)\db-lib.lib: $(GENERATED_FILES) $(DBLIB_OUT) $(DBLIB_OBJ) $(REPLACEMENTS_OUT)\replacements.lib $(TDS_OUT)\tds.lib
++ @echo building $@ >&2
++ lib -nologo -out:"$@" $(DBLIB_OBJ) \
++ $(REPLACEMENTS_OUT)\replacements.lib \
++ $(TDS_OUT)\tds.lib
++$(REPLACEMENTS_OUT)\replacements.lib: $(REPLACEMENTS_OUT) $(REPLACEMENTS_OBJ)
++ lib -nologo -out:"$@" $(REPLACEMENTS_OBJ)
++$(TDS_OUT)\tds.lib: $(TDS_OUT) $(TDS_OBJ)
++ lib -nologo -out:"$@" $(TDS_OBJ)
++
++#
++# set compiler flags
++#
++INC = -I "include" -I "win32" -I "include\x64"
++FLG = -nologo -W3 -Wp64 -EHsc -TC -Gm -errorReport:prompt
++DEF = -D "_MBCS" -D "_LIB" -D "WIN32" \
++ -D MSDBLIB \
++ -D "_CRT_SECURE_NO_WARNINGS" -D _CRT_NONSTDC_NO_DEPRECATE \
++ -D "HAVE_CONFIG_H" \
++ -D "_FREETDS_LIBRARY_SOURCE"
++DBG = -MTd -Od -D "_DEBUG" -ZI -RTC1
++REL = -MT -O2 -D "_NDEBUG" -Zi
++
++MSLIBS = Ws2_32.lib shell32.lib
++
++CC = cl $(CFLAGS) $(FLG) $(DEF) $(INC)
++CC32 = $(CC)
++CC64 = $(CC)
++
++## Rules ##
++
++#
++# dblib
++#
++#c.{$(DBLIB_DIR)\win32\debug}.obj::
++{$(DBLIB_DIR)}.c{$(DBLIB_DIR)\win32\debug}.obj::
++ $(CC32) -c $(DBG) -Fo"$(DBLIB_OUT)\\" \
++ -Fd"$(DBLIB_OUT)\vc80.pdb" \
++ $<
++
++{$(DBLIB_DIR)\}.c{$(DBLIB_DIR)\win32\release}.obj::
++ $(CC32) -c $(REL) -Fo"$(DBLIB_OUT)\\" \
++ -Fd"$(DBLIB_OUT)\vc80.pdb" \
++ $<
++
++{$(DBLIB_DIR)}.c{$(DBLIB_DIR)\x64\debug}.obj::
++ $(CC64) -c $(DBG) -Fo"$(DBLIB_OUT)\\" \
++ -Fd"$(DBLIB_OUT)\vc80.pdb" \
++ $<
++
++{$(DBLIB_DIR)}.c{$(DBLIB_DIR)\x64\release}.obj::
++ $(CC64) -c $(REL) -Fo"$(DBLIB_OUT)\\" \
++ -Fd"$(DBLIB_OUT)\vc80.pdb" \
++ $<
++
++#
++# replacements
++#
++{$(REPLACEMENTS_DIR)}.c{$(REPLACEMENTS_DIR)\win32\debug}.obj::
++ $(CC32) -c $(DBG) -Fo"$(REPLACEMENTS_OUT)\\" \
++ -Fd"$(REPLACEMENTS_OUT)\vc80.pdb" \
++ $<
++
++{$(REPLACEMENTS_DIR)}.c{$(REPLACEMENTS_DIR)\win32\release}.obj::
++ $(CC32) -c $(REL) -Fo"$(REPLACEMENTS_OUT)\\" \
++ -Fd"$(REPLACEMENTS_OUT)\vc80.pdb" \
++ $<
++
++{$(REPLACEMENTS_DIR)}.c{$(REPLACEMENTS_DIR)\x64\debug}.obj::
++ $(CC64) -c $(DBG) -Fo"$(REPLACEMENTS_OUT)\\" \
++ -Fd"$(REPLACEMENTS_OUT)\vc80.pdb" \
++ $<
++
++{$(REPLACEMENTS_DIR)}.c{$(REPLACEMENTS_DIR)\x64\release}.obj::
++ $(CC64) -c $(REL) -Fo"$(REPLACEMENTS_OUT)\\" \
++ -Fd"$(REPLACEMENTS_OUT)\vc80.pdb" \
++ $<
++
++#
++# tds
++#
++{$(TDS_DIR)}.c{$(TDS_DIR)\win32\debug}.obj::
++ $(CC32) -c $(DBG) -Fo"$(TDS_OUT)\\" \
++ -Fd"$(TDS_OUT)\vc80.pdb" \
++ $<
++
++{$(TDS_DIR)}.c{$(TDS_DIR)\win32\release}.obj::
++ $(CC32) -c $(REL) -Fo"$(TDS_OUT)\\" \
++ -Fd"$(TDS_OUT)\vc80.pdb" \
++ $<
++
++{$(TDS_DIR)}.c{$(TDS_DIR)\x64\debug}.obj::
++ $(CC64) -c $(DBG) -Fo"$(TDS_OUT)\\" \
++ -Fd"$(TDS_OUT)\vc80.pdb" \
++ $<
++
++{$(TDS_DIR)}.c{$(TDS_DIR)\x64\release}.obj::
++ $(CC64) -c $(REL) -Fo"$(TDS_OUT)\\" \
++ -Fd"$(TDS_OUT)\vc80.pdb" \
++ $<
++
++#
++# Utilities
++#
++$(APPS_EXE): $(DBLIB_OUT)\db-lib.lib
++
++{$(APPS_DIR)}.c{$(APPS_DIR)\win32\debug}.exe:
++ @if not exist $(APPS_OUT) $(MKDIR) $(APPS_OUT)
++ $(CC32) $(DBG) -Fd"$(APPS_OUT)\vc80.pdb" -Fe$@ \
++ $< -link -LIBPATH:$(DBLIB_OUT) db-lib.lib $(MSLIBS)
+
+-debug32: Debug\BcpStreams.lib
++{$(APPS_DIR)\}.c{$(APPS_DIR)\win32\release}.exe:
++ @if not exist $(APPS_OUT) $(MKDIR) $(APPS_OUT)
++ $(CC32) $(REL) -Fe$@ -Fd"$(APPS_OUT)\vc80.pdb" \
++ $< -link -LIBPATH:$(DBLIB_OUT) db-lib.lib $(MSLIBS)
++
++{$(APPS_DIR)}.c{$(APPS_DIR)\x64\debug}.exe:
++ @if not exist $(APPS_OUT) $(MKDIR) $(APPS_OUT)
++ $(CC64) $(DBG) -Fe$@ -Fd"$(APPS_OUT)\vc80.pdb" \
++ $< -link -LIBPATH:$(DBLIB_OUT) db-lib.lib $(MSLIBS)
+
+-Debug\BcpStreams.lib:
+- vcbuild BcpStreams.sln "Debug|Win32"
++{$(APPS_DIR)}.c{$(APPS_DIR)\x64\release}.exe:
++ @if not exist $(APPS_OUT) $(MKDIR) $(APPS_OUT)
++ $(CC64) $(REL) -Fe$@ -Fd"$(APPS_OUT)\vc80.pdb" \
++ $< -link -LIBPATH:$(DBLIB_OUT) db-lib.lib $(MSLIBS)
+
+-# DebugST\BcpStreams.lib
+-# Release\BcpStreams.lib
+-# x64\Debug\BcpStreams.lib
+-# x64\Release\BcpStreams.lib
+\ No newline at end of file