dnl dnl $Id: config.m4,v 3.30.2.2 2008/03/25 21:00:22 rasmus Exp $ dnl AC_MSG_CHECKING(whether apc needs to get compiler flags from apxs) AC_ARG_WITH(apxs, [ --with-apxs[=FILE] Get compiler flags from apxs -q. Provide the pathname to the Apache apxs tool; defaults to "apxs".],[ if test "$withval" != "no"; then if test "$withval" = "yes"; then APXS=apxs $APXS -q CFLAGS >/dev/null 2>&1 if test "$?" != "0" && test -x /usr/sbin/apxs; then #SUSE 6.x APXS=/usr/sbin/apxs elif test -x /usr/bin/apxs2; then APXS=/usr/bin/apxs2 elif test -x /usr/sbin/apxs2; then APXS=/usr/sbin/apxs2 fi else PHP_EXPAND_PATH($withval, APXS) fi $APXS -q CFLAGS >/dev/null 2>&1 if test "$?" != "0"; then AC_MSG_RESULT() AC_MSG_RESULT() AC_MSG_RESULT([Sorry, I was not able to successfully run APXS. Possible reasons:]) AC_MSG_RESULT() AC_MSG_RESULT([1. Perl is not installed;]) AC_MSG_RESULT([2. Apache was not compiled with DSO support (--enable-module=so);]) AC_MSG_RESULT([3. 'apxs' is not in your path. Try to use --with-apxs=/path/to/apxs]) AC_MSG_RESULT([The output of $APXS follows]) $APXS -q CFLAGS AC_MSG_ERROR([Aborting]) fi APC_CFLAGS=`$APXS -q CFLAGS` AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi ],[ AC_MSG_RESULT(no) ]) PHP_ARG_ENABLE(apc, whether to enable APC support, [ --enable-apc Enable APC support]) AC_MSG_CHECKING(Checking whether we should enable cache request file info) AC_ARG_ENABLE(apc-filehits, [ --enable-apc-filehits Enable per request file info about files used from the APC cache (ie: apc_cache_info('filehits')) ], [ PHP_APC_FILEHITS=$enableval AC_MSG_RESULT($enableval) ], [ PHP_APC_FILEHITS=no AC_MSG_RESULT(no) ]) AC_MSG_CHECKING(Checking whether we should use mmap) AC_ARG_ENABLE(apc-mmap, [ --disable-apc-mmap Disable mmap support and use IPC shm instead], [ PHP_APC_MMAP=$enableval AC_MSG_RESULT($enableval) ], [ PHP_APC_MMAP=yes AC_MSG_RESULT(yes) ]) AC_MSG_CHECKING(Checking whether we should use semaphore locking instead of fcntl) AC_ARG_ENABLE(apc-sem, [ --enable-apc-sem Enable semaphore locks instead of fcntl], [ PHP_APC_SEM=$enableval AC_MSG_RESULT($enableval) ], [ PHP_APC_SEM=no AC_MSG_RESULT(no) ]) AC_MSG_CHECKING(Checking whether we should use futex locking) AC_ARG_ENABLE(apc-futex, [ --enable-apc-futex Enable linux futex based locks EXPERIMENTAL ], [ PHP_APC_FUTEX=$enableval AC_MSG_RESULT($enableval) ], [ PHP_APC_FUTEX=no AC_MSG_RESULT(no) ]) if test "$PHP_APC_FUTEX" != "no"; then AC_CHECK_HEADER(linux/futex.h, , [ AC_MSG_ERROR([futex.h not found. Please verify you that are running a 2.5 or older linux kernel and that futex support is enabled.]); ] ) fi AC_MSG_CHECKING(Checking whether we should use pthread mutex locking) AC_ARG_ENABLE(apc-pthreadmutex, [ --disable-apc-pthreadmutex Disable pthread mutex locking ], [ PHP_APC_PTHREADMUTEX=$enableval AC_MSG_RESULT($enableval) ], [ PHP_APC_PTHREADMUTEX=yes AC_MSG_RESULT(yes) ]) if test "$PHP_APC_PTHREADMUTEX" != "no"; then orig_LIBS="$LIBS" LIBS="$LIBS -lpthread" AC_TRY_RUN( [ #include #include main() { pthread_mutex_t mutex; pthread_mutexattr_t attr; if(pthread_mutexattr_init(&attr)) { puts("Unable to initialize pthread attributes (pthread_mutexattr_init)."); return -1; } if(pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED)) { puts("Unable to set PTHREAD_PROCESS_SHARED (pthread_mutexattr_setpshared), your system may not support shared mutex's."); return -1; } if(pthread_mutex_init(&mutex, &attr)) { puts("Unable to initialize the mutex (pthread_mutex_init)."); return -1; } if(pthread_mutexattr_destroy(&attr)) { puts("Unable to destroy mutex attributes (pthread_mutexattr_destroy)."); return -1; } if(pthread_mutex_destroy(&mutex)) { puts("Unable to destroy mutex (pthread_mutex_destroy)."); return -1; } puts("pthread mutex's are supported!"); return 0; } ], [ dnl -Success- PHP_ADD_LIBRARY(pthread) ], [ dnl -Failure- AC_MSG_WARN([It doesn't appear that pthread mutex's are supported on your system]) PHP_APC_PTHREADMUTEX=no ], [ PHP_ADD_LIBRARY(pthread) ] ) LIBS="$orig_LIBS" fi AC_MSG_CHECKING(Checking whether we should use spin locks) AC_ARG_ENABLE(apc-spinlocks, [ --enable-apc-spinlocks Enable spin locks EXPERIMENTAL ], [ PHP_APC_SPINLOCKS=$enableval AC_MSG_RESULT($enableval) ], [ PHP_APC_SPINLOCKS=no AC_MSG_RESULT(no) ]) if test "$PHP_APC" != "no"; then test "$PHP_APC_MMAP" != "no" && AC_DEFINE(APC_MMAP, 1, [ ]) test "$PHP_APC_FILEHITS" != "no" && AC_DEFINE(APC_FILEHITS, 1, [ ]) if test "$PHP_APC_SEM" != "no"; then AC_DEFINE(APC_SEM_LOCKS, 1, [ ]) elif test "$PHP_APC_FUTEX" != "no"; then AC_DEFINE(APC_FUTEX_LOCKS, 1, [ ]) elif test "$PHP_APC_SPINLOCKS" != "no"; then AC_DEFINE(APC_SPIN_LOCKS, 1, [ ]) elif test "$PHP_APC_PTHREADMUTEX" != "no"; then AC_DEFINE(APC_PTHREADMUTEX_LOCKS, 1, [ ]) fi AC_CHECK_FUNCS(sigaction) AC_CACHE_CHECK(for union semun, php_cv_semun, [ AC_TRY_COMPILE([ #include #include #include ], [union semun x;], [ php_cv_semun=yes ],[ php_cv_semun=no ]) ]) if test "$php_cv_semun" = "yes"; then AC_DEFINE(HAVE_SEMUN, 1, [ ]) else AC_DEFINE(HAVE_SEMUN, 0, [ ]) fi AC_MSG_CHECKING(whether we should enable valgrind support) AC_ARG_ENABLE(valgrind-checks, [ --enable-valgrind-checks Enable valgrind based memory checks], [ PHP_APC_VALGRIND=$enableval AC_MSG_RESULT($enableval) AC_CHECK_HEADER(valgrind/memcheck.h, [AC_DEFINE([HAVE_VALGRIND_MEMCHECK_H],1, [enable valgrind memchecks])]) ], [ PHP_APC_VALGRIND=no AC_MSG_RESULT(no) ]) apc_sources="apc.c php_apc.c \ apc_cache.c \ apc_compile.c \ apc_debug.c \ apc_fcntl.c \ apc_main.c \ apc_mmap.c \ apc_sem.c \ apc_shm.c \ apc_futex.c \ apc_pthreadmutex.c \ apc_spin.c \ pgsql_s_lock.c \ apc_sma.c \ apc_stack.c \ apc_zend.c \ apc_rfc1867.c \ apc_signal.c \ apc_pool.c " PHP_CHECK_LIBRARY(rt, shm_open, [PHP_ADD_LIBRARY(rt,,APC_SHARED_LIBADD)]) PHP_NEW_EXTENSION(apc, $apc_sources, $ext_shared,, \\$(APC_CFLAGS)) PHP_SUBST(APC_SHARED_LIBADD) PHP_SUBST(APC_CFLAGS) AC_DEFINE(HAVE_APC, 1, [ ]) fi