summaryrefslogtreecommitdiff
path: root/acinclude.m4
diff options
context:
space:
mode:
authorDavid Soria Parra <dsp@php.net>2010-04-24 13:32:30 +0000
committerDavid Soria Parra <dsp@php.net>2010-04-24 13:32:30 +0000
commit08b9fdc8a3bf29e27431b7907b5ea4973e9c7042 (patch)
tree2b27f135a1cfad5f4d90fd437710aec7777eaff1 /acinclude.m4
parentfd42b5064c497e500e5745bf36d1b0ddd5bd34bd (diff)
downloadphp-git-08b9fdc8a3bf29e27431b7907b5ea4973e9c7042.tar.gz
Add DTrace probes
Diffstat (limited to 'acinclude.m4')
-rw-r--r--acinclude.m455
1 files changed, 55 insertions, 0 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index 92996b1fa2..4063d3c65a 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -2877,3 +2877,58 @@ main()
fi
])
+dnl
+dnl Generate dtrace targets
+dnl
+AC_DEFUN([PHP_GENERATE_DTRACE],[
+ old_IFS=[$]IFS
+ IFS=.
+ set $ac_src
+ IFS=$old_IFS
+ build_target=$2
+ PHP_GLOBAL_OBJS="[$]PHP_GLOBAL_OBJS $1.o"
+ for src in $PHP_DTRACE_OBJS; do
+ case [$]build_target in
+ program|static)
+ obj="$obj `dirname $src`/`basename $src | sed 's,\.lo$,.o,'` " ;;
+ *)
+ obj="$obj `dirname $src`/.libs/`basename $src | sed 's,\.lo$,.o,'` " ;;
+ esac
+ done
+
+ cat >>Makefile.objects<<EOF
+$1.o: \$(PHP_DTRACE_OBJS)
+ dtrace -G -o $1.o -s $1 $obj
+EOF
+
+])
+
+dnl
+dnl Link given source files with dtrace
+dnl PHP_ADD_DTRACE(providerdesc, sources, module)
+dnl
+AC_DEFUN([PHP_ADD_DTRACE],[
+ case "$3" in
+ ""[)] unset ac_bdir;;
+ /*[)] ac_bdir=$ac_srcdir;;
+ *[)] extdir=PHP_EXT_DIR($3); ac_bdir="$extdir/";;
+ esac
+ old_IFS=[$]IFS
+ for ac_src in $2; do
+ IFS=.
+ set $ac_src
+ ac_obj=[$]1
+ IFS=$old_IFS
+
+ PHP_DTRACE_OBJS="[$]PHP_DTRACE_OBJS [$]ac_bdir[$]ac_obj.lo"
+ done;
+])
+
+dnl
+dnl Generate platform specific dtrace header
+dnl
+AC_DEFUN([PHP_INIT_DTRACE], [
+ dtrace -h -C -s $1 -o $2
+ $SED -ibak 's,PHP_,DTRACE_,g' $2
+])
+