dnl config.m4 for extension swoole dnl +----------------------------------------------------------------------+ dnl | Swoole | dnl +----------------------------------------------------------------------+ dnl | This source file is subject to version 2.0 of the Apache license, | dnl | that is bundled with this package in the file LICENSE, and is | dnl | available through the world-wide-web at the following url: | dnl | http://www.apache.org/licenses/LICENSE-2.0.html | dnl | If you did not receive a copy of the Apache2.0 license and are unable| dnl | to obtain it through the world-wide-web, please send a note to | dnl | license@swoole.com so we can mail you a copy immediately. | dnl +----------------------------------------------------------------------+ dnl | Author: Tianfeng Han | dnl +----------------------------------------------------------------------+ PHP_ARG_ENABLE(swoole-debug, whether to enable swoole debug, [ --enable-swoole-debug Enable swoole debug], no, no) PHP_ARG_ENABLE(trace-log, Whether to enable trace log, [ --enable-trace-log Enable swoole trace log], no, no) PHP_ARG_ENABLE(sockets, enable sockets support, [ --enable-sockets Do you have sockets extension?], no, no) PHP_ARG_ENABLE(async_redis, enable async_redis support, [ --enable-async-redis Do you have hiredis?], no, no) PHP_ARG_ENABLE(coroutine-postgresql, enable coroutine postgresql support, [ --enable-coroutine-postgresql Do you install postgresql?], no, no) PHP_ARG_ENABLE(openssl, enable openssl support, [ --enable-openssl Use openssl?], no, no) PHP_ARG_ENABLE(http2, enable http2.0 support, [ --enable-http2 Use http2.0?], no, no) PHP_ARG_ENABLE(thread, enable thread support, [ --enable-thread Experimental: Use thread?], no, no) PHP_ARG_ENABLE(hugepage, enable hugepage support, [ --enable-hugepage Experimental: Use hugepage?], no, no) PHP_ARG_ENABLE(swoole, swoole support, [ --enable-swoole Enable swoole support], [enable_swoole="yes"]) PHP_ARG_ENABLE(swoole_static, swoole static compile support, [ --enable-swoole-static Enable swoole static compile support], no, no) PHP_ARG_WITH(swoole, swoole support, [ --with-swoole With swoole support]) PHP_ARG_WITH(libpq_dir, for libpq support, [ --with-libpq-dir[=DIR] Include libpq support (requires libpq >= 9.5)], no, no) PHP_ARG_WITH(openssl_dir, for OpenSSL support, [ --with-openssl-dir[=DIR] Include OpenSSL support (requires OpenSSL >= 0.9.6)], no, no) PHP_ARG_WITH(phpx_dir, for PHP-X support, [ --with-phpx-dir[=DIR] Include PHP-X support], no, no) PHP_ARG_WITH(jemalloc_dir, for jemalloc support, [ --with-jemalloc-dir[=DIR] Include jemalloc support], no, no) PHP_ARG_ENABLE(mysqlnd, enable mysqlnd support, [ --enable-mysqlnd Do you have mysqlnd?], no, no) PHP_ARG_ENABLE(asan, whether to enable asan, [ --enable-asan Enable asan], no, no) PHP_ARG_ENABLE(picohttpparser, enable picohttpparser support, [ --enable-picohttpparser Experimental: Do you have picohttpparser?], no, no) PHP_ARG_WITH(swoole, swoole support, [ --with-swoole With swoole support]) PHP_ARG_ENABLE(timewheel, enable timewheel support, [ --enable-timewheel Experimental: Enable timewheel heartbeat?], no, no) AC_DEFUN([SWOOLE_HAVE_PHP_EXT], [ extname=$1 haveext=$[PHP_]translit($1,a-z_-,A-Z__) AC_MSG_CHECKING([for ext/$extname support]) if test -x "$PHP_EXECUTABLE"; then grepext=`$PHP_EXECUTABLE -m | $EGREP ^$extname\$` if test "$grepext" = "$extname"; then [PHP_HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__)=1 AC_MSG_RESULT([yes]) $2 else [PHP_HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__)= AC_MSG_RESULT([no]) $3 fi elif test "$haveext" != "no" && test "x$haveext" != "x"; then [PHP_HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__)=1 AC_MSG_RESULT([yes]) $2 else [PHP_HTTP_HAVE_EXT_]translit($1,a-z_-,A-Z__)= AC_MSG_RESULT([no]) $3 fi ]) AC_DEFUN([AC_SWOOLE_CPU_AFFINITY], [ AC_MSG_CHECKING([for cpu affinity]) AC_TRY_COMPILE( [ #ifdef __FreeBSD__ #include #include typedef cpuset_t cpu_set_t; #else #include #endif ], [ cpu_set_t cpu_set; CPU_ZERO(&cpu_set); ], [ AC_DEFINE([HAVE_CPU_AFFINITY], 1, [cpu affinity?]) AC_MSG_RESULT([yes]) ], [ AC_MSG_RESULT([no]) ]) ]) AC_DEFUN([AC_SWOOLE_HAVE_REUSEPORT], [ AC_MSG_CHECKING([for socket REUSEPORT]) AC_TRY_COMPILE( [ #include ], [ int val = 1; setsockopt(0, SOL_SOCKET, SO_REUSEPORT, &val, sizeof(val)); ], [ AC_DEFINE([HAVE_REUSEPORT], 1, [have SO_REUSEPORT?]) AC_MSG_RESULT([yes]) ], [ AC_MSG_RESULT([no]) ]) ]) AC_DEFUN([AC_SWOOLE_HAVE_FUTEX], [ AC_MSG_CHECKING([for futex]) AC_TRY_COMPILE( [ #include #include #include ], [ int futex_addr; int val1; syscall(SYS_futex, &futex_addr, val1, NULL, NULL, 0); ], [ AC_DEFINE([HAVE_FUTEX], 1, [have FUTEX?]) AC_MSG_RESULT([yes]) ], [ AC_MSG_RESULT([no]) ]) ]) AC_DEFUN([AC_SWOOLE_HAVE_LINUX_AIO], [ AC_MSG_CHECKING([for linux aio]) AC_TRY_COMPILE( [ #include #include #include ], [ struct iocb *iocbps[1]; struct iocb iocbp; aio_context_t context; iocbps[0] = &iocbp; io_submit(context, 1, iocbps); ], [ AC_DEFINE([HAVE_LINUX_AIO], 1, [have LINUX_AIO?]) AC_MSG_RESULT([yes]) ], [ AC_MSG_RESULT([no]) ]) ]) AC_DEFUN([AC_SWOOLE_HAVE_UCONTEXT], [ AC_MSG_CHECKING([for ucontext]) AC_TRY_COMPILE( [ #include #include #include ], [ ucontext_t context; getcontext(&context); ], [ AC_DEFINE([HAVE_UCONTEXT], 1, [have ucontext?]) AC_MSG_RESULT([yes]) ], [ AC_MSG_RESULT([no]) ]) ]) AC_DEFUN([AC_SWOOLE_HAVE_BOOST_CONTEXT], [ AC_MSG_CHECKING([for boost.context]) AC_LANG([C++]) AC_TRY_COMPILE( [ #include ], [ ], [ AC_DEFINE([HAVE_BOOST_CONTEXT], 1, [have boost.context?]) SW_HAVE_BOOST_CONTEXT=yes AC_MSG_RESULT([yes]) ], [ AC_MSG_RESULT([no]) ]) ]) AC_DEFUN([AC_SWOOLE_HAVE_VALGRIND], [ AC_MSG_CHECKING([for valgrind]) AC_LANG([C++]) AC_TRY_COMPILE( [ #include ], [ ], [ AC_DEFINE([HAVE_VALGRIND], 1, [have valgrind?]) AC_MSG_RESULT([yes]) ], [ AC_MSG_RESULT([no]) ]) ]) AC_MSG_CHECKING([if compiling with clang]) AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([], [[ #ifndef __clang__ not clang #endif ]])], [CLANG=yes], [CLANG=no] ) AC_MSG_RESULT([$CLANG]) if test "$CLANG" = "yes"; then CFLAGS="$CFLAGS -std=gnu89" fi AC_CANONICAL_HOST if test "$PHP_SWOOLE" != "no"; then PHP_ADD_LIBRARY(pthread) PHP_SUBST(SWOOLE_SHARED_LIBADD) AC_ARG_ENABLE(debug, [--enable-debug, compile with debug symbols], [PHP_DEBUG=$enableval], [PHP_DEBUG=0] ) if test "$PHP_SWOOLE_DEBUG" != "no"; then AC_DEFINE(SW_DEBUG, 1, [do we enable swoole debug]) PHP_DEBUG=1 fi if test "$PHP_ASAN" != "no"; then PHP_DEBUG=1 CFLAGS="$CFLAGS -fsanitize=address -fno-omit-frame-pointer" fi if test "$PHP_TRACE_LOG" != "no"; then AC_DEFINE(SW_LOG_TRACE_OPEN, 1, [enable trace log]) fi if test "$PHP_SOCKETS" = "yes"; then AC_DEFINE(SW_SOCKETS, 1, [enable sockets support]) fi if test "$PHP_HTTP2" = "yes"; then AC_DEFINE(SW_USE_HTTP2, 1, [enable http2.0 support]) fi if test "$PHP_HUGEPAGE" = "yes"; then AC_DEFINE(SW_USE_HUGEPAGE, 1, [enable hugepage support]) fi if test "$PHP_THREAD" = "yes"; then AC_DEFINE(SW_USE_THREAD, 1, [enable thread support]) fi if test "$PHP_TIMEWHEEL" = "yes"; then AC_DEFINE(SW_USE_TIMEWHEEL, 1, [enable timewheel support]) fi AC_SWOOLE_CPU_AFFINITY AC_SWOOLE_HAVE_REUSEPORT AC_SWOOLE_HAVE_FUTEX AC_SWOOLE_HAVE_LINUX_AIO AC_SWOOLE_HAVE_UCONTEXT AC_SWOOLE_HAVE_BOOST_CONTEXT AC_SWOOLE_HAVE_VALGRIND CFLAGS="-Wall -pthread $CFLAGS" LDFLAGS="$LDFLAGS -lpthread" if test `uname` = "Darwin"; then AC_CHECK_LIB(c, clock_gettime, AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [have clock_gettime])) else AC_CHECK_LIB(rt, clock_gettime, AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [have clock_gettime])) PHP_ADD_LIBRARY(rt, 1, SWOOLE_SHARED_LIBADD) LDFLAGS="$LDFLAGS -z now" fi if test "$PHP_OPENSSL" != "no" || test "$PHP_OPENSSL_DIR" != "no"; then if test "$PHP_OPENSSL_DIR" != "no"; then AC_DEFINE(HAVE_OPENSSL, 1, [have openssl]) PHP_ADD_INCLUDE("${PHP_OPENSSL_DIR}/include") PHP_ADD_LIBRARY_WITH_PATH(ssl, "${PHP_OPENSSL_DIR}/${PHP_LIBDIR}") else AC_CHECK_LIB(ssl, SSL_connect, AC_DEFINE(HAVE_OPENSSL, 1, [have openssl])) fi AC_DEFINE(SW_USE_OPENSSL, 1, [enable openssl support]) PHP_ADD_LIBRARY(ssl, 1, SWOOLE_SHARED_LIBADD) PHP_ADD_LIBRARY(crypto, 1, SWOOLE_SHARED_LIBADD) fi if test "$PHP_PHPX_DIR" != "no"; then PHP_ADD_INCLUDE("${PHP_PHPX_DIR}/include") PHP_ADD_LIBRARY_WITH_PATH(phpx, "${PHP_PHPX_DIR}/${PHP_LIBDIR}") AC_DEFINE(SW_USE_PHPX, 1, [enable PHP-X support]) PHP_ADD_LIBRARY(phpx, 1, SWOOLE_SHARED_LIBADD) CXXFLAGS="$CXXFLAGS -std=c++11" fi if test "$PHP_JEMALLOC_DIR" != "no"; then AC_DEFINE(SW_USE_JEMALLOC, 1, [use jemalloc]) PHP_ADD_INCLUDE("${PHP_JEMALLOC_DIR}/include") PHP_ADD_LIBRARY_WITH_PATH(jemalloc, "${PHP_JEMALLOC_DIR}/${PHP_LIBDIR}") PHP_ADD_LIBRARY(jemalloc, 1, SWOOLE_SHARED_LIBADD) fi PHP_ADD_LIBRARY(pthread, 1, SWOOLE_SHARED_LIBADD) if test "$PHP_ASYNC_REDIS" = "yes"; then AC_DEFINE(SW_USE_REDIS, 1, [enable async-redis support]) PHP_ADD_LIBRARY(hiredis, 1, SWOOLE_SHARED_LIBADD) fi if test "$PHP_COROUTINE_POSTGRESQL" = "yes"; then if test "$PHP_LIBPQ" != "no" || test "$PHP_LIBPQ_DIR" != "no"; then if test "$PHP_LIBPQ_DIR" != "no"; then AC_DEFINE(HAVE_LIBPQ, 1, [have libpq]) AC_MSG_RESULT(libpq include success) PHP_ADD_INCLUDE("${PHP_LIBPQ_DIR}/include") else PGSQL_SEARCH_PATHS="/usr /usr/local /usr/local/pgsql" for i in $PGSQL_SEARCH_PATHS; do for j in include include/pgsql include/postgres include/postgresql ""; do if test -r "$i/$j/libpq-fe.h"; then PGSQL_INC_BASE=$i PGSQL_INCLUDE=$i/$j AC_MSG_RESULT(libpq-fe.h found in PGSQL_INCLUDE) PHP_ADD_INCLUDE("${PGSQL_INCLUDE}") fi done done fi AC_DEFINE(SW_USE_POSTGRESQL, 1, [enable coroutine-postgresql support]) PHP_ADD_LIBRARY(pq, 1, SWOOLE_SHARED_LIBADD) fi if test -z "$PGSQL_INCLUDE"; then AC_MSG_ERROR(Cannot find libpq-fe.h. Please confirm the libpq or specify correct PostgreSQL(libpq) installation path) fi fi if test "$PHP_HTTP2" = "yes"; then PHP_ADD_LIBRARY(nghttp2, 1, SWOOLE_SHARED_LIBADD) fi if test "$PHP_MYSQLND" = "yes"; then PHP_ADD_EXTENSION_DEP(mysqli, mysqlnd) AC_DEFINE(SW_USE_MYSQLND, 1, [use mysqlnd]) fi AC_CHECK_LIB(c, accept4, AC_DEFINE(HAVE_ACCEPT4, 1, [have accept4])) AC_CHECK_LIB(c, signalfd, AC_DEFINE(HAVE_SIGNALFD, 1, [have signalfd])) AC_CHECK_LIB(c, timerfd_create, AC_DEFINE(HAVE_TIMERFD, 1, [have timerfd])) AC_CHECK_LIB(c, eventfd, AC_DEFINE(HAVE_EVENTFD, 1, [have eventfd])) AC_CHECK_LIB(c, epoll_create, AC_DEFINE(HAVE_EPOLL, 1, [have epoll])) AC_CHECK_LIB(c, poll, AC_DEFINE(HAVE_POLL, 1, [have poll])) AC_CHECK_LIB(c, sendfile, AC_DEFINE(HAVE_SENDFILE, 1, [have sendfile])) AC_CHECK_LIB(c, kqueue, AC_DEFINE(HAVE_KQUEUE, 1, [have kqueue])) AC_CHECK_LIB(c, backtrace, AC_DEFINE(HAVE_EXECINFO, 1, [have execinfo])) AC_CHECK_LIB(c, daemon, AC_DEFINE(HAVE_DAEMON, 1, [have daemon])) AC_CHECK_LIB(c, mkostemp, AC_DEFINE(HAVE_MKOSTEMP, 1, [have mkostemp])) AC_CHECK_LIB(c, inotify_init, AC_DEFINE(HAVE_INOTIFY, 1, [have inotify])) AC_CHECK_LIB(c, malloc_trim, AC_DEFINE(HAVE_MALLOC_TRIM, 1, [have malloc_trim])) AC_CHECK_LIB(c, inotify_init1, AC_DEFINE(HAVE_INOTIFY_INIT1, 1, [have inotify_init1])) AC_CHECK_LIB(c, gethostbyname2_r, AC_DEFINE(HAVE_GETHOSTBYNAME2_R, 1, [have gethostbyname2_r])) AC_CHECK_LIB(c, ptrace, AC_DEFINE(HAVE_PTRACE, 1, [have ptrace])) AC_CHECK_LIB(pthread, pthread_rwlock_init, AC_DEFINE(HAVE_RWLOCK, 1, [have pthread_rwlock_init])) AC_CHECK_LIB(pthread, pthread_spin_lock, AC_DEFINE(HAVE_SPINLOCK, 1, [have pthread_spin_lock])) AC_CHECK_LIB(pthread, pthread_mutex_timedlock, AC_DEFINE(HAVE_MUTEX_TIMEDLOCK, 1, [have pthread_mutex_timedlock])) AC_CHECK_LIB(pthread, pthread_barrier_init, AC_DEFINE(HAVE_PTHREAD_BARRIER, 1, [have pthread_barrier_init])) AC_CHECK_LIB(pcre, pcre_compile, AC_DEFINE(HAVE_PCRE, 1, [have pcre])) AC_CHECK_LIB(hiredis, redisConnect, AC_DEFINE(HAVE_HIREDIS, 1, [have hiredis])) AC_CHECK_LIB(pq, PQconnectdb, AC_DEFINE(HAVE_POSTGRESQL, 1, [have postgresql])) AC_CHECK_LIB(nghttp2, nghttp2_hd_inflate_new, AC_DEFINE(HAVE_NGHTTP2, 1, [have nghttp2])) AC_CHECK_LIB(z, gzgets, [ AC_DEFINE(SW_HAVE_ZLIB, 1, [have zlib]) PHP_ADD_LIBRARY(z, 1, SWOOLE_SHARED_LIBADD) ]) swoole_source_file="swoole.c \ swoole_server.c \ swoole_server_port.c \ swoole_atomic.c \ swoole_lock.c \ swoole_client.c \ swoole_client_coro.c \ swoole_coroutine.cc \ swoole_coroutine_util.c \ swoole_event.c \ swoole_socket_coro.c \ swoole_timer.c \ swoole_async.c \ swoole_process.c \ swoole_process_pool.c \ swoole_serialize.c \ swoole_buffer.c \ swoole_table.c \ swoole_http_server.c \ swoole_http_v2_server.c \ swoole_http_v2_client.c \ swoole_http_v2_client_coro.c \ swoole_websocket_server.c \ swoole_http_client.c \ swoole_http_client_coro.c \ swoole_mysql.c \ swoole_mysql_coro.c \ swoole_postgresql_coro.c \ swoole_redis.c \ swoole_redis_coro.c \ swoole_redis_server.c \ swoole_mmap.c \ swoole_channel.c \ swoole_channel_coro.cc \ swoole_ringqueue.c \ swoole_msgqueue.c \ swoole_trace.c \ swoole_runtime.cc \ swoole_memory_pool.c \ src/core/base.c \ src/core/log.c \ src/core/hashmap.c \ src/core/RingQueue.c \ src/core/Channel.c \ src/core/string.c \ src/core/array.c \ src/core/socket.c \ src/core/list.c \ src/core/heap.c \ src/core/error.cc \ src/coroutine/base.cc \ src/coroutine/boost.cc \ src/coroutine/context.cc \ src/coroutine/ucontext.cc \ src/memory/ShareMemory.c \ src/memory/MemoryGlobal.c \ src/memory/RingBuffer.c \ src/memory/FixedPool.c \ src/memory/Malloc.c \ src/memory/Table.c \ src/memory/Buffer.c \ src/factory/Factory.c \ src/factory/FactoryThread.c \ src/factory/FactoryProcess.c \ src/reactor/ReactorBase.c \ src/reactor/ReactorSelect.c \ src/reactor/ReactorPoll.c \ src/reactor/ReactorEpoll.c \ src/reactor/ReactorKqueue.c \ src/pipe/PipeBase.c \ src/pipe/PipeEventfd.c \ src/pipe/PipeUnsock.c \ src/lock/Semaphore.c \ src/lock/Mutex.c \ src/lock/RWLock.c \ src/lock/SpinLock.c \ src/lock/FileLock.c \ src/lock/Cond.c \ src/network/Server.c \ src/network/TaskWorker.c \ src/network/Client.c \ src/network/Connection.c \ src/network/ProcessPool.c \ src/network/ThreadPool.c \ src/network/ReactorThread.c \ src/network/ReactorProcess.c \ src/network/Manager.c \ src/network/Worker.c \ src/network/Timer.c \ src/network/Port.c \ src/network/DNS.c \ src/network/TimeWheel.c \ src/network/Stream.c \ src/os/base.c \ src/os/msg_queue.c \ src/os/sendfile.c \ src/os/signal.c \ src/os/timer.c \ src/protocol/Base.c \ src/protocol/SSL.c \ src/protocol/Http.c \ src/protocol/Http2.c \ src/protocol/WebSocket.c \ src/protocol/Mqtt.c \ src/protocol/Socks5.c \ src/protocol/MimeTypes.c \ src/protocol/Redis.c \ src/protocol/Base64.c" if test "$PHP_SWOOLE_STATIC" = "no"; then swoole_source_file="$swoole_source_file thirdparty/php_http_parser.c" else CFLAGS="$CFLAGS -DSW_STATIC_COMPILATION" fi swoole_source_file="$swoole_source_file thirdparty/multipart_parser.c" if test "$PHP_PICOHTTPPARSER" = "yes"; then AC_DEFINE(SW_USE_PICOHTTPPARSER, 1, [enable picohttpparser support]) swoole_source_file="$swoole_source_file thirdparty/picohttpparser/picohttpparser.c" fi SW_NO_USE_ASM_CONTEXT="no" SW_ASM_DIR="thirdparty/boost/asm/" AS_CASE([$host_cpu], [x86_64*], [SW_CPU="x86_64"], [x86*], [SW_CPU="x86"], [arm*], [SW_CPU="arm"], [arm64*], [SW_CPU="arm64"], [ SW_NO_USE_ASM_CONTEXT="yes" AC_DEFINE([SW_NO_USE_ASM_CONTEXT], 1, [use boost asm context?]) ] ) AS_CASE([$host_os], [linux*], [SW_OS="LINUX"], [darwin*], [SW_OS="MAC"], [cygwin*], [SW_OS="WIN"], [mingw*], [SW_OS="WIN"], [ SW_NO_USE_ASM_CONTEXT="yes" AC_DEFINE([SW_NO_USE_ASM_CONTEXT], 1, [use boost asm context?]) ] ) if test "$SW_CPU" = 'x86_64'; then if test "$SW_OS" = 'LINUX'; then SW_CONTEXT_ASM_FILE="x86_64_sysv_elf_gas.S" elif test "$SW_OS" = 'MAC'; then SW_CONTEXT_ASM_FILE="x86_64_sysv_macho_gas.S" else SW_NO_USE_ASM_CONTEXT="yes" AC_DEFINE([SW_NO_USE_ASM_CONTEXT], 1, [use boost asm context?]) fi elif test "$SW_CPU" = 'x86'; then if test "$SW_OS" = 'LINUX'; then SW_CONTEXT_ASM_FILE="i386_sysv_elf_gas.S" elif test "$SW_OS" = 'MAC'; then SW_CONTEXT_ASM_FILE="i386_sysv_macho_gas.S" else SW_NO_USE_ASM_CONTEXT="yes" AC_DEFINE([SW_NO_USE_ASM_CONTEXT], 1, [use boost asm context?]) fi elif test "$SW_CPU" = 'arm'; then if test "$SW_OS" = 'LINUX'; then SW_CONTEXT_ASM_FILE="arm_aapcs_elf_gas.S" elif test "$SW_OS" = 'MAC'; then SW_CONTEXT_ASM_FILE="arm_aapcs_macho_gas.S" else SW_NO_USE_ASM_CONTEXT="yes" AC_DEFINE([SW_NO_USE_ASM_CONTEXT], 1, [use boost asm context?]) fi elif test "$SW_CPU" = 'arm64'; then if test "$SW_OS" = 'LINUX'; then SW_CONTEXT_ASM_FILE="arm64_aapcs_elf_gas.S" elif test "$SW_OS" = 'MAC'; then SW_CONTEXT_ASM_FILE="arm64_aapcs_macho_gas.S" else SW_NO_USE_ASM_CONTEXT="yes" AC_DEFINE([SW_NO_USE_ASM_CONTEXT], 1, [use boost asm context?]) fi elif test "$SW_CPU" = 'mips32'; then if test "$SW_OS" = 'LINUX'; then SW_CONTEXT_ASM_FILE="mips32_o32_elf_gas.S" else SW_NO_USE_ASM_CONTEXT="yes" AC_DEFINE([SW_NO_USE_ASM_CONTEXT], 1, [use boost asm context?]) fi fi if test "$SW_NO_USE_ASM_CONTEXT" = 'no'; then swoole_source_file="$swoole_source_file ${SW_ASM_DIR}make_${SW_CONTEXT_ASM_FILE} \ ${SW_ASM_DIR}jump_${SW_CONTEXT_ASM_FILE} " elif test "$SW_HAVE_BOOST_CONTEXT" = 'yes'; then LDFLAGS="$LDFLAGS -lboost_context" fi PHP_NEW_EXTENSION(swoole, $swoole_source_file, $ext_shared,,, cxx) PHP_ADD_INCLUDE([$ext_srcdir]) PHP_ADD_INCLUDE([$ext_srcdir/include]) PHP_INSTALL_HEADERS([ext/swoole], [*.h config.h include/*.h]) PHP_REQUIRE_CXX() PHP_ADD_LIBRARY(stdc++, 1, SWOOLE_SHARED_LIBADD) if test "$PHP_PICOHTTPPARSER" = "yes"; then PHP_ADD_INCLUDE([$ext_srcdir/thirdparty/picohttpparser]) PHP_ADD_BUILD_DIR($ext_builddir/thirdparty/picohttpparser) fi PHP_ADD_BUILD_DIR($ext_builddir/src/core) PHP_ADD_BUILD_DIR($ext_builddir/src/memory) PHP_ADD_BUILD_DIR($ext_builddir/src/factory) PHP_ADD_BUILD_DIR($ext_builddir/src/reactor) PHP_ADD_BUILD_DIR($ext_builddir/src/pipe) PHP_ADD_BUILD_DIR($ext_builddir/src/lock) PHP_ADD_BUILD_DIR($ext_builddir/src/os) PHP_ADD_BUILD_DIR($ext_builddir/src/network) PHP_ADD_BUILD_DIR($ext_builddir/src/protocol) PHP_ADD_BUILD_DIR($ext_builddir/src/coroutine) PHP_ADD_BUILD_DIR($ext_builddir/thirdparty) PHP_ADD_BUILD_DIR($ext_builddir/thirdparty/boost) PHP_ADD_BUILD_DIR($ext_builddir/thirdparty/boost/asm) fi