From 7ae23d32c2044ad21a29045f611a1f0c6dde59a0 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 18 Nov 2010 14:56:34 +0000 Subject: * win32/Makefile.sub (scriptbin): create script binaries. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- win32/Makefile.sub | 58 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 46 insertions(+), 12 deletions(-) (limited to 'win32/Makefile.sub') diff --git a/win32/Makefile.sub b/win32/Makefile.sub index a14c87d855..b0a32dec55 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -44,6 +44,7 @@ RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME:ruby=rubyw) !if "$(RUBYW_INSTALL_NAME)" == "$(RUBY_INSTALL_NAME)" RUBYW_INSTALL_NAME = $(RUBY_INSTALL_NAME)w !endif +STUBPROGRAM = rubystub$(EXEEXT) !if !defined(icondirs) && defined(ICONDIRS) icondirs=$(ICONDIRS) !endif @@ -348,6 +349,31 @@ all: $(srcdir)/win32/Makefile.sub $(win_srcdir)/Makefile.sub $(srcdir)/common.mk ruby: $(PROGRAM) rubyw: $(WPROGRAM) +stub: $(STUBPROGRAM) + +!ifdef SCRIPTPROGRAMS +!else if [echo>scriptbin.mk SCRIPTPROGRAMS = \] +!else if [for %I in ($(srcdir:/=\)\bin\*) do @echo>>scriptbin.mk %~nI.exe \] +!else if [echo.>>scriptbin.mk] +!else if [echo.>>scriptbin.mk] +!else +!include scriptbin.mk +!endif +!if [for %I in ($(srcdir:/=\)\bin\*) do @for %J in (\ +"%~nI.exe: $$(srcdir)/bin/%~nI" \ +" @echo generating $$@" \ +" @copy /b $$(STUBPROGRAM) +<< +$$(srcdir:/=\)\bin\%~nI $$@ > nul" \ +"" "<<" "" \ +) do @echo.%~J>>scriptbin.mk] +!else +! include scriptbin.mk +! if [del scriptbin.mk > nul] +! endif +!endif + +scriptbin: $(SCRIPTPROGRAMS) + +$(SCRIPTPROGRAMS): $(STUBPROGRAM) up:: @cd "$(srcdir:/=\)" && set LC_TIME=C && $(VCSUP) @@ -816,6 +842,16 @@ $(WPROGRAM): $(MAINOBJ) $(WINMAINOBJ) $(LIBRUBY_SO) $(RUBYW_INSTALL_NAME).res $(Q) $(LDSHARED_2) !endif +!if "$(STUBPROGRAM)" != "" +$(STUBPROGRAM): stub.$(OBJEXT) $(LIBRUBY_SO) $(RUBY_INSTALL_NAME).res + $(ECHO) linking $(@:\=/) + $(Q) $(PURIFY) $(CC) stub.$(OBJEXT) $(RUBY_INSTALL_NAME).res \ + $(OUTFLAG)$@ $(LIBRUBYARG) -link $(LDFLAGS) $(XLDFLAGS) + $(Q) $(LDSHARED_0) + $(Q) $(LDSHARED_1) + $(Q) $(LDSHARED_2) +!endif + $(LIBRUBY_A): $(OBJS) $(DMYEXT) $(ECHO) linking static-library $(@:\=/) $(Q) $(AR) $(ARFLAGS)$@ $(OBJS) $(DMYEXT) @@ -989,18 +1025,16 @@ ext/extinit.obj: ext/extinit.c $(SETUP) INSNS = opt_sc.inc optinsn.inc optunifs.inc insns.inc insns_info.inc \ vmtc.inc vm.inc -!ifdef insns -make_insns_rules: - @type << -$(insns): $$(srcdir)/insns.def {$$(VPATH)}vm_opts.h \ - $$(srcdir)/defs/opt_operand.def $$(srcdir)/defs/opt_insn_unif.def \ - $$(srcdir)/tool/instruction.rb $$(srcdir)/tool/insns2vm.rb - @$$(RM) $$(PROGRAM) - $$(BASERUBY) -Ks $$(srcdir)/tool/insns2vm.rb $$(INSNS2VMOPT) $(insns) - -<< -!else if [exit > insns_rules.mk] -!else if [for %I in ($(INSNS)) do @$(MAKE) -l insns=%I make_insns_rules >> insns_rules.mk] +!if [exit > insns_rules.mk] +!else if [for %I in ($(INSNS)) do \ + @for %J in (\ +"%I: $$(srcdir)/insns.def {$$(VPATH)}vm_opts.h \\" \ +" $$(srcdir)/defs/opt_operand.def $$(srcdir)/defs/opt_insn_unif.def \\" \ +" $$(srcdir)/tool/instruction.rb $$(srcdir)/tool/insns2vm.rb" \ +" @$$(RM) $$(PROGRAM)" \ +" $$(BASERUBY) -Ks $$(srcdir)/tool/insns2vm.rb $$(INSNS2VMOPT) %I" \ +"" \ +) do @echo.%~J>>insns_rules.mk] !else ! include insns_rules.mk ! if [del insns_rules.mk > nul] -- cgit v1.2.3