こんにちは、なかむら(う)です。
In message "[ruby-dev:25535] Re: merge tcltklib and tk"
on Jan.26,2005 11:29:00, <usa / garbagecollect.jp> wrote:
| うーん、mkmf.rbから手を入れないとどうしようもなさそうです。
とか言いつつ、やっぱりmake自体が通らないのは不便なので、汚く
どうにかしてみました。
他プラットフォームへの副作用とかは未確認です。
Index: ext/tk/extconf.rb
===================================================================
RCS file: /home/cvs/ruby/ext/tk/extconf.rb,v
retrieving revision 1.5
diff -u -1 -p -r1.5 extconf.rb
--- ext/tk/extconf.rb 25 Jan 2005 14:31:44 -0000 1.5
+++ ext/tk/extconf.rb 26 Jan 2005 02:54:48 -0000
@@ -309,3 +309,8 @@ if mac_need_framework ||
- mk_tkutil << "$(DLLIB2): $(OBJS2)\n\t"
+ DLDFLAGS2 = "#$LDFLAGS #$DLDFLAGS #$ARCH_FLAG".gsub(/\$\(DEFFILE\)/, '$(DEFFILE2)')
+ mk_tkutil << "DLDFLAGS2 = #{DLDFLAGS2}\n"
+ mk_tkutil << "DEFFILE2 = $(TARGET2)-$(arch).def\n" if EXPORT_PREFIX
+ mk_tkutil << "\n"
+
+ mk_tkutil << "$(DLLIB2): #{EXPORT_PREFIX ? '$(DEFFILE2) ':''}$(OBJS2)\n\t"
mk_tkutil << "@-$(RM) $@\n\t"
@@ -313,8 +318,3 @@ if mac_need_framework ||
- LINK_SO2 = if CONFIG["DLEXT"] == $OBJEXT
- "ld $(DLDFLAGS) -r -o $(DLLIB2) $(OBJS2)\n"
- else
- "$(LDSHARED) $(DLDFLAGS) $(LIBPATH) #{OUTFLAG}$(DLLIB2) " \
- "$(OBJS2) $(LOCAL_LIBS) $(LIBS)"
- end
+ LINK_SO2 = LINK_SO.gsub(/\$\(DLLIB\)/, '$(DLLIB2)').gsub(/\$\(OBJS\)/, '$(OBJS2)').gsub(/\$\(DLDFLAGS\)/, '$(DLDFLAGS2)')
mk_tkutil << LINK_SO2
@@ -322,8 +322,17 @@ if mac_need_framework ||
mk_tkutil << "\n\n"
- mk_tkutil << "$(STATIC_LIB2): $(OBJS2)\n\t"
- mk_tkutil << "$(AR) #{config_string('ARFLAGS') || 'cru '}$@ $(OBJS2)"
- if ranlib = config_string('RANLIB')
- mk_tkutil << "\n\t@-#{ranlib} $(DLLIB2) 2> /dev/null || true"
+ unless $static.nil?
+ mk_tkutil << "$(STATIC_LIB2): $(OBJS2)\n\t"
+ mk_tkutil << "$(AR) #{config_string('ARFLAGS') || 'cru '}$@ $(OBJS2)"
+ if ranlib = config_string('RANLIB')
+ mk_tkutil << "\n\t@-#{ranlib} $(DLLIB2) 2> /dev/null || true"
+ end
+ end
+ mk_tkutil << "\n\n"
+
+ if EXPORT_PREFIX
+ mk_tkutil << "$(DEFFILE2):\n"
+ mk_tkutil << %Q!\t$(RUBY) -e "puts 'EXPORTS', 'Init_$(TARGET2)'" > $@\n!
+ mk_tkutil << "\n\n"
end
- mk_tkutil << "\n\n\n"
+ mk_tkutil << "\n"
それでは。
--
U.Nakamura <usa / garbagecollect.jp>