This is MySQL Ruby API. This use for Windows Environment. Cygwin,Mingw binary.
ruby version is 1.6.6. test suite(test.rb) all OK.
Server:
Linux 3.23.41 WinNT4WS 3.23.38-nt(same host)
% ruby install.rb -n ex. install mingw32/mysql.so => e:/usr/local/mingw/lib/ruby/site_ruby/1.6/i686-mingw32 (alternative by hand see. ruby -e 'p $:' )
Enjoy :-)
Cygwin-1.3.9 and mysql-3.23.47.tar.gz. compile only client
use zlib static link.(zlib-1.1.3 -> libzstatic.a) and packed upx.
$ cat extconf.rb require 'mkmf' have_library('zstatic') inc, lib = dir_config('mysql', '/usr/local') find_library('mysqlclient', 'mysql_query', lib, "#{lib}/mysql") or exit 1 # If you have error such as 'undefined symbol', delete '#' mark follow # lines: #have_library('m') #have_library('z') have_header('mysql.h') or have_header('mysql/mysql.h') or exit 1 create_makefile("mysql")
download from libmysqlclient MinGW port <URL:http://www.johnydog.cz/projects.php> MySQL 3.23.43 mingw Source
quick hack.
# --- Makefile.org Thu Oct 4 01:52:38 2001 +++ Makefile Wed Jan 23 21:59:39 2002 @@ -14,18 +14,18 @@ # team. Please see http://www.mysql.com in that case. # -CROSS_DIR = /usr/local/cross-tools/i386-mingw32msvc -CFLAGS = -O2 -Wall +CROSS_DIR = /usr/local/mingw +CFLAGS = -Os -Wall LIBS = INCLUDES = -I./include INSTALL_INCLUDES = $(CROSS_DIR)/include/mysql/ INSTALL_LIBS = $(CROSS_DIR)/lib/ -CC = $(CROSS_DIR)/bin/gcc -RANLIB = $(CROSS_DIR)/bin/ranlib -AR = $(CROSS_DIR)/bin/ar -ARFLAGS = cr +CC = gcc -bmingw #$(CROSS_DIR)/bin/gcc +#RANLIB = $(CROSS_DIR)/bin/ranlib +#AR = $(CROSS_DIR)/bin/ar +ARFLAGS = cru RM = rm -f CP = cp MV = mv @@ -83,4 +83,4 @@ clean: rm -f $(OBJECTS) libmysqlclient.a - \ No newline at end of file + --- include/mysql.h-orig Thu Oct 18 01:24:52 2001 +++ include/mysql.h Wed Jan 23 21:03:18 2002 @@ -48,6 +48,10 @@ #else #define STDCALL __stdcall #endif +#if !defined(__MINGW32__) +#define STDCALL +#endif + typedef char * gptr; #ifndef ST_USED_MEM_DEFINED
edit extconf.rb for link error.(add wsock32,zlib)
$ cat extconf.rb require 'mkmf' inc, lib = dir_config('mysql', '/usr/local') have_library('z') have_library('wsock32') # find_library('mysqlclient', 'mysql_query', lib, "#{lib}/mysql") or exit 1 have_library('mysqlclient') # If you have error such as 'undefined symbol', delete '#' mark follow # lines: #have_library('m') have_header('mysql.h') or have_header('mysql/mysql.h') or exit 1 create_makefile("mysql")
copy mswin32-ruby16.lib current from <URL:http://www.ruby-lang.org/~usa/mswin32/> and modified mingw's Makefile -lmingw32-ruby16 to -lmswin32-ruby16 :-)
<URL:http://www.tmtm.org/mysql/ruby/>
<URL:http://www.ruby-lang.org/en/raa-list.rhtml?name=MySQL%2FRuby>
<URL:http://www.ruby-lang.org/>
2002-02-04 2.4.2-1
2002-01-29 2.4.2
TAMURA.Kenichi <URL:mailto:sgs02516@nifty.com>