mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* configure.in (mingw32): use actual runtime DLL name as ruby DLL
name and default load path. * win32/Makefile.sub, win32/setup.mak: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
bea190a1fc
commit
f091f36035
4 changed files with 90 additions and 11 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
Wed Apr 13 19:25:31 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* configure.in (mingw32): use actual runtime DLL name as ruby DLL
|
||||||
|
name and default load path.
|
||||||
|
|
||||||
|
* win32/Makefile.sub, win32/setup.mak: ditto.
|
||||||
|
|
||||||
Tue Apr 12 19:30:36 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Tue Apr 12 19:30:36 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* lib/optparse.rb (OptionParser#make_switch, OptionParser#order!):
|
* lib/optparse.rb (OptionParser#make_switch, OptionParser#order!):
|
||||||
|
|
17
configure.in
17
configure.in
|
@ -169,6 +169,19 @@ cygwin*|mingw*)
|
||||||
AC_CHECK_TOOL(WINDRES, windres)
|
AC_CHECK_TOOL(WINDRES, windres)
|
||||||
AC_CHECK_TOOL(DLLWRAP, dllwrap)
|
AC_CHECK_TOOL(DLLWRAP, dllwrap)
|
||||||
target_cpu=`echo $target_cpu | sed s/i.86/i386/`
|
target_cpu=`echo $target_cpu | sed s/i.86/i386/`
|
||||||
|
case "$target_os" in
|
||||||
|
mingw*)
|
||||||
|
test "$rb_cv_msvcrt" = "" && unset rb_cv_msvcrt
|
||||||
|
AC_CHECK_TOOL(OBJDUMP, objdump)
|
||||||
|
AC_CACHE_CHECK(for mingw32 runtime DLL, rb_cv_msvcrt, [
|
||||||
|
AC_TRY_LINK([#include <stdio.h>],
|
||||||
|
[FILE* volatile f = stdin; return 0;],
|
||||||
|
[rb_cv_msvcrt=`$OBJDUMP -p conftest$ac_exeext |
|
||||||
|
sed -n '/^[[ ]]*DLL Name: /{s///p;q;}' |
|
||||||
|
tr A-Z a-z | sed 's/\.dll$//'`],
|
||||||
|
[rb_cv_msvcrt=msvcrt])])
|
||||||
|
test "$rb_cv_msvcrt" = "" && AC_MSG_ERROR([must be linked to DLL])
|
||||||
|
esac
|
||||||
: ${enable_shared=yes}
|
: ${enable_shared=yes}
|
||||||
;;
|
;;
|
||||||
aix*)
|
aix*)
|
||||||
|
@ -1298,7 +1311,7 @@ case "$target_os" in
|
||||||
AC_LIBOBJ([strftime])
|
AC_LIBOBJ([strftime])
|
||||||
;;
|
;;
|
||||||
mingw*)
|
mingw*)
|
||||||
RUBY_SO_NAME=msvcrt-'$(RUBY_INSTALL_NAME)'${MAJOR}${MINOR}
|
RUBY_SO_NAME=${rb_cv_msvcrt}-'$(RUBY_INSTALL_NAME)'${MAJOR}${MINOR}
|
||||||
if test x"$enable_shared" = xyes; then
|
if test x"$enable_shared" = xyes; then
|
||||||
LIBRUBY_SO='$(RUBY_SO_NAME)'.dll
|
LIBRUBY_SO='$(RUBY_SO_NAME)'.dll
|
||||||
LIBRUBY='lib$(LIBRUBY_SO).a'
|
LIBRUBY='lib$(LIBRUBY_SO).a'
|
||||||
|
@ -1429,7 +1442,7 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$target_os" in
|
case "$target_os" in
|
||||||
mingw*) sitearch="i386-msvcrt" ;;
|
mingw*) sitearch="i386-$rb_cv_msvcrt" ;;
|
||||||
*) sitearch="${arch}" ;;
|
*) sitearch="${arch}" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
|
@ -70,9 +70,11 @@ DEBUGFLAGS = -Zi
|
||||||
!if !defined(OPTFLAGS)
|
!if !defined(OPTFLAGS)
|
||||||
OPTFLAGS = -O2b2xg-
|
OPTFLAGS = -O2b2xg-
|
||||||
!endif
|
!endif
|
||||||
!if !defined(OS) || !defined(RT)
|
!if !defined(OS)
|
||||||
OS = mswin32
|
OS = mswin32
|
||||||
RT = msvcrt
|
!endif
|
||||||
|
!if !defined(RT)
|
||||||
|
!error RT not defined. Retry from configure pass.
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
!ifndef RUBY_SO_NAME
|
!ifndef RUBY_SO_NAME
|
||||||
|
|
|
@ -13,8 +13,7 @@ srcdir = $(WIN32DIR)/..
|
||||||
prefix = /usr
|
prefix = /usr
|
||||||
!endif
|
!endif
|
||||||
OS = mswin32
|
OS = mswin32
|
||||||
RT = msvcrt
|
BANG = !
|
||||||
INCLUDE = !include
|
|
||||||
APPEND = echo>>$(MAKEFILE)
|
APPEND = echo>>$(MAKEFILE)
|
||||||
!ifdef MAKEFILE
|
!ifdef MAKEFILE
|
||||||
MAKE = $(MAKE) -f $(MAKEFILE)
|
MAKE = $(MAKE) -f $(MAKEFILE)
|
||||||
|
@ -23,7 +22,8 @@ MAKEFILE = Makefile
|
||||||
!endif
|
!endif
|
||||||
ARCH = PROCESSOR_ARCHITECTURE
|
ARCH = PROCESSOR_ARCHITECTURE
|
||||||
CPU = PROCESSOR_LEVEL
|
CPU = PROCESSOR_LEVEL
|
||||||
CPP = cl -nologo -EP
|
CC = cl -nologo
|
||||||
|
CPP = $(CC) -EP
|
||||||
|
|
||||||
all: -prologue- -generic- -epilogue-
|
all: -prologue- -generic- -epilogue-
|
||||||
i386-$(OS): -prologue- -i386- -epilogue-
|
i386-$(OS): -prologue- -i386- -epilogue-
|
||||||
|
@ -32,7 +32,9 @@ i586-$(OS): -prologue- -i586- -epilogue-
|
||||||
i686-$(OS): -prologue- -i686- -epilogue-
|
i686-$(OS): -prologue- -i686- -epilogue-
|
||||||
alpha-$(OS): -prologue- -alpha- -epilogue-
|
alpha-$(OS): -prologue- -alpha- -epilogue-
|
||||||
|
|
||||||
-prologue-: nul
|
-prologue-: -basic-vars- -system-vars- -version-
|
||||||
|
|
||||||
|
-basic-vars-: nul
|
||||||
@type << > $(MAKEFILE)
|
@type << > $(MAKEFILE)
|
||||||
### Makefile for ruby $(OS) ###
|
### Makefile for ruby $(OS) ###
|
||||||
srcdir = $(srcdir:\=/)
|
srcdir = $(srcdir:\=/)
|
||||||
|
@ -42,7 +44,63 @@ EXTSTATIC = $(EXTSTATIC)
|
||||||
RDOCTARGET = $(RDOCTARGET)
|
RDOCTARGET = $(RDOCTARGET)
|
||||||
!endif
|
!endif
|
||||||
<<
|
<<
|
||||||
@$(CPP) -I$(srcdir) -DRUBY_EXTERN="//" <<"Creating $(MAKEFILE)" >> $(MAKEFILE)
|
|
||||||
|
-system-vars-: -osname- -runtime-
|
||||||
|
|
||||||
|
-osname-: nul
|
||||||
|
@echo OS = mswin32 >>$(MAKEFILE)
|
||||||
|
|
||||||
|
-runtime-: nul
|
||||||
|
@$(CC) -MD <<rtname.c user32.lib > nul
|
||||||
|
#include <windows.h>
|
||||||
|
#include <memory.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#ifndef MAXPATHLEN
|
||||||
|
# define MAXPATHLEN 1024
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int
|
||||||
|
runtime_name()
|
||||||
|
{
|
||||||
|
char libpath[MAXPATHLEN+1];
|
||||||
|
char *p, *base = NULL;
|
||||||
|
HMODULE msvcrt = NULL;
|
||||||
|
MEMORY_BASIC_INFORMATION m;
|
||||||
|
|
||||||
|
memset(&m, 0, sizeof(m));
|
||||||
|
if (VirtualQuery(stdin, &m, sizeof(m)) && m.State == MEM_COMMIT)
|
||||||
|
msvcrt = (HMODULE)m.AllocationBase;
|
||||||
|
GetModuleFileName(msvcrt, libpath, sizeof libpath);
|
||||||
|
|
||||||
|
libpath[sizeof(libpath) - 1] = '\0';
|
||||||
|
for (p = libpath; *p; p = CharNext(p)) {
|
||||||
|
if (*p == '\\') {
|
||||||
|
base = ++p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!base) return 0;
|
||||||
|
if (p = strchr(base, '.')) *p = '\0';
|
||||||
|
for (p = base; *p; p = CharNext(p)) {
|
||||||
|
if (isascii(*p) && isupper(*p))
|
||||||
|
*p = tolower(*p);
|
||||||
|
}
|
||||||
|
printf("RT = %s\n", base);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
if (!runtime_name()) return EXIT_FAILURE;
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
<<
|
||||||
|
@.\rtname >>$(MAKEFILE)
|
||||||
|
@del rtname.*
|
||||||
|
|
||||||
|
-version-: nul
|
||||||
|
@$(CPP) -I$(srcdir) -DRUBY_EXTERN="//" <<"Creating $(MAKEFILE)" | findstr /v /r ^^$$ >>$(MAKEFILE)
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
MAJOR = RUBY_VERSION_MAJOR
|
MAJOR = RUBY_VERSION_MAJOR
|
||||||
MINOR = RUBY_VERSION_MINOR
|
MINOR = RUBY_VERSION_MINOR
|
||||||
|
@ -79,7 +137,6 @@ $(CPU) = $(PROCESSOR_LEVEL)
|
||||||
-epilogue-: nul
|
-epilogue-: nul
|
||||||
@type << >>$(MAKEFILE)
|
@type << >>$(MAKEFILE)
|
||||||
# OS = $(OS)
|
# OS = $(OS)
|
||||||
# RT = $(RT)
|
|
||||||
# RUBY_INSTALL_NAME = ruby
|
# RUBY_INSTALL_NAME = ruby
|
||||||
# RUBY_SO_NAME = $$(RT)-$$(RUBY_INSTALL_NAME)$$(MAJOR)$$(MINOR)
|
# RUBY_SO_NAME = $$(RT)-$$(RUBY_INSTALL_NAME)$$(MAJOR)$$(MINOR)
|
||||||
# CFLAGS = -nologo -MD $$(DEBUGFLAGS) $$(OPTFLAGS) $$(PROCESSOR_FLAG)
|
# CFLAGS = -nologo -MD $$(DEBUGFLAGS) $$(OPTFLAGS) $$(PROCESSOR_FLAG)
|
||||||
|
@ -90,7 +147,7 @@ $(CPU) = $(PROCESSOR_LEVEL)
|
||||||
# RFLAGS = -r
|
# RFLAGS = -r
|
||||||
# EXTLIBS =
|
# EXTLIBS =
|
||||||
|
|
||||||
$(INCLUDE) $$(srcdir)/win32/Makefile.sub
|
$(BANG)include $$(srcdir)/win32/Makefile.sub
|
||||||
<<
|
<<
|
||||||
@$(srcdir:/=\)\win32\rm.bat config.h config.status
|
@$(srcdir:/=\)\win32\rm.bat config.h config.status
|
||||||
@echo type `$(MAKE)' to make ruby for $(OS).
|
@echo type `$(MAKE)' to make ruby for $(OS).
|
||||||
|
|
Loading…
Add table
Reference in a new issue