From: WATANABE Hirofumi Date: 1999-06-02T17:58:05+09:00 Subject: [ruby-dev:7067] --enable-shared for cygwin わたなべです. 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"