diff options
Diffstat (limited to 'sql/Makefile.am')
-rw-r--r-- | sql/Makefile.am | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/sql/Makefile.am b/sql/Makefile.am index 0b22481f850..a6d883a27dc 100644 --- a/sql/Makefile.am +++ b/sql/Makefile.am @@ -28,6 +28,40 @@ SUBDIRS = share libexec_PROGRAMS = mysqld EXTRA_PROGRAMS = gen_lex_hash bin_PROGRAMS = mysql_tzinfo_to_sql +DTRACEFILES = filesort.o \ + .libs/libndb_la-ha_ndbcluster.o \ + handler.o \ + mysqld.o \ + net_serv.o \ + scheduler.o \ + sp_head.o \ + sql_cache.o \ + sql_connect.o \ + sql_cursor.o \ + sql_delete.o \ + sql_insert.o \ + sql_parse.o \ + sql_prepare.o \ + sql_select.o \ + sql_update.o + +DTRACEFILES_DEPEND = filesort.o \ + libndb_la-ha_ndbcluster.lo \ + handler.o \ + mysqld.o \ + net_serv.o \ + scheduler.o \ + sp_head.o \ + sql_cache.o \ + sql_connect.o \ + sql_cursor.o \ + sql_delete.o \ + sql_insert.o \ + sql_parse.o \ + sql_prepare.o \ + sql_select.o \ + sql_update.o + noinst_LTLIBRARIES= libndb.la \ udf_example.la @@ -190,5 +224,41 @@ install-exec-hook: test ! -f mysqld-debug.sym.gz || $(INSTALL_DATA) mysqld-debug.sym.gz $(DESTDIR)$(pkglibdir) test ! -f mysqld.sym.gz || $(INSTALL_DATA) mysqld.sym.gz $(DESTDIR)$(pkglibdir) +if HAVE_DTRACE_DASH_G +libndb_la_LIBADD = probes_libndb.o +libndb_la_DEPENDENCIES = dtrace_files dtrace_providers probes_libndb.o +mysqld_LDADD += probes_all.o +mysqld_DEPENDENCIES += dtrace_files dtrace_providers probes_all.o +CLEANFILES += dtrace_files dtrace_providers probes_all.o +DTRACEPROVIDER = probes_mysql.d +CLEANFILES += $(DTRACEPROVIDER) + +dtrace_files: + echo $(DTRACEFILES) > $@ +dtrace_providers: probes_mysql.d + echo $(DTRACEPROVIDER) > $@ +probes_mysql.d: + -$(RM) -f probes_mysql.d + $(CP) $(top_srcdir)/include/probes_mysql.d.base probes_mysql.d + +DTRACEDIRS = . ../mysys $(patsubst %,$(top_builddir)/storage/%,@mysql_se_dirs@) + +probes_all.o: probes_mysql.d $(DTRACEFILES_DEPEND) + providers=`(for i in $(DTRACEDIRS); do cat $$i/dtrace_providers 2>/dev/null; done) | tr " " "\n" | sort | uniq | sed -e '/^$$/d' -e 's/^/-s /'`; \ + objects=`for i in $(DTRACEDIRS); do f=\`cat $$i/dtrace_files 2>/dev/null\`; for j in $$f; do test -f $$i/$$j && echo "$$i/$$j "; done; done`; \ + $(DTRACE) $(DTRACEFLAGS) -G $$providers $$objects -o $@ + +# Can't depend directly on .libs/*.o, because there is no generated rule for +# that in the Makefile; it is a byproduct of *.lo +probes_libndb.o: probes_mysql.d libndb_la-ha_ndbcluster.lo + if test -f .libs/libndb_la-ha_ndbcluster.o ; then \ + $(DTRACE) $(DTRACEFLAGS) -G -s probes_mysql.d .libs/libndb_la-ha_ndbcluster.o -o $@; \ + fi; \ + if test -f libndb_la-ha_ndbcluster.o ; then \ + $(DTRACE) $(DTRACEFLAGS) -G -s probes_mysql.d libndb_la-ha_ndbcluster.o -o $@; \ + fi + +endif + # Don't update the files from bitkeeper %::SCCS/s.% |