Browse Source

- Simplified the DTrace configure macros, one is enough

experimental/with_scalar_types
Jani Taskinen 16 years ago
parent
commit
200dcee22d
  1. 92
      acinclude.m4
  2. 14
      configure.in

92
acinclude.m4

@ -711,10 +711,7 @@ ifelse([$2],,,[AC_MSG_CHECKING([$2])])
AC_ARG_WITH($1,[$3],$5=[$]withval,
[
$5=ifelse($4,,no,$4)
if test "$PHP_ENABLE_ALL" && test "$6" = "yes"; then
$5=$PHP_ENABLE_ALL
fi
ifelse($6,yes,[test "$PHP_ENABLE_ALL" && $5=$PHP_ENABLE_ALL])
])
PHP_ARG_ANALYZE($5,[$2],$6)
])
@ -739,10 +736,7 @@ ifelse([$2],,,[AC_MSG_CHECKING([$2])])
AC_ARG_ENABLE($1,[$3],$5=[$]enableval,
[
$5=ifelse($4,,no,$4)
if test "$PHP_ENABLE_ALL" && test "$6" = "yes"; then
$5=$PHP_ENABLE_ALL
fi
ifelse($6,yes,[test "$PHP_ENABLE_ALL" && $5=$PHP_ENABLE_ALL])
])
PHP_ARG_ANALYZE($5,[$2],$6)
])
@ -2883,43 +2877,33 @@ main()
])
dnl
dnl Generate dtrace targets
dnl PHP_INIT_DTRACE(providerdesc, header-file, sources [, module])
dnl
AC_DEFUN([PHP_GENERATE_DTRACE],[
AC_DEFUN([PHP_INIT_DTRACE],[
dnl Set paths properly when called from extension
case "$4" in
""[)] unset ac_bdir;;
/*[)] ac_bdir=$ac_srcdir;;
*[)] extdir=PHP_EXT_DIR($3); ac_bdir="$extdir/";;
esac
dnl providerdesc
ac_provsrc=$1
old_IFS=[$]IFS
IFS=.
set $ac_src
set $ac_provsrc
ac_provobj=[$]1
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 $abs_builddir/$1.o -s $abs_srcdir/$1 $obj
EOF
dnl header-file
ac_hdrobj=$2
])
dnl Add providerdesc.o in global objects
PHP_GLOBAL_OBJS="[$]PHP_GLOBAL_OBJS [$]ac_bdir[$]ac_provsrc.o"
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
dnl DTrace objects
old_IFS=[$]IFS
for ac_src in $2; do
for ac_src in $3; do
IFS=.
set $ac_src
ac_obj=[$]1
@ -2927,16 +2911,28 @@ AC_DEFUN([PHP_ADD_DTRACE],[
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 $abs_srcdir/$1 -o $abs_builddir/$2
if test "$?" != "0"; then
AC_MSG_ERROR([cannot create DTrace header file])
fi
$SED -ibak 's,PHP_,DTRACE_,g' $abs_builddir/$2
])
case [$]php_build_target in
program|static)
dtrace_objs='$(PHP_DTRACE_OBJS:.lo=.o)'
;;
*)
for ac_lo in $PHP_DTRACE_OBJS; do
dtrace_objs="[$]dtrace_objs `echo $ac_lo | $SED -e 's,\.lo$,.o,' -e 's#\(.*\)\/#\1\/.libs\/#'`"
done;
;;
esac
dnl Generate Makefile.objects entries
cat>>Makefile.objects<<EOF
$ac_bdir[$]ac_hdrobj: $abs_srcdir/$ac_provsrc
dtrace -h -C -s $ac_srcdir[$]ac_provsrc -o \$[]@ && \$(SED) -ibak 's,PHP_,DTRACE_,g' \$[]@
\$(PHP_DTRACE_OBJS): $ac_bdir[$]ac_hdrobj
$ac_bdir[$]ac_provsrc.o: \$(PHP_DTRACE_OBJS)
dtrace -G -o \$[]@ -s $abs_srcdir/$ac_provsrc $dtrace_objs
EOF
])

14
configure.in

@ -881,22 +881,21 @@ fi
dnl ##
dnl ## DTRACE CHECKS
dnl ## this needs to be done before SAPI configuration
dnl ## Note: this has to be done after SAPI configuration!
dnl ##
PHP_ARG_ENABLE(dtrace, whether to enable DTrace support,
[ --enable-dtrace Enable DTrace support], no, no)
if test "$PHP_DTRACE" = "yes"; then
AC_CHECK_HEADERS([sys/sdt.h], [
PHP_ADD_DTRACE([Zend/zend_dtrace.d], [main/main.c, Zend/zend_API.c \
PHP_INIT_DTRACE([Zend/zend_dtrace.d],[Zend/zend_dtrace_gen.h],[main/main.c Zend/zend_API.c \
Zend/zend_execute.c Zend/zend_exceptions.c \
Zend/zend_dtrace.c Zend/zend.c])
AC_DEFINE(HAVE_DTRACE, 1, [Whether to enable DTrace support])
PHP_INIT_DTRACE([Zend/zend_dtrace.d], [Zend/zend_dtrace_gen.h])
PHP_SUBST(PHP_DTRACE_OBJS)
], [
AC_MSG_ERROR([Cannot find sys/sdt.h which is required for DTrace support])
])
PHP_SUBST(PHP_DTRACE_OBJS)
fi
AC_MSG_CHECKING([how big to make fd sets])
@ -1447,13 +1446,6 @@ PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/scripts/Makefile.frag,$abs_srcdir/scripts,
PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Makefile.frag,$abs_srcdir/Zend,Zend)
PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Zend/Makefile.frag,$abs_srcdir/Zend,Zend)
if test "$PHP_DTRACE" = "yes"; then
case $host_alias in
*solaris*)
PHP_GENERATE_DTRACE([Zend/zend_dtrace.d],$php_build_target);;
esac
fi
PHP_GEN_BUILD_DIRS
PHP_GEN_GLOBAL_MAKEFILE

Loading…
Cancel
Save