Skip to content

Commit 200dcee

Browse files
author
Jani Taskinen
committed
- Simplified the DTrace configure macros, one is enough
1 parent c95e919 commit 200dcee

File tree

2 files changed

+47
-59
lines changed

2 files changed

+47
-59
lines changed

acinclude.m4

+44-48
Original file line numberDiff line numberDiff line change
@@ -711,10 +711,7 @@ ifelse([$2],,,[AC_MSG_CHECKING([$2])])
711711
AC_ARG_WITH($1,[$3],$5=[$]withval,
712712
[
713713
$5=ifelse($4,,no,$4)
714-
715-
if test "$PHP_ENABLE_ALL" && test "$6" = "yes"; then
716-
$5=$PHP_ENABLE_ALL
717-
fi
714+
ifelse($6,yes,[test "$PHP_ENABLE_ALL" && $5=$PHP_ENABLE_ALL])
718715
])
719716
PHP_ARG_ANALYZE($5,[$2],$6)
720717
])
@@ -739,10 +736,7 @@ ifelse([$2],,,[AC_MSG_CHECKING([$2])])
739736
AC_ARG_ENABLE($1,[$3],$5=[$]enableval,
740737
[
741738
$5=ifelse($4,,no,$4)
742-
743-
if test "$PHP_ENABLE_ALL" && test "$6" = "yes"; then
744-
$5=$PHP_ENABLE_ALL
745-
fi
739+
ifelse($6,yes,[test "$PHP_ENABLE_ALL" && $5=$PHP_ENABLE_ALL])
746740
])
747741
PHP_ARG_ANALYZE($5,[$2],$6)
748742
])
@@ -2883,60 +2877,62 @@ main()
28832877
])
28842878

28852879
dnl
2886-
dnl Generate dtrace targets
2880+
dnl PHP_INIT_DTRACE(providerdesc, header-file, sources [, module])
28872881
dnl
2888-
AC_DEFUN([PHP_GENERATE_DTRACE],[
2882+
AC_DEFUN([PHP_INIT_DTRACE],[
2883+
dnl Set paths properly when called from extension
2884+
case "$4" in
2885+
""[)] unset ac_bdir;;
2886+
/*[)] ac_bdir=$ac_srcdir;;
2887+
*[)] extdir=PHP_EXT_DIR($3); ac_bdir="$extdir/";;
2888+
esac
2889+
2890+
dnl providerdesc
2891+
ac_provsrc=$1
28892892
old_IFS=[$]IFS
28902893
IFS=.
2891-
set $ac_src
2894+
set $ac_provsrc
2895+
ac_provobj=[$]1
28922896
IFS=$old_IFS
2893-
build_target=$2
2894-
PHP_GLOBAL_OBJS="[$]PHP_GLOBAL_OBJS $1.o"
2895-
for src in $PHP_DTRACE_OBJS; do
2896-
case [$]build_target in
2897-
program|static)
2898-
obj="$obj `dirname $src`/`basename $src | sed 's,\.lo$,.o,'` " ;;
2899-
*)
2900-
obj="$obj `dirname $src`/.libs/`basename $src | sed 's,\.lo$,.o,'` " ;;
2901-
esac
2902-
done
29032897
2904-
cat >>Makefile.objects<<EOF
2905-
$1.o: \$(PHP_DTRACE_OBJS)
2906-
dtrace -G -o $abs_builddir/$1.o -s $abs_srcdir/$1 $obj
2907-
EOF
2898+
dnl header-file
2899+
ac_hdrobj=$2
29082900
2909-
])
2901+
dnl Add providerdesc.o in global objects
2902+
PHP_GLOBAL_OBJS="[$]PHP_GLOBAL_OBJS [$]ac_bdir[$]ac_provsrc.o"
29102903
2911-
dnl
2912-
dnl Link given source files with dtrace
2913-
dnl PHP_ADD_DTRACE(providerdesc, sources, module)
2914-
dnl
2915-
AC_DEFUN([PHP_ADD_DTRACE],[
2916-
case "$3" in
2917-
""[)] unset ac_bdir;;
2918-
/*[)] ac_bdir=$ac_srcdir;;
2919-
*[)] extdir=PHP_EXT_DIR($3); ac_bdir="$extdir/";;
2920-
esac
2904+
dnl DTrace objects
29212905
old_IFS=[$]IFS
2922-
for ac_src in $2; do
2906+
for ac_src in $3; do
29232907
IFS=.
29242908
set $ac_src
29252909
ac_obj=[$]1
29262910
IFS=$old_IFS
29272911
29282912
PHP_DTRACE_OBJS="[$]PHP_DTRACE_OBJS [$]ac_bdir[$]ac_obj.lo"
29292913
done;
2930-
])
29312914
2932-
dnl
2933-
dnl Generate platform specific dtrace header
2934-
dnl
2935-
AC_DEFUN([PHP_INIT_DTRACE], [
2936-
dtrace -h -C -s $abs_srcdir/$1 -o $abs_builddir/$2
2937-
if test "$?" != "0"; then
2938-
AC_MSG_ERROR([cannot create DTrace header file])
2939-
fi
2940-
$SED -ibak 's,PHP_,DTRACE_,g' $abs_builddir/$2
2941-
])
2915+
case [$]php_build_target in
2916+
program|static)
2917+
dtrace_objs='$(PHP_DTRACE_OBJS:.lo=.o)'
2918+
;;
2919+
*)
2920+
for ac_lo in $PHP_DTRACE_OBJS; do
2921+
dtrace_objs="[$]dtrace_objs `echo $ac_lo | $SED -e 's,\.lo$,.o,' -e 's#\(.*\)\/#\1\/.libs\/#'`"
2922+
done;
2923+
;;
2924+
esac
2925+
2926+
dnl Generate Makefile.objects entries
2927+
cat>>Makefile.objects<<EOF
2928+
2929+
$ac_bdir[$]ac_hdrobj: $abs_srcdir/$ac_provsrc
2930+
dtrace -h -C -s $ac_srcdir[$]ac_provsrc -o \$[]@ && \$(SED) -ibak 's,PHP_,DTRACE_,g' \$[]@
29422931
2932+
\$(PHP_DTRACE_OBJS): $ac_bdir[$]ac_hdrobj
2933+
2934+
$ac_bdir[$]ac_provsrc.o: \$(PHP_DTRACE_OBJS)
2935+
dtrace -G -o \$[]@ -s $abs_srcdir/$ac_provsrc $dtrace_objs
2936+
2937+
EOF
2938+
])

configure.in

+3-11
Original file line numberDiff line numberDiff line change
@@ -881,22 +881,21 @@ fi
881881

882882
dnl ##
883883
dnl ## DTRACE CHECKS
884-
dnl ## this needs to be done before SAPI configuration
884+
dnl ## Note: this has to be done after SAPI configuration!
885885
dnl ##
886886
PHP_ARG_ENABLE(dtrace, whether to enable DTrace support,
887887
[ --enable-dtrace Enable DTrace support], no, no)
888888

889889
if test "$PHP_DTRACE" = "yes"; then
890890
AC_CHECK_HEADERS([sys/sdt.h], [
891-
PHP_ADD_DTRACE([Zend/zend_dtrace.d], [main/main.c, Zend/zend_API.c \
891+
PHP_INIT_DTRACE([Zend/zend_dtrace.d],[Zend/zend_dtrace_gen.h],[main/main.c Zend/zend_API.c \
892892
Zend/zend_execute.c Zend/zend_exceptions.c \
893893
Zend/zend_dtrace.c Zend/zend.c])
894894
AC_DEFINE(HAVE_DTRACE, 1, [Whether to enable DTrace support])
895-
PHP_INIT_DTRACE([Zend/zend_dtrace.d], [Zend/zend_dtrace_gen.h])
895+
PHP_SUBST(PHP_DTRACE_OBJS)
896896
], [
897897
AC_MSG_ERROR([Cannot find sys/sdt.h which is required for DTrace support])
898898
])
899-
PHP_SUBST(PHP_DTRACE_OBJS)
900899
fi
901900

902901
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,
14471446
PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Makefile.frag,$abs_srcdir/Zend,Zend)
14481447
PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Zend/Makefile.frag,$abs_srcdir/Zend,Zend)
14491448

1450-
if test "$PHP_DTRACE" = "yes"; then
1451-
case $host_alias in
1452-
*solaris*)
1453-
PHP_GENERATE_DTRACE([Zend/zend_dtrace.d],$php_build_target);;
1454-
esac
1455-
fi
1456-
14571449
PHP_GEN_BUILD_DIRS
14581450
PHP_GEN_GLOBAL_MAKEFILE
14591451

0 commit comments

Comments
 (0)