4
PLATFORM = RUBY_PLATFORM
7
def have_library_ex(lib, func="main", headers=nil)
8
checking_for "#{func}() in -l#{lib}" do
9
libs = append_library($libs, lib)
10
if !func.nil? && !func.empty? && COMMON_LIBS.include?(lib)
12
elsif try_func(func, libs, headers)
22
have_header("version.h")
23
have_header("sql.h") || begin
24
puts "ERROR: sql.h not found"
27
have_header("sqlext.h") || begin
28
puts "ERROR: sqlext.h not found"
31
testdlopen = enable_config("dlopen", true)
33
if PLATFORM !~ /(mingw|cygwin)/ then
36
header = ["windows.h", "sqltypes.h"]
39
have_type("SQLTCHAR", header)
44
puts "WARNING: please check sqltypes.h for SQLTCHAR manually,"
45
puts "WARNING: if defined, modify CFLAGS in Makefile to contain"
46
puts "WARNING: the option -DHAVE_TYPE_SQLTCHAR"
49
if PLATFORM !~ /(mingw|cygwin)/ then
52
header = ["windows.h", "sqltypes.h"]
55
have_type("SQLLEN", header)
60
puts "WARNING: please check sqltypes.h for SQLLEN manually,"
61
puts "WARNING: if defined, modify CFLAGS in Makefile to contain"
62
puts "WARNING: the option -DHAVE_TYPE_SQLLEN"
65
if PLATFORM !~ /(mingw|cygwin)/ then
68
header = ["windows.h", "sqltypes.h"]
71
have_type("SQLULEN", header)
76
puts "WARNING: please check sqltypes.h for SQLULEN manually,"
77
puts "WARNING: if defined, modify CFLAGS in Makefile to contain"
78
puts "WARNING: the option -DHAVE_TYPE_SQLULEN"
80
$have_odbcinst_h = have_header("odbcinst.h")
82
if PLATFORM =~ /mswin32/ then
83
if !have_library_ex("odbc32", "SQLAllocConnect", "sql.h") ||
84
!have_library_ex("odbccp32", "SQLConfigDataSource", "odbcinst.h") ||
85
!have_library_ex("odbccp32", "SQLInstallerError", "odbcinst.h") ||
86
!have_library("user32", "CharUpper") then
87
puts "Can not locate odbc libraries"
90
have_func("SQLInstallerError", "odbcinst.h")
92
elsif PLATFORM =~ /(mingw|cygwin)/ then
93
have_library("odbc32", "")
94
have_library("odbccp32", "")
95
have_library("user32", "")
96
elsif (testdlopen && PLATFORM !~ /(macos|darwin)/ && CONFIG["CC"] =~ /gcc/ && have_func("dlopen", "dlfcn.h") && have_library("dl", "dlopen")) then
97
$LDFLAGS+=" -Wl,-init -Wl,ruby_odbc_init -Wl,-fini -Wl,ruby_odbc_fini"
98
$CPPFLAGS+=" -DHAVE_SQLCONFIGDATASOURCE"
99
$CPPFLAGS+=" -DHAVE_SQLINSTALLERERROR"
100
$CPPFLAGS+=" -DUSE_DLOPEN_FOR_ODBC_LIBS"
101
if defined? have_type then
102
if have_type("SQLBIGINT", "sqltypes.h", "-DHAVE_LONG_LONG") then
103
$CPPFLAGS+=" -DHAVE_LONG_LONG"
107
have_library("odbc", "SQLAllocConnect") ||
108
have_library("iodbc", "SQLAllocConnect")
110
have_library("odbcinst", "SQLConfigDataSource")) ||
112
have_library("iodbcinst", "SQLConfigDataSource"))
114
have_func("SQLInstallerError", "odbcinst.h")
115
if defined? have_type then
116
if have_type("SQLBIGINT", "sqltypes.h", "-DHAVE_LONG_LONG") then
117
$CPPFLAGS+=" -DHAVE_LONG_LONG"
122
create_makefile("odbc")