Skip to content

Commit

Permalink
Now we can build with MySQL 4.0.
Browse files Browse the repository at this point in the history
git-svn-id: svn+ssh://svn.kahua.org/var/local/repos/kahua/Gauche-dbd-mysql/trunk@2579 4e392e78-dc3f-dc11-8fd5-00188bfc9ac4
  • Loading branch information
bizenn committed Mar 1, 2007
1 parent cff59a2 commit 7f640c6
Show file tree
Hide file tree
Showing 8 changed files with 952 additions and 472 deletions.
5 changes: 3 additions & 2 deletions DIST
Expand Up @@ -17,17 +17,18 @@ done

if [ "$gen" = "yes" ]; then
autoconf
autoheader
fi

if [ "$tgz" = "yes" ]; then
if [ -f Makefile ]; then make maintainer-clean; fi
./DIST gen
./configure
make distclean

if [ ! -f VERSION ]; then echo "No VERSION; something wrong?"; exit 1; fi
VERSION=`cat VERSION`

make distclean

rm -f DIST_EXCLUDE_X
echo DIST > DIST_EXCLUDE_X
echo DIST_EXCLUDE_X >> DIST_EXCLUDE_X
Expand Down
16 changes: 8 additions & 8 deletions Makefile.in
@@ -1,5 +1,5 @@
#
# $Id: Makefile.in,v 1.8 2007/02/23 08:43:25 bizenn Exp $
# $Id: Makefile.in,v 1.9 2007/03/01 07:30:58 bizenn Exp $
#

# General info
Expand Down Expand Up @@ -33,9 +33,9 @@ SCMFILES = dbd/mysql.scm
HEADERS =

TARGET = $(ARCHFILES)
GENERATED =
CONFIG_GENERATED = Makefile config.cache config.log config.status \
configure.lineno autom4te*.cache $(PACKAGE).gpd
DIST_GENERATED = config.h.in configure DIST_EXCLUDE_X
CONFIGURE_GENERATED = Makefile config.cache config.log config.status \
configure.lineno $(PACKAGE).gpd VERSION config.h

MYSQL_CFLAGS = @MYSQL_CFLAGS@
MYSQL_LIBS = @MYSQL_LDFLAGS@
Expand Down Expand Up @@ -78,11 +78,11 @@ uninstall :

clean :
$(GAUCHE_PACKAGE) compile --clean dbd_mysql $(dbd_mysql_SRCS)
rm -rf core $(TARGET) $(GENERATED) *~ test/*-test.log so_locations
rm -rf core $(TARGET) *~ test/*-test.log so_locations

distclean : clean
rm -rf $(CONFIG_GENERATED)
rm -rf $(CONFIGURE_GENERATED) autom4te*.cache

maintainer-clean : clean
rm -rf $(CONFIG_GENERATED) configure VERSION DIST_EXCLUDE_X
maintainer-clean : distclean
rm -rf $(DIST_GENERATED)

7 changes: 4 additions & 3 deletions README
@@ -1,6 +1,7 @@
DBI/DBD - database interface and database driver
Gauche-dbd-mysql: MySQL native driver and DBD interface module.

see <http://www.kahua.org/cgi-bin/kahua.cgi/kahua-web/show/dev/DBI/dbd.mysql>
See <http://www.kahua.org/cgi-bin/kahua.cgi/kahua-web/show/dev/DBI/dbd.mysql>
but it's a bit out of date, sorry.

--
ENDO Yasuyuki <yasuyuki@javaopen.org>
Kahua Project <info@kahua.org>
78 changes: 57 additions & 21 deletions configure.ac
@@ -1,63 +1,99 @@
dnl
dnl Configuring Gauche-dbd-mysql
dnl process this file with autoconf to generate 'configure'.
dnl $Id: configure.ac,v 1.1 2007/02/28 07:25:06 bizenn Exp $
dnl
dnl $Id: configure.ac,v 1.2 2007/03/01 07:30:58 bizenn Exp $
dnl

AC_PREREQ(2.59)
AC_INIT(Gauche-dbd-mysql, 0.3_pre2, info@kahua.org)
dnl If you want to use the system name (OS, architecture, etc) in the
dnl configure, uncomment the following line. In such a case, you need
dnl to copy config.guess and config.sub from automake distribution.
dnl AC_CANONICAL_SYSTEM
AC_CONFIG_HEADER(config.h)

dnl Set up gauche related commands. The commands are set by scanning
dnl PATH. You can override them by "GOSH=/my/gosh ./configure" etc.
dnl
dnl Check gauche and its stuff.
dnl
AC_PATH_PROG([GOSH], gosh)
AC_PATH_PROG([GAUCHE_CONFIG], gauche-config)
AC_PATH_PROG([GAUCHE_PACKAGE], gauche-package)
AC_PATH_PROG([GAUCHE_INSTALL], gauche-install)
AC_PATH_PROG([GAUCHE_CESCONV], gauche-cesconv)

dnl Usually these parameters are set by AC_PROG_CC, but we'd rather use
dnl the same one as Gauche has been compiled with.
SOEXT=`$GAUCHE_CONFIG --so-suffix`
OBJEXT=`$GAUCHE_CONFIG --object-suffix`
EXEEXT=`$GAUCHE_CONFIG --executable-suffix`
AC_SUBST(SOEXT)
AC_SUBST(OBJEXT)
AC_SUBST(EXEEXT)

ac_default_prefix=`$GAUCHE_CONFIG --prefix`

GAUCHE_PKGINCDIR=`$GAUCHE_CONFIG --pkgincdir`
GAUCHE_PKGLIBDIR=`$GAUCHE_CONFIG --pkglibdir`
GAUCHE_PKGARCHDIR=`$GAUCHE_CONFIG --pkgarchdir`
AC_SUBST(GAUCHE_PKGINCDIR)
AC_SUBST(GAUCHE_PKGLIBDIR)
AC_SUBST(GAUCHE_PKGARCHDIR)

dnl Check for headers.
dnl Add your macro calls to check required headers, if you have any.

dnl Check for other programs.
dnl Add your macro calls to check existence of programs, if you have any.
dnl
dnl Check MySQL and its stuff.
dnl
AC_PATH_PROGS(MYSQL_CONFIG, mysql_config)

dnl Check for libraries
dnl Add your macro calls to check required libraries, if you have any.
AC_MSG_CHECKING(checking mysql client library)
if test X${MYSQL_CONFIG} = X; then
AC_MSG_RESULT(not available)
else
AC_DEFINE(HAVE_MYSQL, 1)
MYSQL_CFLAGS=`${MYSQL_CONFIG} --cflags`
MYSQL_LDFLAGS=`${MYSQL_CONFIG} --libs`
AC_SUBST(MYSQL_CFLAGS)
AC_SUBST(MYSQL_LDFLAGS)
AC_MSG_RESULT(ok)
fi

CFLAGS="$MYSQL_CFLAGS $CFLAGS"
LDFLAGS="$MYSQL_LDFLAGS $LDFLAGS"
AC_CHECK_TYPES([MYSQL_STMT,MYSQL_FIELD,MYSQL_BIND,MYSQL_TIME,MY_CHARSET_INFO],,,[
#include <mysql.h>
#include <errmsg.h>
#include <mysqld_error.h>
])
AC_CHECK_MEMBERS([MYSQL_FIELD.charsetnr,
MYSQL_FIELD.name_length,
MYSQL_FIELD.org_name,
MYSQL_FIELD.org_name_length,
MYSQL_FIELD.table_length,
MYSQL_FIELD.org_table_length,
MYSQL_FIELD.db_length,
MYSQL_FIELD.catalog,
MYSQL_FIELD.catalog_length,
MYSQL_FIELD.def_length],,,[
#include <mysql.h>
#include <errmsg.h>
#include <mysqld_error.h>
])
AC_CHECK_DECLS([mysql_autocommit,
mysql_commit,
mysql_get_server_version,
mysql_rollback,
mysql_set_character_set,
mysql_sqlstate,
mysql_warning_count],,,[
#include <mysql.h>
#include <errmsg.h>
#include <mysqld_error.h>
])
AC_CHECK_DECLS([MYSQL_TYPE_TINY,MYSQL_TYPE_SHORT,MYSQL_TYPE_LONG,MYSQL_TYPE_INT24,
MYSQL_TYPE_LONGLONG,MYSQL_TYPE_DECIMAL,MYSQL_TYPE_NEWDECIMAL,
MYSQL_TYPE_FLOAT,MYSQL_TYPE_DOUBLE,MYSQL_TYPE_BIT,MYSQL_TYPE_TIMESTAMP,
MYSQL_TYPE_DATE,MYSQL_TYPE_TIME,MYSQL_TYPE_DATETIME,MYSQL_TYPE_YEAR,
MYSQL_TYPE_STRING,MYSQL_TYPE_VAR_STRING,MYSQL_TYPE_BLOB,MYSQL_TYPE_SET,
MYSQL_TYPE_ENUM,MYSQL_TYPE_GEOMETRY,MYSQL_TYPE_NULL],,,[
#include <mysql.h>
#include <errmsg.h>
#include <mysqld_error.h>
])
AC_CHECK_DECLS([SHUTDOWN_DEFAULT],,,[
#include <mysql.h>
#include <errmsg.h>
#include <mysqld_error.h>
])

dnl Creating gpd (gauche package description) file
GAUCHE_PACKAGE_CONFIGURE_ARGS="`echo ""$ac_configure_args"" | sed 's/[\\""\`\$]/\\\&/g'`"
AC_MSG_NOTICE([creating ${PACKAGE_NAME}.gpd])
Expand Down
65 changes: 33 additions & 32 deletions dbd/mysql.scm
Expand Up @@ -17,7 +17,7 @@
;; along with this program; if not, write to the Free Software
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
;;
;; $Id: mysql.scm,v 1.30 2007/02/28 07:11:05 bizenn Exp $
;; $Id: mysql.scm,v 1.31 2007/03/01 07:30:58 bizenn Exp $

(define-module dbd.mysql
(use dbi)
Expand All @@ -31,43 +31,44 @@
(use gauche.mop.singleton)
(export <mysql-driver> <mysql-connection> <mysql-result-set>
<mysql-error> <mysql-stmt-error>

;; Low-level API
<mysql-handle> <mysql-res> <mysql-field> <mysql-charset>
mysql-handle? mysql-res? mysql-field? mysql-charset?
mysql-affected-rows mysql-autocommit
mysql-change-user mysql-character-set-name
mysql-close mysql-commit mysql-debug mysql-data-seek
mysql-dump-debug-info mysql-error mysql-errno
mysql-fetch-field-direct mysql-fetch-field-names mysql-fetch-row mysql-field-count
mysql-free-result mysql-get-character-set-info mysql-get-client-info
mysql-get-client-version mysql-get-host-info mysql-get-proto-info mysql-get-server-info
mysql-get-server-version mysql-info mysql-insert-id
mysql-list-dbs mysql-list-fields mysql-list-processes
mysql-list-tables mysql-num-fields mysql-num-rows
mysql-real-connect mysql-real-escape-string mysql-real-query
mysql-refresh mysql-rollback mysql-select-db mysql-set-character-set
mysql-shutdown mysql-sqlstate mysql-stat mysql-store-result
mysql-thread-id mysql-warning-count
mysql-handle-closed? mysql-res-closed?

;; Low-level Prepared Statement API
<mysql-stmt> <mysql-time>
mysql-stmt? mysql-time? mysql-stmt-affected-rows mysql-stmt-close
mysql-stmt-data-seek mysql-stmt-errno mysql-stmt-error
mysql-stmt-execute mysql-stmt-fetch mysql-stmt-field-count
mysql-stmt-free-result mysql-stmt-insert-id mysql-stmt-num-rows
mysql-stmt-param-count mysql-stmt-prepare mysql-stmt-reset
mysql-stmt-sqlstate
mysql-stmt-closed?
mysql-stmt-fetch-field-names
mysql-time->string
mysql-dbd-version
))
(select-module dbd.mysql)

;; Loads extension
(dynamic-load "dbd_mysql")

;; Low-level API
(export-if-defined <mysql-handle> <mysql-res> <mysql-field> <mysql-charset>
mysql-handle? mysql-res? mysql-field? mysql-charset?
mysql-affected-rows mysql-autocommit
mysql-change-user mysql-character-set-name
mysql-close mysql-commit mysql-debug mysql-data-seek
mysql-dump-debug-info mysql-error mysql-errno
mysql-fetch-field-direct mysql-fetch-field-names mysql-fetch-row mysql-field-count
mysql-free-result mysql-get-character-set-info mysql-get-client-info
mysql-get-client-version mysql-get-host-info mysql-get-proto-info mysql-get-server-info
mysql-get-server-version mysql-info mysql-insert-id
mysql-list-dbs mysql-list-fields mysql-list-processes
mysql-list-tables mysql-num-fields mysql-num-rows
mysql-real-connect mysql-real-escape-string mysql-real-query
mysql-refresh mysql-rollback mysql-select-db mysql-set-character-set
mysql-shutdown mysql-sqlstate mysql-stat mysql-store-result
mysql-thread-id mysql-warning-count
mysql-handle-closed? mysql-res-closed?

;; Low-level Prepared Statement API
<mysql-stmt> <mysql-time>
mysql-stmt? mysql-time? mysql-stmt-affected-rows mysql-stmt-close
mysql-stmt-data-seek mysql-stmt-errno mysql-stmt-error
mysql-stmt-execute mysql-stmt-fetch mysql-stmt-field-count
mysql-stmt-free-result mysql-stmt-insert-id mysql-stmt-num-rows
mysql-stmt-param-count mysql-stmt-prepare mysql-stmt-reset
mysql-stmt-sqlstate
mysql-stmt-closed?
mysql-stmt-fetch-field-names
mysql-time->string)

(export-if-defined REFRESH_GRANT REFRESH_LOG REFRESH_TABLES REFRESH_HOSTS
REFRESH_STATUS REFRESH_THREADS REFRESH_SLAVE REFRESH_MASTER)

Expand Down

0 comments on commit 7f640c6

Please sign in to comment.