summaryrefslogtreecommitdiff
path: root/common.mk
diff options
context:
space:
mode:
authorngoto <ngoto@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-18 08:24:24 +0000
committerngoto <ngoto@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-18 08:24:24 +0000
commit1f225be2e51f0ff7376846d5631fd6287eb03d14 (patch)
treee2f44294d784990242f2a3b988a14af1cdb13c8d /common.mk
parent42d38decda9249ba77b365f2b242a76e7e109945 (diff)
* configure.in, Makefile.in, common.mk: support DTrace on Solaris 10,
based on r26235 by Yugui. On Solaris 10, low optimization level may also be needed, e.g. optflags="-xO1" or "-xO0" with Oracle SolarisStudio 12.3 cc. * configure.in (--enable-dtrace): new option to enable/disable DTrace support. By default, trying to enable if dtrace command is found on the system. It is disabled when cross compiling. * configure.in (RUBY_DTRACE_POSTPROCESS): new macro. checks whether the dtrace on the system needs postprocessing with "dtrace -G". The postprocessing is needed on Solaris 10 and other platforms. * configure.in (RUBY_DTRACE_BSD_BROKEN): new macro. checks whether the dtrace supports USDT. * configure.in (DTRACE): move after RUBY_DTRACE_POSTPROCESS. * configure.in (LD): On Solaris, /usr/ccs/bin/ld is preferred. * configure.in, Makefile.in, common.mk (DTRACE_OBJ): new macro for DTrace probe object generated by postprocessing with "dtrace -G". * Makefile.in, common.mk (probes.$(OBJEXT)): DTrace probe object generated by the postprocessing. New file probes.stamp is for rebuilding related objects that may be modified by "dtrace -G". * configure.in, Makefile.in, common.mk (DTRACE_GLOMMED_OBJ): new macro for DTrace static library hacks. * configure.in, Makefile.in (LIBRUBY_A_OBJS): ditto. * Makefile.in, common.mk (ruby-glommed.$(OBJEXT)): new target with rule for DTrace static library hacks. * common.mk (DTRACE_DEPENDENT_OBJS): objects depended on probes.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'common.mk')
-rw-r--r--common.mk19
1 files changed, 16 insertions, 3 deletions
diff --git a/common.mk b/common.mk
index 3a47897625..9d34d28a64 100644
--- a/common.mk
+++ b/common.mk
@@ -189,7 +189,7 @@ loadpath: $(PREP) PHONY
$(PREP): $(MKFILES)
-miniruby$(EXEEXT): config.status $(ALLOBJS) $(ARCHFILE)
+miniruby$(EXEEXT): config.status $(ALLOBJS) $(ARCHFILE) $(DTRACE_OBJ)
objs: $(ALLOBJS)
@@ -214,7 +214,7 @@ wprogram: showflags $(WPROGRAM)
$(PROGRAM) $(WPROGRAM): $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP)
-$(LIBRUBY_A): $(OBJS) $(MAINOBJ) $(DMYEXT) $(ARCHFILE)
+$(LIBRUBY_A): $(OBJS) $(MAINOBJ) $(DTRACE_OBJ) $(DTRACE_GLOMMED_OBJ) $(DMYEXT) $(ARCHFILE)
$(LIBRUBY_SO): $(OBJS) $(DLDOBJS) $(LIBRUBY_A) $(PREP) $(LIBRUBY_SO_UPDATE) $(BUILTIN_ENCOBJS)
@@ -435,7 +435,7 @@ clean: clean-ext clean-local clean-enc clean-golf clean-rdoc clean-capi clean-ex
clean-local:: PHONY
$(Q)$(RM) $(OBJS) $(MINIOBJS) $(MAINOBJ) $(LIBRUBY_A) $(LIBRUBY_SO) $(LIBRUBY) $(LIBRUBY_ALIASES)
$(Q)$(RM) $(PROGRAM) $(WPROGRAM) miniruby$(EXEEXT) dmyext.$(OBJEXT) $(ARCHFILE) .*.time
- $(Q)$(RM) y.tab.c y.output encdb.h transdb.h prelude.c config.log rbconfig.rb $(ruby_pc) probes.h
+ $(Q)$(RM) y.tab.c y.output encdb.h transdb.h prelude.c config.log rbconfig.rb $(ruby_pc) probes.h probes.$(OBJEXT) probes.stamp ruby-glommed.$(OBJEXT)
clean-ext:: PHONY
clean-golf: PHONY
$(Q)$(RM) $(GORUBY)$(EXEEXT) $(GOLFOBJS)
@@ -814,6 +814,19 @@ newline.$(OBJEXT): $(NEWLINE_C) {$(VPATH)}defines.h \
{$(VPATH)}intern.h {$(VPATH)}missing.h {$(VPATH)}st.h \
{$(VPATH)}transcode_data.h {$(VPATH)}ruby.h {$(VPATH)}config.h {$(VPATH)}subst.h
+DTRACE_DEPENDENT_OBJS = array.$(OBJEXT) \
+ eval.$(OBJEXT) \
+ gc.$(OBJEXT) \
+ hash.$(OBJEXT) \
+ load.$(OBJEXT) \
+ object.$(OBJEXT) \
+ parse.$(OBJEXT) \
+ string.$(OBJEXT) \
+ vm.$(OBJEXT)
+
+probes.$(OBJEXT): $(DTRACE_DEPENDENT_OBJS)
+ruby-glommed.$(OBJEXT): $(OBJS) $(DTRACE_OBJ)
+
$(OBJS): {$(VPATH)}config.h {$(VPATH)}missing.h
INSNS2VMOPT = --srcdir="$(srcdir)"