diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-04-13 10:25:41 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-04-13 10:25:41 +0000 |
commit | f091f360356f942cf829ae741bd7dcc7c189c991 (patch) | |
tree | d60d3381dd3e1c78b1817860986b15176aadbd9e /win32/setup.mak | |
parent | bea190a1fce429ebf080d59faa637f796227dc50 (diff) | |
download | ruby-f091f360356f942cf829ae741bd7dcc7c189c991.tar.gz |
* 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
Diffstat (limited to 'win32/setup.mak')
-rw-r--r-- | win32/setup.mak | 71 |
1 files changed, 64 insertions, 7 deletions
diff --git a/win32/setup.mak b/win32/setup.mak index fa0c260001..a8ba23586e 100644 --- a/win32/setup.mak +++ b/win32/setup.mak @@ -13,8 +13,7 @@ srcdir = $(WIN32DIR)/.. prefix = /usr !endif OS = mswin32 -RT = msvcrt -INCLUDE = !include +BANG = ! APPEND = echo>>$(MAKEFILE) !ifdef MAKEFILE MAKE = $(MAKE) -f $(MAKEFILE) @@ -23,7 +22,8 @@ MAKEFILE = Makefile !endif ARCH = PROCESSOR_ARCHITECTURE CPU = PROCESSOR_LEVEL -CPP = cl -nologo -EP +CC = cl -nologo +CPP = $(CC) -EP all: -prologue- -generic- -epilogue- i386-$(OS): -prologue- -i386- -epilogue- @@ -32,7 +32,9 @@ i586-$(OS): -prologue- -i586- -epilogue- i686-$(OS): -prologue- -i686- -epilogue- alpha-$(OS): -prologue- -alpha- -epilogue- --prologue-: nul +-prologue-: -basic-vars- -system-vars- -version- + +-basic-vars-: nul @type << > $(MAKEFILE) ### Makefile for ruby $(OS) ### srcdir = $(srcdir:\=/) @@ -42,7 +44,63 @@ EXTSTATIC = $(EXTSTATIC) RDOCTARGET = $(RDOCTARGET) !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" MAJOR = RUBY_VERSION_MAJOR MINOR = RUBY_VERSION_MINOR @@ -79,7 +137,6 @@ $(CPU) = $(PROCESSOR_LEVEL) -epilogue-: nul @type << >>$(MAKEFILE) # OS = $(OS) -# RT = $(RT) # RUBY_INSTALL_NAME = ruby # RUBY_SO_NAME = $$(RT)-$$(RUBY_INSTALL_NAME)$$(MAJOR)$$(MINOR) # CFLAGS = -nologo -MD $$(DEBUGFLAGS) $$(OPTFLAGS) $$(PROCESSOR_FLAG) @@ -90,7 +147,7 @@ $(CPU) = $(PROCESSOR_LEVEL) # RFLAGS = -r # EXTLIBS = -$(INCLUDE) $$(srcdir)/win32/Makefile.sub +$(BANG)include $$(srcdir)/win32/Makefile.sub << @$(srcdir:/=\)\win32\rm.bat config.h config.status @echo type `$(MAKE)' to make ruby for $(OS). |