summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Glazunov <vg@openoffice.org>2010-02-15 15:27:59 +0100
committerVladimir Glazunov <vg@openoffice.org>2010-02-15 15:27:59 +0100
commit8943aa4a4b39653b91d69f89e7e3d6057b768d68 (patch)
treeffd0dffa59eec1302afabd9da1333e2ebd396473
parent87cd7133d1e07b337e0f7bc3bfca0eec7ff23a38 (diff)
parent7b08032bfc7a181c59d2a3b1110ce9407b560c00 (diff)
CWS-TOOLING: integrate CWS mysqlconnector
-rw-r--r--mysqlcppconn/cppconn_config.pmk33
-rw-r--r--mysqlcppconn/makefile.mk90
-rw-r--r--mysqlcppconn/mysql-connector-cpp.patch385
-rw-r--r--mysqlcppconn/mysql_config.pmk49
-rw-r--r--mysqlcppconn/patches/default_to_protocol_tcp.patch12
-rw-r--r--mysqlcppconn/prj/build.lst3
-rw-r--r--mysqlcppconn/prj/d.lst15
7 files changed, 587 insertions, 0 deletions
diff --git a/mysqlcppconn/cppconn_config.pmk b/mysqlcppconn/cppconn_config.pmk
new file mode 100644
index 000000000000..b787c96b1e18
--- /dev/null
+++ b/mysqlcppconn/cppconn_config.pmk
@@ -0,0 +1,33 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2008 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJNAME = mysqlcppconn
+ENABLE_EXCEPTIONS = TRUE
+USE_LDUMP2 = TRUE
+EXTERNAL_WARNINGS_NOT_ERRORS = TRUE
+
+CPPCONN_NATIVEAPI = cppconn_nativeapi
diff --git a/mysqlcppconn/makefile.mk b/mysqlcppconn/makefile.mk
new file mode 100644
index 000000000000..b8ae91492e2e
--- /dev/null
+++ b/mysqlcppconn/makefile.mk
@@ -0,0 +1,90 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2008 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.22 $
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=.
+
+PRJNAME=mysqlcppconn
+TARGET=so_mysqlcppconn
+
+EXT_PROJECT_NAME=mysql-connector-cpp
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+
+TARFILE_NAME=$(EXT_PROJECT_NAME)
+ADDITIONAL_FILES=\
+ driver$/makefile.mk \
+ driver$/nativeapi$/makefile.mk \
+ driver$/nativeapi$/binding_config.h \
+ cppconn$/config.h
+
+CONVERTFILES=\
+ cppconn$/build_config.h
+
+PATCH_FILES=\
+ $(TARFILE_NAME).patch \
+ patches/default_to_protocol_tcp.patch
+
+BUILD_DIR=driver
+BUILD_ACTION = \
+ cd nativeapi \
+ && $(MAKE) $(MFLAGS) $(CALLMACROS) \
+ && cd .. \
+ && $(MAKE) $(MFLAGS) $(CALLMACROS)
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : set_ext.mk
+.INCLUDE : target.mk
+.INCLUDE : tg_ext.mk
+
+# --- post-build ---------------------------------------------------
+
+# "normalize" the output structure, in that the C/C++ headers are
+# copied to the canonic location in OUTPATH
+# The allows, later on, to use the standard mechanisms to deliver those
+# files, instead of delivering them out of OUTPATH/misc/build/..., which
+# could cause problems
+
+NORMALIZE_FLAG_FILE=so_normalized_$(TARGET)
+
+$(PACKAGE_DIR)$/$(NORMALIZE_FLAG_FILE) : $(PACKAGE_DIR)$/$(BUILD_FLAG_FILE)
+ @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(EXT_PROJECT_NAME)$/driver$/mysql_driver.h $(INCCOM)
+ -@$(MKDIRHIER) $(INCCOM)$/cppconn
+ @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(EXT_PROJECT_NAME)$/cppconn$/* $(INCCOM)$/cppconn
+ @$(TOUCH) $(PACKAGE_DIR)$/$(NORMALIZE_FLAG_FILE)
+
+normalize: $(PACKAGE_DIR)$/$(NORMALIZE_FLAG_FILE)
+
+$(PACKAGE_DIR)$/$(PREDELIVER_FLAG_FILE) : normalize
diff --git a/mysqlcppconn/mysql-connector-cpp.patch b/mysqlcppconn/mysql-connector-cpp.patch
new file mode 100644
index 000000000000..b71050435165
--- /dev/null
+++ b/mysqlcppconn/mysql-connector-cpp.patch
@@ -0,0 +1,385 @@
+--- misc/mysql-connector-cpp/cppconn/build_config.h 2009-08-13 17:13:46.000000000 +0200
++++ misc/build/mysql-connector-cpp/cppconn/build_config.h 2009-09-11 09:41:41.150391316 +0200
+@@ -1,36 +1,34 @@
+-/*
+- Copyright 2007 - 2008 MySQL AB, 2008 - 2009 Sun Microsystems, Inc. All rights reserved.
+-
+- The MySQL Connector/C++ is licensed under the terms of the GPL
+- <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>, like most
+- MySQL Connectors. There are special exceptions to the terms and
+- conditions of the GPL as it is applied to this software, see the
+- FLOSS License Exception
+- <http://www.mysql.com/about/legal/licensing/foss-exception.html>.
+-*/
+-
+-#ifndef _SQL_BUILD_CONFIG_H_
+-#define _SQL_BUILD_CONFIG_H_
+-
+-#ifndef CPPCONN_PUBLIC_FUNC
+-
+-#if defined(_WIN32)
+- // mysqlcppconn_EXPORTS is added by cmake and defined for dynamic lib build only
+- #ifdef mysqlcppconn_EXPORTS
+- #define CPPCONN_PUBLIC_FUNC __declspec(dllexport)
+- #else
+- // this is for static build
+- #ifdef CPPCONN_LIB_BUILD
+- #define CPPCONN_PUBLIC_FUNC
+- #else
+- // this is for clients using dynamic lib
+- #define CPPCONN_PUBLIC_FUNC __declspec(dllimport)
+- #endif
+- #endif
+-#else
+- #define CPPCONN_PUBLIC_FUNC
+-#endif
+-
+-#endif //#ifndef CPPCONN_PUBLIC_FUNC
+-
+-#endif //#ifndef _SQL_BUILD_CONFIG_H_
++/*
++ Copyright 2007 - 2008 MySQL AB, 2008 - 2009 Sun Microsystems, Inc. All rights reserved.
++
++ The MySQL Connector/C++ is licensed under the terms of the GPL
++ <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>, like most
++ MySQL Connectors. There are special exceptions to the terms and
++ conditions of the GPL as it is applied to this software, see the
++ FLOSS License Exception
++ <http://www.mysql.com/about/legal/licensing/foss-exception.html>.
++*/
++
++#ifndef _SQL_BUILD_CONFIG_H_
++#define _SQL_BUILD_CONFIG_H_
++
++#ifndef _SAL_TYPES_H_
++#include <sal/types.h>
++#endif
++
++ // mysqlcppconn_EXPORTS is added by cmake and defined for dynamic lib build only
++ #ifdef mysqlcppconn_EXPORTS
++ #define CPPCONN_PUBLIC_FUNC SAL_DLLPUBLIC_EXPORT
++ #else
++ // this is for static build
++ #ifdef CPPCONN_LIB_BUILD
++ #define CPPCONN_PUBLIC_FUNC
++ #else
++ // this is for clients using dynamic lib
++ #define CPPCONN_PUBLIC_FUNC SAL_DLLPUBLIC_IMPORT
++ #endif
++ #endif
++
++ #define CPPCONN_PUBLIC_EXCEPTION SAL_EXCEPTION_DLLPUBLIC_EXPORT
++
++#endif //#ifndef _SQL_BUILD_CONFIG_H_
+--- misc/mysql-connector-cpp/cppconn/config.h 2009-08-14 10:17:38.234375000 +0200
++++ misc/build/mysql-connector-cpp/cppconn/config.h 2009-08-14 09:56:37.000000000 +0200
+@@ -1 +1,34 @@
+-dummy
++#include <sal/types.h>
++
++#define HAVE_FUNCTION_STRTOL 1
++#define HAVE_FUNCTION_STRTOUL 1
++#define HAVE_FUNCTION_STRTOL 1
++#define HAVE_FUNCTION_STRTOULL 1
++
++#if defined(MACOSX) || defined(SOLARIS) || defined(LINUX)
++ #define HAVE_STDINT_H
++ #define HAVE_INTTYPES_H
++#endif
++
++#ifdef HAVE_STDINT_H
++#include <stdint.h>
++#endif
++
++#ifdef HAVE_INTTYPES_H
++#include <inttypes.h>
++#endif
++
++#if !defined(HAVE_STDINT_H) && !defined(HAVE_INTTYPES_H)
++
++// if we do not have the standard C99 integer types, then define them based on the respective SAL types
++#if !defined(_SYS_TYPES_H)
++typedef sal_Int8 int8_t;
++typedef sal_Int16 int16_t;
++typedef sal_Int32 int32_t;
++#endif // !defined(_SYS_TYPES_H)
++typedef sal_uInt8 uint8_t;
++typedef sal_uInt16 uint16_t;
++typedef sal_uInt32 uint32_t;
++typedef sal_Int64 int64_t;
++typedef sal_uInt64 uint64_t;
++#endif // !defined(HAVE_STDINT_H) && !defined(HAVE_INTTYPES_H)
+--- misc/mysql-connector-cpp/cppconn/connection.h 2009-08-13 17:13:46.000000000 +0200
++++ misc/build/mysql-connector-cpp/cppconn/connection.h 2009-08-14 09:56:37.000000000 +0200
+@@ -13,7 +13,6 @@
+ #define _SQL_CONNECTION_H_
+
+ #include <map>
+-#include <boost/variant.hpp>
+
+ #include "build_config.h"
+ #include "warning.h"
+@@ -22,8 +21,54 @@
+ namespace sql
+ {
+
+-
+-typedef boost::variant<int, double, bool, sql::SQLString > ConnectPropertyVal;
++// hack around the non-existent ::boost::variant in OOo 3.1 build env
++struct ConnectPropertyVal
++{
++ sql::SQLString valString;
++ int valInt;
++ bool valBool;
++
++ ConnectPropertyVal()
++ {
++ reset();
++ }
++ ConnectPropertyVal( const sql::SQLString& _val )
++ {
++ *this = _val;
++ }
++ ConnectPropertyVal( const int _val )
++ {
++ *this = _val;
++ }
++ ConnectPropertyVal( const bool _val )
++ {
++ *this = _val;
++ }
++ ConnectPropertyVal& operator=( const sql::SQLString& _val )
++ {
++ reset();
++ valString = _val;
++ return *this;
++ }
++ ConnectPropertyVal& operator=( const int _val )
++ {
++ reset();
++ valInt = _val;
++ return *this;
++ }
++ ConnectPropertyVal& operator=( const bool _val )
++ {
++ reset();
++ valBool = _val;
++ return *this;
++ }
++ void reset()
++ {
++ valString = std::string();
++ valInt = 0;
++ valBool = false;
++ }
++};
+
+ typedef std::map< sql::SQLString, ConnectPropertyVal > ConnectOptionsMap;
+
+--- misc/mysql-connector-cpp/cppconn/exception.h 2009-08-20 17:51:23.000000000 +0200
++++ misc/build/mysql-connector-cpp/cppconn/exception.h 2009-09-11 09:41:41.076379817 +0200
+@@ -37,7 +37,7 @@
+ #pragma warning(push)
+ #pragma warning(disable: 4275)
+ #endif
+-class CPPCONN_PUBLIC_FUNC SQLException : public std::runtime_error
++class CPPCONN_PUBLIC_EXCEPTION SQLException : public std::runtime_error
+ {
+ #ifdef _WIN32
+ #pragma warning(pop)
+@@ -83,26 +83,26 @@
+ MEMORY_ALLOC_OPERATORS(SQLException)
+ };
+
+-struct CPPCONN_PUBLIC_FUNC MethodNotImplementedException : public SQLException
++struct CPPCONN_PUBLIC_EXCEPTION MethodNotImplementedException : public SQLException
+ {
+ MethodNotImplementedException(const MethodNotImplementedException& e) : SQLException(e.what(), e.sql_state, e.errNo) { }
+ MethodNotImplementedException(const std::string& reason) : SQLException(reason, "", 0) {}
+ };
+
+-struct CPPCONN_PUBLIC_FUNC InvalidArgumentException : public SQLException
++struct CPPCONN_PUBLIC_EXCEPTION InvalidArgumentException : public SQLException
+ {
+ InvalidArgumentException(const InvalidArgumentException& e) : SQLException(e.what(), e.sql_state, e.errNo) { }
+ InvalidArgumentException(const std::string& reason) : SQLException(reason, "", 0) {}
+ };
+
+-struct CPPCONN_PUBLIC_FUNC InvalidInstanceException : public SQLException
++struct CPPCONN_PUBLIC_EXCEPTION InvalidInstanceException : public SQLException
+ {
+ InvalidInstanceException(const InvalidInstanceException& e) : SQLException(e.what(), e.sql_state, e.errNo) { }
+ InvalidInstanceException(const std::string& reason) : SQLException(reason, "", 0) {}
+ };
+
+
+-struct CPPCONN_PUBLIC_FUNC NonScrollableException : public SQLException
++struct CPPCONN_PUBLIC_EXCEPTION NonScrollableException : public SQLException
+ {
+ NonScrollableException(const NonScrollableException& e) : SQLException(e.what(), e.sql_state, e.errNo) { }
+ NonScrollableException(const std::string& reason) : SQLException(reason, "", 0) {}
+--- misc/mysql-connector-cpp/driver/makefile.mk 2009-09-11 09:42:34.087202551 +0200
++++ misc/build/mysql-connector-cpp/driver/makefile.mk 2009-09-11 09:42:25.902286382 +0200
+@@ -1 +1,64 @@
+-dummy
++PRJ=..$/..$/..$/..$/..
++
++.INCLUDE : $(PRJ)$/cppconn_config.pmk
++
++PRJINC=..
++TARGET=$(PRJNAME)
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE : settings.mk
++
++.INCLUDE : $(PRJ)$/mysql_config.pmk
++
++# --- Files --------------------------------------------------------
++
++.IF "$(GUI)-$(OS)-$(RTL_ARCH)" == "UNX-LINUX-x86"
++ SHL1NOCHECK=TRUE
++.ENDIF
++SHL1TARGET=$(TARGET)
++
++LIB1TARGET=$(SLB)$/$(PRJNAME).lib
++LIB1OBJFILES+= \
++ $(SLO)$/mysql_art_resultset.obj \
++ $(SLO)$/mysql_art_rset_metadata.obj \
++ $(SLO)$/mysql_connection.obj \
++ $(SLO)$/mysql_debug.obj \
++ $(SLO)$/mysql_driver.obj \
++ $(SLO)$/mysql_metadata.obj \
++ $(SLO)$/mysql_parameter_metadata.obj \
++ $(SLO)$/mysql_prepared_statement.obj \
++ $(SLO)$/mysql_ps_resultset.obj \
++ $(SLO)$/mysql_ps_resultset_metadata.obj \
++ $(SLO)$/mysql_resultbind.obj \
++ $(SLO)$/mysql_resultset.obj \
++ $(SLO)$/mysql_resultset_metadata.obj \
++ $(SLO)$/mysql_statement.obj \
++ $(SLO)$/mysql_util.obj \
++ $(SLO)$/mysql_warning.obj \
++
++SHL1STDLIBS=\
++ $(MYSQL_LIB)
++
++SHL1RPATH=OXT
++SHL1IMPLIB= i$(TARGET)
++SHL1LIBS= $(LIB1TARGET) $(SLB)$/$(CPPCONN_NATIVEAPI).lib
++SHL1DEF= $(MISC)$/$(SHL1TARGET).def
++DEF1NAME= $(SHL1TARGET)
++DEF1DEPN= $(MISC)$/$(SHL1TARGET).flt \
++ $(LIB1TARGET)
++DEFLIB1NAME=$(TARGET)
++
++# --- Targets ------------------------------------------------------
++
++.INCLUDE : target.mk
++
++# --- filter file ------------------------------
++
++.IF "$(depend)"==""
++$(MISC)$/$(SHL1TARGET).flt: makefile.mk
++ @echo CLEAR_THE_FILE > $@
++ @echo _TI >>$@
++ @echo _real >>$@
++ @echo __CT >>$@
++.ENDIF # "$(depend)"==""
+--- misc/mysql-connector-cpp/driver/mysql_connection.cpp 2009-08-13 17:13:46.000000000 +0200
++++ misc/build/mysql-connector-cpp/driver/mysql_connection.cpp 2009-08-14 09:56:37.015625000 +0200
+@@ -50,6 +50,34 @@
+ #include "mysql_debug.h"
+
+
++// part II of the hack to make C/C++ compile in an OOo env which doesn't have boost::variant installed
++namespace boost
++{
++ template < class TYPE >
++ const TYPE* get( const sql::ConnectPropertyVal* val )
++ {
++ return val;
++ }
++
++ template < >
++ const sql::SQLString* get< sql::SQLString >( const sql::ConnectPropertyVal* val )
++ {
++ return &val->valString;
++ }
++
++ template < >
++ const int* get< int >( const sql::ConnectPropertyVal* val )
++ {
++ return &val->valInt;
++ }
++
++ template < >
++ const bool* get< bool >( const sql::ConnectPropertyVal* val )
++ {
++ return &val->valBool;
++ }
++}
++
+ namespace sql
+ {
+ namespace mysql
+--- misc/mysql-connector-cpp/driver/mysql_debug.h 2009-08-13 17:13:46.000000000 +0200
++++ misc/build/mysql-connector-cpp/driver/mysql_debug.h 2009-08-14 09:56:37.015625000 +0200
+@@ -25,16 +25,6 @@
+
+
+
+-#if defined(WE_HAVE_VARARGS_MACRO_SUPPORT) && (CPPCONN_TRACE_ENABLED || defined(SAL_DLLPRIVATE))
+- #define CPP_ENTER(msg) const boost::shared_ptr< MySQL_DebugLogger > __l = this->logger;(void)__l;\
+- MySQL_DebugEnterEvent __this_func(__LINE__, __FILE__, msg, this->logger)
+- #define CPP_ENTER_WL(l, msg) const boost::shared_ptr< MySQL_DebugLogger > __l = (l);(void)__l;\
+- MySQL_DebugEnterEvent __this_func(__LINE__, __FILE__, msg, (l))
+- #define CPP_INFO(msg) {if (__l) __l->log("INF", msg); }
+- #define CPP_INFO_FMT(...) {if (__l) __l->log_va("INF", __VA_ARGS__); }
+- #define CPP_ERR(msg) {if (__l) __l->log("ERR", msg); }
+- #define CPP_ERR_FMT(...) {if (__l) __l->log_va("ERR", __VA_ARGS__); }
+-#else
+ #define CPP_ENTER(msg)
+ #define CPP_ENTER_WL(l, msg)
+ #define CPP_INFO(msg)
+@@ -42,7 +32,6 @@
+ #define CPP_ENTER_WL(l, msg)
+ static inline void CPP_INFO_FMT(...) {}
+ static inline void CPP_ERR_FMT(...) {}
+-#endif
+
+ #include <stack>
+ #include "mysql_util.h"
+--- misc/mysql-connector-cpp/driver/nativeapi/binding_config.h 2009-08-14 10:17:23.640625000 +0200
++++ misc/build/mysql-connector-cpp/driver/nativeapi/binding_config.h 2009-08-14 10:13:50.359375000 +0200
+@@ -1 +1,2 @@
+-dummy
++#define HAVE_DLFCN_H 1
++//#define MYSQLCLIENT_STATIC_BINDING 1
+--- misc/mysql-connector-cpp/driver/nativeapi/makefile.mk 2009-08-17 21:32:53.694119382 +0200
++++ misc/build/mysql-connector-cpp/driver/nativeapi/makefile.mk 2009-08-17 21:32:50.534346360 +0200
+@@ -1 +1,23 @@
+-dummy
++PRJ=..$/..$/..$/..$/..$/..
++PRJINC=..$/..
++
++.INCLUDE : $(PRJ)$/cppconn_config.pmk
++
++TARGET=$(CPPCONN_NATIVEAPI)
++
++# --- Settings -----------------------------------------------------
++
++.INCLUDE : settings.mk
++
++.INCLUDE : $(PRJ)$/mysql_config.pmk
++
++LIB1TARGET=$(SLB)$/$(TARGET).lib
++LIB1OBJFILES+= \
++ $(SLO)$/mysql_client_api.obj \
++ $(SLO)$/library_loader.obj \
++ $(SLO)$/mysql_native_connection_wrapper.obj \
++ $(SLO)$/mysql_native_resultset_wrapper.obj \
++ $(SLO)$/mysql_native_statement_wrapper.obj \
++
++# --- Targets ------------------------------------------------------
++.INCLUDE : target.mk
diff --git a/mysqlcppconn/mysql_config.pmk b/mysqlcppconn/mysql_config.pmk
new file mode 100644
index 000000000000..eb316e0911c3
--- /dev/null
+++ b/mysqlcppconn/mysql_config.pmk
@@ -0,0 +1,49 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2008 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+.IF "$(SYSTEM_MYSQL)" == "YES"
+ CFLAGS+=-DSYSTEM_MYSQL
+.ELSE
+ .IF "$(LIBMYSQL_PATH)" == ""
+ alltar:
+ @echo "need to have LIBMYSQL_PATH set to the location where libmysql (also known as 'MySQL Connector/C') is installed"
+ @force_dmake_to_error
+ .ENDIF
+.ENDIF
+
+.IF "$(GUI)"=="WNT"
+
+CFLAGS+=-DCPPDBC_WIN32 -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS
+
+.ENDIF # "$(GUI)"=="WNT"
+
+.IF "$(SYSTEM_MYSQL)" != "YES"
+ MYSQL_INC+=-I$(LIBMYSQL_PATH)$/include
+.ENDIF
+
+CFLAGS+=-I$(PRJINC) -I$(PRJINC)$/cppconn $(MYSQL_INC) -DCPPCONN_LIB_BUILD
+
diff --git a/mysqlcppconn/patches/default_to_protocol_tcp.patch b/mysqlcppconn/patches/default_to_protocol_tcp.patch
new file mode 100644
index 000000000000..3df78f40f5b7
--- /dev/null
+++ b/mysqlcppconn/patches/default_to_protocol_tcp.patch
@@ -0,0 +1,12 @@
+--- misc/mysql-connector-cpp/driver/mysql_connection.cpp 2009-12-16 13:24:24.088933245 +0100
++++ misc/build/mysql-connector-cpp/driver/mysql_connection.cpp 2009-12-16 13:24:15.666841004 +0100
+@@ -437,6 +437,9 @@
+ throw sql::InvalidArgumentException(e.what());
+ }
+
++ int default_protocol_tcp = MYSQL_PROTOCOL_TCP;
++ proxy->options(MYSQL_OPT_PROTOCOL, (const char *) &default_protocol_tcp);
++
+ #ifndef _WIN32
+ if (!hostName.compare(0, sizeof("unix://") - 1, "unix://")) {
+ protocol_tcp = false;
diff --git a/mysqlcppconn/prj/build.lst b/mysqlcppconn/prj/build.lst
new file mode 100644
index 000000000000..f7407bab7852
--- /dev/null
+++ b/mysqlcppconn/prj/build.lst
@@ -0,0 +1,3 @@
+my mysqlcppconn : solenv sal NULL
+my mysqlcppconn nmake - all my_mkout NULL
+
diff --git a/mysqlcppconn/prj/d.lst b/mysqlcppconn/prj/d.lst
new file mode 100644
index 000000000000..7a32571f9aea
--- /dev/null
+++ b/mysqlcppconn/prj/d.lst
@@ -0,0 +1,15 @@
+# mirror the dir structure a make install would create
+mkdir: %_DEST%\inc%_EXT%\mysqlcppconn
+mkdir: %_DEST%\inc%_EXT%\mysqlcppconn\cppconn
+
+..\%__SRC%\inc\*.h %_DEST%\inc%_EXT%\mysqlcppconn\*.h
+..\%__SRC%\inc\cppconn\*.h %_DEST%\inc%_EXT%\mysqlcppconn\cppconn\*.h
+
+..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*.dll
+
+ ..\%__SRC%\lib\lib*.so* %_DEST%\lib%_EXT%
+..\%__SRC%\lib\*.sl %_DEST%\lib%_EXT%\*.sl
+..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+..\%__SRC%\lib\*.dylib.* %_DEST%\lib%_EXT%\*.dylib.*
+..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a
+..\%__SRC%\lib\i*.lib %_DEST%\lib%_EXT%