Hi,

At Fri, 6 Jan 2006 12:42:54 +0900,
U.Nakamura wrote in [ruby-core:07063]:
> | > | Is .manifest file really mandatory?  I don't know how it is
> | > | used, but /manifest:no linker option seems to suppress making
> | > | it.
> | > 
> | > http://msdn2.microsoft.com/en-us/library/ms235624.aspx
> | 
> | I see.  Is it true for .so files?
> 
> It seems that DLL does not need .manifest if base .exe uses
> same .manifest .
> So, in this case, we will have to create only ruby.exe.manifest
> and rubyw.exe.manifest .

OK, Makefile.sub only.  Since the format of config.status
disallow multiline entries, it's hard to change LINK_SO.


Makefile.sub 6 Jan 2006 04:07:57 -0000 @@ -126,5 +126,8 @@ CXXFLAGS = $(CFLAGS) !endif !if !defined(LDFLAGS) -LDFLAGS = -link -incremental:no -debug -opt:ref -opt:icf +LDFLAGS = -link -incremental:no -opt:ref -opt:icf +!if $(MSC_VER) < 1400 +LDFLAGS = $(LDFLAGS) -debug +!endif !endif !if !defined(XLDFLAGS) @@ -153,4 +156,10 @@ DLDFLAGS = $(LDFLAGS) -dll SOLIBS = +!if $(MSC_VER) >= 1400 +DLDFLAGS = $(DLDFLAGS) -manifest:no +EMBED_MANIFEST_IN_EXE = mt -nologo -manifest $@.manifest -outputresource:$@;1 +EMBED_MANIFEST_IN_DLL = mt -nologo -manifest $@.manifest -outputresource:$@;2 +!endif + LIBRUBY_LDSHARED = $(LDSHARED) LIBRUBY_DLDFLAGS = $(EXTLDFLAGS) -def:$(RUBYDEF) @@ -210,5 +219,5 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/ @$(srcdir:/=\)\win32\ifchange.bat config.h << #if _MSC_VER != $(MSC_VER) -#error MSC version unmatch +#error MSC version unmatch: configured for $(MSC_VER) #endif #define STDC_HEADERS 1 @@ -448,8 +457,10 @@ miniruby$(EXEEXT): @echo. $(LIBS) $(PURIFY) $(CC) $(MAINOBJ) $(MINIOBJS) $(LIBRUBY_A) $(LIBS) -Fe$@ $(LDFLAGS) + $(EMBED_MANIFEST_IN_EXE) $(PROGRAM): $(LIBRUBY_SO) $(RUBY_INSTALL_NAME).res $(PURIFY) $(CC) $(MAINOBJ) $(RUBY_INSTALL_NAME).res \ $(OUTFLAG)$@ $(LIBRUBYARG) $(LDFLAGS) $(XLDFLAGS) + $(EMBED_MANIFEST_IN_EXE) $(WPROGRAM): $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $(RUBYW_INSTALL_NAME).res @@ -457,4 +468,5 @@ $(WPROGRAM): $(MAINOBJ) $(WINMAINOBJ) $( $(RUBYW_INSTALL_NAME).res $(OUTFLAG)$@ $(LIBRUBYARG) \ $(LDFLAGS) $(XLDFLAGS) -subsystem:Windows + $(EMBED_MANIFEST_IN_EXE) $(LIBRUBY_A): $(OBJS) $(DMYEXT) @@ -469,4 +481,5 @@ $(LIBRUBY): $(RUBYDEF) $(RUBY_SO_NAME).res $(LIBS) -Fe$@ $(LDFLAGS) \ $(LIBRUBY_DLDFLAGS) + $(EMBED_MANIFEST_IN_DLL) $(RUBYDEF): $(LIBRUBY_A) $(PREP)
-- Nobu Nakada