])
- PSI_CONSTS=""
dnl PSI_COMPUTE_STR(variable, string or expression, includes)
AC_DEFUN(PSI_COMPUTE_STR, [
AC_TRY_RUN([
])
])
+ PSI_CONSTS=""
dnl PSI_CONST(const name, type, headers to include)
AC_DEFUN(PSI_CONST, [
AC_CACHE_CHECK(value of $1, psi_cv_const_$1, [
then
case $2 in
str*|quoted_str*)
- PSI_CONSTS="{PSI_T_STRING, \"string\", \"$1\", $psi_cv_const_$1, PSI_T_QUOTED_STRING}, $PSI_CONSTS"
+ PSI_CONSTS="{PSI_T_STRING, \"string\", \"psi\\\\$1\", $psi_cv_const_$1, PSI_T_QUOTED_STRING}, $PSI_CONSTS"
;;
*)
- PSI_CONSTS="{PSI_T_INT, \"int\", \"$1\", \"$psi_cv_const_$1\", PSI_T_NUMBER}, $PSI_CONSTS"
+ PSI_CONSTS="{PSI_T_INT, \"int\", \"psi\\\\$1\", \"$psi_cv_const_$1\", PSI_T_NUMBER}, $PSI_CONSTS"
;;
esac
fi
dnl PSI_STRUCT(name, members, member type cases, includes)
PSI_STRUCTS=
AC_DEFUN(PSI_STRUCT, [
+ AC_CHECK_SIZEOF(struct $1, [], PSI_INCLUDES_DEFAULT($4))
psi_struct_members=
m4_foreach(member, [$2], [
AC_CHECK_MEMBER(struct $1.member, [
then
psi_struct_member_pl=`expr $psi_struct_member_pl + 1`
fi
- psi_struct_members="{`psi_type_pair $psi_member_type $ac_cv_sizeof_struct_$1[]_[]member`, \"[]member[]\", $ac_cv_offsetof_struct_$1[]_[]member, $ac_cv_sizeof_struct_$1[]_[]member, $psi_struct_member_pl, $psi_struct_member_as}, $psi_struct_members"
+ psi_struct_member="{`psi_type_pair $psi_member_type $ac_cv_sizeof_struct_$1[]_[]member`, \"[]member[]\", $ac_cv_offsetof_struct_$1[]_[]member, $ac_cv_sizeof_struct_$1[]_[]member, $psi_struct_member_pl, $psi_struct_member_as}"
+ if test "$psi_struct_members"
+ then
+ psi_struct_members="$psi_struct_members, $psi_struct_member"
+ else
+ psi_struct_members="$psi_struct_member"
+ fi
], [], PSI_INCLUDES_DEFAULT($4))
])
- PSI_STRUCTS="{\"$1\", {$psi_struct_members}}, $PSI_STRUCTS"
+ PSI_STRUCTS="{\"$1\", $ac_cv_sizeof_struct_$1, {$psi_struct_members}}, $PSI_STRUCTS"
])
AC_TYPE_INT8_T
[st_blocks],
[st_flags],
[st_gen]], [
- st_?tim*) psi_member_type="struct timespec" ;;
+ st_?tim) psi_member_type="struct timespec" ;;
+ st_*timespec) psi_member_type="struct timespec" ;;
], sys/stat.h)
PSI_CONST(S_IFMT, int, sys/stat.h)
PSI_CONST(S_IFBLK, int, sys/stat.h)
PSI_CONST(UTIME_NOW, int, sys/stat.h)
PSI_CONST(UTIME_OMIT, int, sys/stat.h)
dnl sys/time.h
+ PSI_STRUCT(timeval, [
+ [tv_sec],
+ [tv_usec]], [
+ ], sys/time.h)
+ PSI_STRUCT(itimerval, [
+ [it_interval],
+ [it_value]], [
+ it_*) psi_member_type="struct timeval" ;;
+ ], sys/time.h)
+ PSI_STRUCT(timezone, [
+ [tz_minuteswest],
+ [tz_dsttime]], [
+ ], sys/time.h)
PSI_CONST(ITIMER_REAL, int, sys/time.h)
PSI_CONST(ITIMER_VIRTUAL, int, sys/time.h)
PSI_CONST(ITIMER_PROF, int, sys/time.h)
+ dnl sys/times.h
+ PSI_STRUCT(tms, [
+ [tms_utime],
+ [tms_stime],
+ [tms_cutime],
+ [tms_cstime]], [
+ ], sys/times.h)
dnl sys/types.h
PSI_TYPE(blkcnt_t, int)
PSI_TYPE(blksize_t, int)
PSI_TYPE(time_t, int)
PSI_TYPE(timer_t, int)
PSI_TYPE(uid_t)
-
+ dnl time.h
+ PSI_STRUCT(tm, [
+ [tm_sec],
+ [tm_min],
+ [tm_hour],
+ [tm_mday],
+ [tm_mon],
+ [tm_year],
+ [tm_wday],
+ [tm_yday],
+ [tm_isdst]], [
+ ], time.h)
+ PSI_STRUCT(timespec, [
+ [tv_sec],
+ [tv_nsec]], [
+ ], time.h)
+ PSI_CONST(CLOCKS_PER_SEC, int, time.h)
+ PSI_CONST(CLOCK_MONOTONIC, int, time.h)
+ PSI_CONST(CLOCK_PROCESS_CPUTIME_ID, int, time.h)
+ PSI_CONST(CLOCK_REALTIME, int, time.h)
+ PSI_CONST(CLOCK_THREAD_CPUTIME_ID, int, time.h)
+ PSI_CONST(TIMER_ABSTIME, int, time.h)
dnl wchar.h
AC_CHECK_TYPE(wint_t, [
AX_CHECK_SIGN(wint_t, psi_wint_t=int, psi_wint_t=uint)
PHP_ADD_BUILD_DIR($PHP_PSI_BUILDDIR/src)
PHP_PSI_HEADERS=`(cd $PHP_PSI_SRCDIR/src && echo *.h)`
- PHP_PSI_SOURCES="src/parser_proc.c src/parser.c src/validator.c src/module.c src/context.c"
+ PHP_PSI_SOURCES="src/parser_proc.c src/parser.c src/module.c src/context.c"
PHP_PSI_SOURCES="$PHP_PSI_SOURCES src/libjit.c src/libffi.c"
PHP_NEW_EXTENSION(psi, $PHP_PSI_SOURCES, $ext_shared)