[前][次][番号順一覧][スレッド一覧]

ruby-changes:22677

From: akr <ko1@a...>
Date: Wed, 22 Feb 2012 06:14:03 +0900 (JST)
Subject: [ruby-changes:22677] akr:r34726 (trunk): * ext/dbm/extconf.rb: check DBM_SUFFIX for Mac OS X.

akr	2012-02-22 06:13:52 +0900 (Wed, 22 Feb 2012)

  New Revision: 34726

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34726

  Log:
    * ext/dbm/extconf.rb: check DBM_SUFFIX for Mac OS X.
      Its ndbm.h doesn't include db.h.

  Modified files:
    trunk/ChangeLog
    trunk/ext/dbm/dbm.c
    trunk/ext/dbm/extconf.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 34725)
+++ ChangeLog	(revision 34726)
@@ -1,3 +1,8 @@
+Wed Feb 22 06:12:15 2012  Tanaka Akira  <akr@f...>
+
+	* ext/dbm/extconf.rb: check DBM_SUFFIX for Mac OS X.
+	  Its ndbm.h doesn't include db.h.
+
 Wed Feb 22 06:02:42 2012  Tanaka Akira  <akr@f...>
 
 	* ext/dbm/dbm.c (fdbm_initialize): disable Berkeley DB error messages.
Index: ext/dbm/dbm.c
===================================================================
--- ext/dbm/dbm.c	(revision 34725)
+++ ext/dbm/dbm.c	(revision 34726)
@@ -197,7 +197,7 @@
         rb_fd_fix_cloexec(dbm_dirfno(dbm));
 #endif
 
-#if defined(_DB_H_) && defined(HAVE_TYPE_DBC)
+#if defined(RUBYDBM_DB_HEADER) && defined(HAVE_TYPE_DBC)
     /* Disable Berkeley DB error messages such as:
      * DB->put: attempt to modify a read-only database */
         ((DBC*)dbm)->dbp->set_errfile(((DBC*)dbm)->dbp, NULL);
@@ -1101,7 +1101,7 @@
 #  else
     rb_define_const(rb_cDBM, "VERSION",  rb_str_new2("GDBM (unknown)"));
 #  endif
-#elif defined(_DB_H_)
+#elif defined(RUBYDBM_DB_HEADER)
 #  if defined(HAVE_DB_VERSION)
     /* The version of the dbm library, if using Berkeley DB */
     rb_define_const(rb_cDBM, "VERSION",  rb_str_new2(db_version(NULL, NULL, NULL)));
Index: ext/dbm/extconf.rb
===================================================================
--- ext/dbm/extconf.rb	(revision 34725)
+++ ext/dbm/extconf.rb	(revision 34726)
@@ -152,6 +152,9 @@
   # it defines _DB_H_.
   have_db_header = have_macro('_DB_H_', hdr, hsearch)
 
+  # Mac OS X uses Berkeley DB 1 but ndbm.h doesn't include db.h.
+  have_db_header |= have_macro('DBM_SUFFIX', hdr, hsearch)
+
   # Old GDBM's ndbm.h, until 1.8.3, defines dbm_clearerr as a macro which
   # expands to no tokens.
   have_gdbm_header1 = have_empty_macro_dbm_clearerr(hdr, hsearch)
@@ -172,6 +175,10 @@
     return false
   end
 
+  if have_db_header
+    $defs.push('-DRUBYDBM_DB_HEADER')
+  end
+
   have_gdbm_header = have_gdbm_header1 | have_gdbm_header2
   if have_gdbm_header
     $defs.push('-DRUBYDBM_GDBM_HEADER')

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]