[#38323] [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合 — oshida@...

押田です。

22 messages 2009/04/24
[#38331] Re: [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合 — Hidetoshi NAGAI <nagai@...> 2009/04/26

永井@知能.九工大です.

[#38339] Re: [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合 — oshida@... 2009/04/27

押田です。

[#38340] Re: [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合 — Hidetoshi NAGAI <nagai@...> 2009/04/27

永井@知能.九工大です.

[#38697] Re: [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合 — Hidetoshi NAGAI <nagai@...> 2009/06/21

永井@知能.九工大です.

[#38711] Re: [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合 — oshida@... 2009/06/24

押田です。

[#38723] Re: [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合 — Hidetoshi NAGAI <nagai@...> 2009/07/01

永井@知能.九工大です.

[#38743] Re: [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合 — oshida@... 2009/07/07

押田です。

[#38747] Re: [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合 — Hidetoshi NAGAI <nagai@...> 2009/07/08

永井@知能.九工大です.

[#38748] Re: [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合 — oshida@... 2009/07/08

押田です。

[#38749] Re: [1.8.7][1.9.1][tk] 自前実装の拡張 widget を使いたい場合 — Hidetoshi NAGAI <nagai@...> 2009/07/08

永井@知能.九工大です.

[ruby-dev:38286] Re: MinGW における拡張ライブラリ作成と Ruby 1.8/1.9 共存について

From: Nobuyoshi Nakada <nobu@...>
Date: 2009-04-07 10:43:22 UTC
List: ruby-dev #38286
なかだです。

At Wed, 1 Apr 2009 22:47:23 +0900,
Hajime Hoshi wrote in [ruby-dev:38241]:
> 1. のために Ruby コンパイル時の configure に --program-suffix 引数をつけた場合、
> ライブラリのファイル名も変わってしまうため、 2. の条件が満たされません。

[ruby-dev:38255]も含めて、--program-suffixにライブラリ名やパス名
まで影響を受けるのは利点よりも面倒なことのほうが多い気がします。


Index: configure.in
===================================================================
--- configure.in	(revision 23150)
+++ configure.in	(working copy)
@@ -112,4 +112,6 @@ if test "$program_prefix" = NONE; then
   program_prefix=
 fi
+RUBY_BASE_NAME=ruby
+AC_SUBST(RUBY_BASE_NAME)
 
 AC_CANONICAL_TARGET
@@ -1924,5 +1926,5 @@ case "$target_os" in
 esac
 
-RUBY_SO_NAME='$(RUBY_INSTALL_NAME)'
+RUBY_SO_NAME='$(RUBY_BASE_NAME)'
 LIBRUBY_LDSHARED=$LDSHARED
 LIBRUBY_DLDFLAGS=$DLDFLAGS
@@ -2012,5 +2014,5 @@ if test "$enable_shared" = 'yes'; then
 	LIBRUBY_DLDFLAGS="$LIBRUBY_DLDFLAGS "'-Wl,-unexported_symbol,_Init_* $(XLDFLAGS)'
 	LIBRUBY_SO='lib$(RUBY_SO_NAME).dylib.$(MAJOR).$(MINOR).$(TEENY)'
-	LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).dylib lib$(RUBY_INSTALL_NAME).$(MAJOR).$(MINOR).dylib lib$(RUBY_INSTALL_NAME).dylib'
+	LIBRUBY_ALIASES='lib$(RUBY_SO_NAME).dylib lib$(RUBY_BASE_NAME).$(MAJOR).$(MINOR).dylib lib$(RUBY_INSTALL_NAME).dylib'
 	;;
     when(interix*)
@@ -2102,14 +2104,15 @@ case "$target_os" in
 	;;
     when(cygwin*|mingw*)
+	RUBY_SO_NAME="${RUBY_SO_NAME}${MAJOR}${MINOR}${TEENY}"
 	LIBRUBY_DLDFLAGS="${DLDFLAGS}"' -Wl,--out-implib=$(LIBRUBY)'
 	case "$target_os" in
 	when(cygwin*)
 	    if test x"$enable_shared" = xyes; then
-		LIBRUBY_SO='cyg$(RUBY_SO_NAME)'${MAJOR}${MINOR}${TEENY}.dll
+		LIBRUBY_SO='cyg$(RUBY_SO_NAME).dll'
 		LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)'
 	    fi
 	    ;;
 	when(mingw*)
-	    RUBY_SO_NAME=${rb_cv_msvcrt}-'$(RUBY_INSTALL_NAME)'${MAJOR}${MINOR}${TEENY}
+	    RUBY_SO_NAME="${rb_cv_msvcrt}-${RUBY_SO_NAME}"
 	    if test x"$enable_shared" = xyes; then
 		LIBRUBY_SO='$(RUBY_SO_NAME)'.dll
@@ -2267,12 +2270,19 @@ test "$program_suffix" != NONE &&
   ri_suffix=$program_suffix
 
-RUBY_INSTALL_NAME="${ri_prefix}ruby${ri_suffix}"
+RUBY_INSTALL_NAME="${ri_prefix}"'$(RUBY_BASE_NAME)'"${ri_suffix}"
 case "$target_os" in
   when(cygwin*|mingw*)
-    RUBYW_INSTALL_NAME="${ri_prefix}rubyw${ri_suffix}"
-    rubyw_install_name="$RUBYW_INSTALL_NAME"
+    RUBYW_INSTALL_NAME="${ri_prefix}"'$(RUBY_BASE_NAME)w'"${ri_suffix}"
+    rubyw_install_name='$(RUBYW_INSTALL_NAME)'
     ;;
 esac
-RUBY_LIB_PREFIX=`eval echo \\"${libdir}/${RUBY_INSTALL_NAME}\\"`
+
+rubylibprefix='${libdir}/${RUBY_BASE_NAME}'
+AC_ARG_WITH(rubylibprefix,
+	    AS_HELP_STRING([--with-rubylibprefix=DIR], [prefix for ruby libraries [[LIBDIR/RUBY_INSTALL_NAME]]]),
+	    [rubylibprefix=$withval])
+
+RUBY_LIB_PREFIX=`eval echo \\"${rubylibprefix}\\"`
+AC_SUBST(rubylibprefix)
 
 AC_ARG_WITH(ruby-version,
@@ -2306,12 +2316,18 @@ AC_ARG_WITH(sitedir,
 	    AS_HELP_STRING([--with-sitedir=DIR], [site libraries in DIR [[RUBY_LIB_PREFIX/site_ruby]]]),
             [sitedir=$withval],
-            [sitedir='${libdir}/${RUBY_INSTALL_NAME}/site_ruby'])
-SITE_DIR=`eval echo \\"${sitedir}\\"`
+            [sitedir='${rubylibprefix}/site_ruby'])
+dir="${sitedir}"
+until SITE_DIR=`eval echo \\"${dir}\\"`; test "${dir}" = "${SITE_DIR}"; do
+    dir="${SITE_DIR}"
+done
 
 AC_ARG_WITH(vendordir,
 	    AS_HELP_STRING([--with-vendordir=DIR], [vendor libraries in DIR [[RUBY_LIB_PREFIX/vendor_ruby]]]),
             [vendordir=$withval],
-            [vendordir='${libdir}/${RUBY_INSTALL_NAME}/vendor_ruby'])
-VENDOR_DIR=`eval echo \\"${vendordir}\\"`
+            [vendordir='${rubylibprefix}/vendor_ruby'])
+dir="${vendordir}"
+until VENDOR_DIR=`eval echo \\"${dir}\\"`; test "${dir}" = "${VENDOR_DIR}"; do
+    dir="${VENDOR_DIR}"
+done
 
 if test "${LOAD_RELATIVE+set}"; then
@@ -2415,7 +2431,7 @@ fi
 
 AC_ARG_WITH(rubyhdrdir,
-	    AS_HELP_STRING([--with-rubyhdrdir=DIR], [core headers in DIR [[INCLUDEDIR/RUBY_INSTALL_NAME/RUBY_VERSION]]]),
+	    AS_HELP_STRING([--with-rubyhdrdir=DIR], [core headers in DIR [[INCLUDEDIR/RUBY_BASE_NAME/RUBY_VERSION]]]),
 	    [rubyhdrdir=$withval],
-	    [rubyhdrdir='${includedir}/${RUBY_INSTALL_NAME}-${ruby_version}'])
+	    [rubyhdrdir='${includedir}/${RUBY_BASE_NAME}-${ruby_version}'])
 
 AC_ARG_WITH(sitehdrdir,
@@ -2486,5 +2502,5 @@ AC_SUBST(BUILTIN_TRANSSRCS)
 AC_SUBST(BUILTIN_TRANSOBJS)
 
-PACKAGE=$RUBY_INSTALL_NAME
+PACKAGE=$RUBY_BASE_NAME
 AC_SUBST(PACKAGE)
 AC_MSG_RESULT($PACKAGE library version = $ruby_version)
Index: win32/Makefile.sub
===================================================================
--- win32/Makefile.sub	(revision 23150)
+++ win32/Makefile.sub	(working copy)
@@ -33,6 +33,9 @@ LIB = $(pathlist:;=/lib;)
 srcdir = ..
 !endif
+!ifndef RUBY_BASE_NAME
+RUBY_BASE_NAME = ruby
+!endif
 !ifndef RUBY_INSTALL_NAME
-RUBY_INSTALL_NAME = $(PROGRAM_PREFIX)ruby$(RUBY_SUFFIX)
+RUBY_INSTALL_NAME = $(PROGRAM_PREFIX)$(RUBY_BASE_NAME)$(RUBY_SUFFIX)
 !endif
 !if !defined(RUBYW_INSTALL_NAME) || "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)"
@@ -117,5 +120,5 @@ ruby_version = $(MAJOR).$(MINOR).$(TEENY
 
 !ifndef RUBY_SO_NAME
-RUBY_SO_NAME = $(RT)-$(RUBY_INSTALL_NAME)$(MAJOR)$(MINOR)$(TEENY)
+RUBY_SO_NAME = $(RT)-$(RUBY_BASE_NAME)$(MAJOR)$(MINOR)$(TEENY)
 !endif
 !ifndef RUBY_PLATFORM
@@ -530,5 +533,5 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/
 #define DLEXT ".so"
 #define RUBY_LIB_VERSION_STYLE 3	/* full */
-#define RUBY_LIB_PREFIX "/lib/$(RUBY_INSTALL_NAME)"
+#define RUBY_LIB_PREFIX "/lib/$(RUBY_BASE_NAME)"
 #define RUBY_LIB RUBY_LIB_PREFIX"/"RUBY_LIB_VERSION
 #define RUBY_SITE_LIB RUBY_LIB_PREFIX"/site_ruby"
@@ -646,4 +649,5 @@ s,@RDOCTARGET@,,;t t
 s,@LIBRUBY_LDSHARED@,$(LIBRUBY_LDSHARED),;t t
 s,@LIBRUBY_DLDFLAGS@,$(LIBRUBY_DLDFLAGS),;t t
+s,@RUBY_BASE_NAME@,$(RUBY_BASE_NAME),;t t
 s,@RUBY_INSTALL_NAME@,$(RUBY_INSTALL_NAME),;t t
 s,@rubyw_install_name@,$(RUBYW_INSTALL_NAME),;t t
@@ -687,7 +691,8 @@ s,@arch@,$(ARCH)-$(PLATFORM),;t t
 s,@sitearch@,$(ARCH)-$(RT),;t t
 s,@ruby_version@,$(ruby_version),;t t
-s,@sitedir@,$${prefix}/lib/$${RUBY_INSTALL_NAME}/site_ruby,;t t
-s,@vendordir@,$${prefix}/lib/$${RUBY_INSTALL_NAME}/vendor_ruby,;t t
-s,@rubyhdrdir@,$$(includedir)/$${RUBY_INSTALL_NAME}-$$(ruby_version),;t t
+s,@rubylibprefix@,$${prefix}/lib/$${RUBY_BASE_NAME},;t t
+s,@sitedir@,$${rubylibprefix}/site_ruby,;t t
+s,@vendordir@,$${rubylibprefix}/vendor_ruby,;t t
+s,@rubyhdrdir@,$$(includedir)/$${RUBY_BASE_NAME}-$$(ruby_version),;t t
 s,@sitehdrdir@,$$(rubyhdrdir)/site_ruby,;t t
 s,@vendorhdrdir@,$$(rubyhdrdir)/vendor_ruby,;t t


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread