aboutsummaryrefslogtreecommitdiffstats
path: root/defs
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-08-20 02:20:34 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-08-20 02:20:34 +0000
commit152b70711b5f68271af6b6a95ae238e7305182e8 (patch)
tree5a4c40835ac4d5e13c89340ab5a3c9e858301214 /defs
parentb5e143b76f690a11e24c5d3e9fb21b485579aab6 (diff)
downloadruby-152b70711b5f68271af6b6a95ae238e7305182e8.tar.gz
rubystub
* rubystub.c: generalize win32/stub.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'defs')
-rw-r--r--defs/gmake.mk33
1 files changed, 33 insertions, 0 deletions
diff --git a/defs/gmake.mk b/defs/gmake.mk
index 5220eb3583..2233627f8c 100644
--- a/defs/gmake.mk
+++ b/defs/gmake.mk
@@ -92,3 +92,36 @@ else
$(Q) mv $@.new $@
$(Q) $(RMALL) make_des_table*
endif
+
+STUBPROGRAM = rubystub$(EXEEXT)
+IGNOREDPATTERNS = %~ .% %.orig %.rej \#%\#
+SCRIPTBINDIR := $(if $(EXEEXT),,exec/)
+SCRIPTPROGRAMS = $(addprefix $(SCRIPTBINDIR),$(addsuffix $(EXEEXT),$(filter-out $(IGNOREDPATTERNS),$(notdir $(wildcard $(srcdir)/bin/*)))))
+
+stub: $(STUBPROGRAM)
+scriptbin: $(SCRIPTPROGRAMS)
+ifneq ($(STUBPROGRAM),rubystub)
+rubystub: $(STUBPROGRAM)
+endif
+
+$(SCRIPTPROGRAMS): $(STUBPROGRAM)
+
+$(STUBPROGRAM): rubystub.$(OBJEXT) $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP)
+
+rubystub$(EXEEXT):
+ @rm -f $@
+ $(ECHO) linking $@
+ $(Q) $(PURIFY) $(CC) $(LDFLAGS) $(XLDFLAGS) rubystub.$(OBJEXT) $(EXTOBJS) $(LIBRUBYARG) $(MAINLIBS) $(LIBS) $(EXTLIBS) $(OUTFLAG)$@
+ $(Q) $(POSTLINK)
+ $(if $(STRIP),$(Q) $(STRIP) $@)
+
+$(SCRIPTBINDIR)%$(EXEEXT): bin/% $(STUBPROGRAM) \
+ $(if $(SCRIPTBINDIR),$(TIMESTAMPDIR)/.exec.time)
+ $(ECHO) generating $@
+ $(Q) { cat $(STUBPROGRAM); echo; sed -e '1{' -e '/^#!.*ruby/!i\' -e '#!/bin/ruby' -e '}' $<; } > $@
+ $(Q) chmod +x $@
+ $(Q) $(POSTLINK)
+
+$(TIMESTAMPDIR)/.exec.time:
+ $(Q) mkdir exec
+ $(Q) exit > $@