[#7102] Ruby 1.3.4-990611 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.4-990611 is out, check out:

20 messages 1999/06/11

[#7223] Ruby 1.3.4-990625 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.4-990625 is out, check out:

14 messages 1999/06/25
[#7224] -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625) — Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp> 1999/06/25

早坂@会津大学です。

[ruby-dev:7220] install report (1.3.4-990624)

From: Katsuyuki Komatsu <komatsu@...>
Date: 1999-06-25 07:50:00 UTC
List: ruby-dev #7220
小松です。

1.  ext/*/lib/*.rbがインストールされない

    既存のマシンではファイルが残っていたので気がつかなかったのですが、
    Build Directoryを作って作成する手順 ([ruby-dev:6897]参照) で
    新規のマシン (RedHat-5.2) にrubyを入れたところ、
    kconv.rb等の「ext/*/lib/*.rb」がインストールされませんでした。
    ext/extmk.rb.inを変更して対処。

2.  ext/*/dependが無視される

    Build Directoryを作成した場合、ext/*/dependがまったく無視されて
    いました。あと、たとえばext/dbm/dependは、
	dbm.o: dbm.c $(hdrdir)/ruby.h $(hdrdir)/config.h $(hdrdir)/defines.h
    となってますが、config.hはruby.hとある場所が違うので、
    Makefileにtopdirを導入して、ext/extmk.rb.inで
	$(hdrdir)/config.h → $(topdir)/config.h
    にするような変更をしています。
    dependを全部書き換えるのは面倒なのでやめました。
    これに伴いAIXのDLDFLAGSの、
	-bI:$(hdrdir)/ruby.imp
    を
	-bI:$(topdir)/ruby.imp
    に変更しました。
    configure.in, lib/mkmf.rb, ext/extmk.rb.inを変更して対処。

3.  RedHat 5.2 --enable-sharedの微調整

    RedHat 5.2で--enable-sharedでインストール後に環境変数
    LD_LIBRARY_PATHを設定しなくてもシェアードライブラリを見つけ
    られるようにconfigure.inで
	-Wl,-rpath,/usr/lib:/lib:${prefix}/lib
    をXLDFLAGSを使って追加しました。
    他のプラットフォームと違ってデフォルトのパス (/lib) も入れる
    必要がありました。/usr/libは不要ですがld(1)の記述を尊重して
    念のため入れています。
    configure.inを変更して対処。

Index: configure.in
===================================================================
RCS file: /home/cvs/ruby/configure.in,v
retrieving revision 1.1.1.2.2.22
diff -u -r1.1.1.2.2.22 configure.in
--- configure.in	1999/06/24 04:23:47	1.1.1.2.2.22
+++ configure.in	1999/06/25 07:25:05
@@ -458,7 +458,7 @@
 			rb_cv_dlopen=yes ;;
 	aix*)		LDSHARED='/usr/ccs/bin/ld'
 			XLDFLAGS='-Wl,-bE:ruby.imp'
-			DLDFLAGS='-eInit_$(TARGET) -bI:$(hdrdir)/ruby.imp -bM:SRE -T512 -H512 -lc'
+			DLDFLAGS='-eInit_$(TARGET) -bI:$(topdir)/ruby.imp -bM:SRE -T512 -H512 -lc'
 			rb_cv_dlopen=yes ;;
 
 	human*)		DLDFLAGS=''
@@ -673,7 +673,11 @@
   LIBRUBYARG='-L. -l$(RUBY_INSTALL_NAME)'
   CFLAGS="$CFLAGS $CCDLFLAGS"
   case "$host_os" in
-    sunos4*|linux*)
+    sunos4*)
+	LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_INSTALL_NAME).so'
+	;;
+    linux*)
+	XLDFLAGS='-Wl,-rpath,/usr/lib:/lib:${prefix}/lib'
 	LIBRUBY_ALIASES='lib$(RUBY_INSTALL_NAME).so.$(MAJOR).$(MINOR) lib$(RUBY_INSTALL_NAME).so'
 	;;
     freebsd*)
Index: ext/extmk.rb.in
===================================================================
RCS file: /home/cvs/ruby/ext/extmk.rb.in,v
retrieving revision 1.1.1.3.2.22
diff -u -r1.1.1.3.2.22 extmk.rb.in
--- ext/extmk.rb.in	1999/06/24 04:24:05	1.1.1.3.2.22
+++ ext/extmk.rb.in	1999/06/25 07:25:05
@@ -147,12 +147,13 @@
   end
 end
 
-def install_rb(mfile)
+def install_rb(mfile, srcdir)
+  libdir = srcdir + "/lib"
   path = []
   dir = []
-  Find.find("lib") do |f|
+  Find.find(libdir) do |f|
     next unless /\.rb$/ =~ f
-    f = f[4..-1]
+    f = f[libdir.length+1..-1]
     path.push f
     dir |= File.dirname(f)
   end
@@ -161,7 +162,7 @@
     mfile.printf "\t@test -d $(DESTDIR)$(pkglibdir)/%s || mkdir $(DESTDIR)$(pkglibdir)/%s\n", f, f
   end
   for f in path
-    mfile.printf "\t$(INSTALL_DATA) lib/%s $(DESTDIR)$(pkglibdir)/%s\n", f, f
+    mfile.printf "\t$(INSTALL_DATA) $(srcdir)/lib/%s $(DESTDIR)$(pkglibdir)/%s\n", f, f
   end
 end
 
@@ -347,13 +348,14 @@
 srcdir = #{$srcdir}
 VPATH = #{$srcdir}
 
-hdrdir = #{$topdir}
+topdir = #{$topdir}
+hdrdir = #{$top_srcdir}
 DESTDIR = 
 
 CC = @CC@
 
 prefix = @prefix@
-CFLAGS   = %s -I#{$topdir} -I#{$top_srcdir} -I@includedir@ #{CFLAGS} #$CFLAGS %s
+CFLAGS   = %s -I$(topdir) -I$(hdrdir) -I@includedir@ #{CFLAGS} #$CFLAGS %s
 DLDFLAGS = #$DLDFLAGS #$LDFLAGS
 LDSHARED = @LDSHARED@ #{defflag}
 ", if $static then "" else "@CCDLFLAGS@" end, $defs.join(" ")
@@ -418,7 +420,7 @@
 	$(INSTALL_DLLIB) $(DLLIB) $(DESTDIR)$(archdir)/$(DLLIB)
 "
   end
-  install_rb(mfile)
+  install_rb(mfile, $srcdir)
   mfile.printf "\n"
 
   if $static
@@ -449,11 +451,11 @@
 "
   end
 
-  if File.exist?("depend")
-    dfile = open("depend", "r")
+  if File.exist?("#{$srcdir}/depend")
+    dfile = open("#{$srcdir}/depend", "r")
     mfile.printf "###\n"
     while line = dfile.gets()
-      mfile.printf "%s", line
+      mfile.printf "%s", line.gsub('\$\(hdrdir\)/config.h', '$(topdir)/config.h')
     end
     dfile.close
   end
Index: lib/mkmf.rb
===================================================================
RCS file: /home/cvs/ruby/lib/mkmf.rb,v
retrieving revision 1.1.1.2.2.18
diff -u -r1.1.1.2.2.18 mkmf.rb
--- lib/mkmf.rb	1999/06/24 04:24:08	1.1.1.2.2.18
+++ lib/mkmf.rb	1999/06/25 07:25:05
@@ -349,6 +349,7 @@
 #### Start of system configuration section. ####
 
 srcdir = #{$srcdir}
+topdir = #{$hdrdir}
 hdrdir = #{$hdrdir}
 
 CC = #{CONFIG["CC"]}

--
小松克行 / Katsuyuki Komatsu <komatsu@sarion.co.jp>

In This Thread

Prev Next