[#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:7067] --enable-shared for cygwin

From: WATANABE Hirofumi <watanabe@...>
Date: 1999-06-02 08:58:05 UTC
List: ruby-dev #7067
わたなべです.

cygwin で --enable-shared を使えるようにしました.
dllwrap を使ってるので b20.1 以降のみです.
その他もろもろの修正.

現在は
% env CFLAGS=-O2 ./configure --with-readline-dir=/usr/local --enable-shared i386-cygwin
という設定で実行してます.

print $& if /.*/ === 'Just another Ruby hacker,'
-- 
わたなべひろふみ

diff -u1rN ruby-1.3.4-990531/configure.in 0531/configure.in
--- ruby-1.3.4-990531/configure.in	Mon May 31 12:28:56 1999
+++ 0531/configure.in	Wed Jun 02 02:07:42 1999
@@ -150,2 +150,3 @@
 beos*)		;;
+cygwin*)	;;
 *) LIBS="-lm $LIBS";;
@@ -381,3 +382,3 @@
     human*)	;;
-    cygwin*)	CCDLFLAGS=-DDLLIMPORT;;
+    cygwin*)	;;
     *) CCDLFLAGS=-fPIC;;
@@ -472,3 +473,3 @@
 			rb_cv_dlopen=yes ;;
-	cygwin*)	LDSHARED='../../miniruby ../cygwin32_ld.rb'
+	cygwin*)	LDSHARED='dllwrap --export-all -s'
 			rb_cv_dlopen=yes ;;
@@ -654,2 +655,3 @@
 
+FIRSTMAKEFILE=""
 LIBRUBY_LDSHARED=$LDSHARED
@@ -691,2 +693,11 @@
 	;;
+    cygwin*)
+	LIBRUBY_SO='lib$(RUBY_INSTALL_NAME).a'
+	LIBRUBY_ALIASES=''
+	LIBRUBY_A='lib$(RUBY_INSTALL_NAME)s.a'
+	LIBRUBYARG='-L. -l$(RUBY_INSTALL_NAME)'
+	FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in
+	LIBOBJS="$LIBOBJS strftime.o"
+	CCDLFLAGS=-DUSEIMPORTLIB
+	    ;;
     *)
@@ -757,2 +768,2 @@
 
-AC_OUTPUT(Makefile ext/extmk.rb)
+AC_OUTPUT($FIRSTMAKEFILE Makefile ext/extmk.rb)
diff -u1rN ruby-1.3.4-990531/cygwin/GNUmakefile.in 0531/cygwin/GNUmakefile.in
--- ruby-1.3.4-990531/cygwin/GNUmakefile.in	Wed Jun 02 02:14:46 1999
+++ 0531/cygwin/GNUmakefile.in	Wed Jun 02 02:11:24 1999
@@ -0,0 +1,9 @@
+include Makefile
+
+RUBYCWDLL=rubycw.dll
+
+miniruby$(binsuffix): $(RUBYCWDLL)
+
+$(RUBYCWDLL): $(OBJS) dmyext.o
+	dllwrap -o $(RUBYCWDLL) --export-all --output-lib=$(LIBRUBY_SO) --dllname=$(RUBYCWDLL) -Wl,-e,__cygwin_noncygwin_dll_entry@12 --add-stdcall-alias -s $(OBJS) dmyext.o
+	nm --extern-only $(OBJS) dmyext.o | sed -n '/^........ [CD] _\(.*\)$$/s//#define \1 (*__imp_\1)/p' >import.h 
diff -u1rN ruby-1.3.4-990531/ext/extmk.rb.in 0531/ext/extmk.rb.in
--- ruby-1.3.4-990531/ext/extmk.rb.in	Thu May 20 14:58:40 1999
+++ 0531/ext/extmk.rb.in	Wed Jun 02 00:39:29 1999
@@ -326,2 +326,15 @@
 
+  defflag = ''
+  if PLATFORM =~ /cygwin/ and not $static
+    if File.exist? target + ".def"
+      defflag = "--def=" + target + ".def"
+    end
+    if $libs
+      $libs = $libs + " @LIBRUBYARG@"
+    else
+      $libs = "@LIBRUBYARG@"
+    end
+    $DLDFLAGS = $DLDFLAGS + " -L" + $topdir
+  end
+
   $srcdir = $top_srcdir + "/ext/" + $mdir
@@ -344,3 +357,3 @@
 DLDFLAGS = #$DLDFLAGS #$LDFLAGS
-LDSHARED = @LDSHARED@
+LDSHARED = @LDSHARED@ #{defflag}
 ", if $static then "" else "@CCDLFLAGS@" end, $defs.join(" ")
diff -u1rN ruby-1.3.4-990531/ext/readline/extconf.rb 0531/ext/readline/extconf.rb
--- ruby-1.3.4-990531/ext/readline/extconf.rb	Wed May 05 19:39:57 1999
+++ 0531/ext/readline/extconf.rb	Tue Jun 01 22:25:10 1999
@@ -18,2 +18,3 @@
 
+have_library("user32", nil) if /cygwin/ === PLATFORM
 have_library("termcap", "tgetnum")
diff -u1rN ruby-1.3.4-990531/ext/socket/extconf.rb 0531/ext/socket/extconf.rb
--- ruby-1.3.4-990531/ext/socket/extconf.rb	Thu May 20 13:37:45 1999
+++ 0531/ext/socket/extconf.rb	Tue Jun 01 22:25:10 1999
@@ -8,4 +8,7 @@
   have_library("wsock32", "WSACleanup")
-when /cygwin32/
+when /cygwin/
+  $LDFLAGS << " -L/usr/lib" if File.directory?("/usr/lib")
+  $CFLAGS << " -I/usr/include"
   test_func = "socket"
+  have_library("bind", "gethostbyaddr")
 when /beos/
diff -u1rN ruby-1.3.4-990531/hash.c 0531/hash.c
--- ruby-1.3.4-990531/hash.c	Tue May 25 17:26:00 1999
+++ 0531/hash.c	Tue Jun 01 22:25:10 1999
@@ -1050,2 +1050,9 @@
 
+#elif defined __CYGWIN__
+#undef setenv
+#undef unsetenv
+    if (value)
+	setenv(name,value,1);
+    else
+	unsetenv(name);
 #else  /* WIN32 */
diff -u1rN ruby-1.3.4-990531/ruby.h 0531/ruby.h
--- ruby-1.3.4-990531/ruby.h	Thu May 27 15:55:13 1999
+++ 0531/ruby.h	Tue Jun 01 22:25:10 1999
@@ -80,3 +80,3 @@
 #if defined(__CYGWIN32__)
-#if defined(DLLIMPORT)
+#if defined(USEIMPORTLIB)
 #include "import.h"

In This Thread