# # $Author: misho $ # $Id: configure.in,v 1.39 2024/03/20 17:32:29 misho Exp $ # AC_INIT(libaitrpc, 9.5, misho@elwix.org) AC_CONFIG_SRCDIR([src/aitrpc.c]) AC_CONFIG_HEADERS([inc/config.h]) ac_cv_func_malloc_0_nonnull="yes" ac_cv_func_realloc_0_nonnull="yes" # Checks for programs. AC_PROG_CC AC_PROG_INSTALL AC_PROG_RANLIB AC_CANONICAL_HOST AC_CANONICAL_TARGET AC_CHECK_TOOL(MKDEP, mkdep, ../mkdep) AC_SUBST(MKDEP) CFLAGS="-Wall -O2 -fPIC ${CFLAGS}" LDFLAGS="${LDFLAGS}" # Checks for libraries. AC_CHECK_LIB([pthread], [pthread_create]) AC_CHECK_LIB([elwix], [array_Init]) AC_CHECK_LIB([aitsched], [schedInit]) # Checks for header files. AC_CHECK_HEADERS([arpa/inet.h netdb.h netinet/in.h stdlib.h string.h sys/param.h sys/socket.h unistd.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_INLINE AC_TYPE_INT16_T AC_TYPE_INT32_T AC_TYPE_INT64_T AC_TYPE_INT8_T AC_TYPE_UINT16_T AC_TYPE_UINT32_T AC_TYPE_UINT64_T AC_TYPE_UINT8_T # Checks for library functions. AC_FUNC_FORK AC_FUNC_MALLOC AC_FUNC_REALLOC AC_CHECK_FUNCS([memset select socket strdup strerror]) AC_CHECK_FUNCS([srandomdev]) AC_CHECK_FUNCS([crcFletcher16 hash_fnv1]) AC_CHECK_FUNCS([pthread_yield]) AC_CHECK_FUNCS([array_Init array_Destroy]) AC_CHECK_FUNCS([schedInit schedEnd]) DEBUG=no AC_MSG_CHECKING(Debug Build) AC_ARG_ENABLE(debug, [ --enable-debug Build library with debug information and additional messages], [ DEBUG=$enableval case "$enableval" in yes) AC_DEFINE(__DEBUG,, [Build libraries with debug information and additional messages]) CFLAGS="-g ${CFLAGS}" ;; *) AC_DEFINE(NDEBUG,, [Build w/o assert() support]) ;; esac ],) AC_MSG_RESULT($DEBUG) ONLY_CLI=no AC_MSG_CHECKING(Build only RPC client) AC_ARG_ENABLE(server, [ --disable-server Disable RPC server ], [ if [[ "$enableval" = "no" ]]; then ONLY_CLI="yes" AC_DEFINE(ONLY_CLI, 1, [ Disable RPC server ]) else AC_DEFINE(ONLY_CLI, 0, [ Disable RPC server ]) fi ], AC_DEFINE(ONLY_CLI, 0, [ Disable RPC server ])) AC_MSG_RESULT($ONLY_CLI) AC_SUBST(ONLY_CLI) CLI_RES_ZC=no AC_MSG_CHECKING(Client zero-copy return variables) AC_ARG_ENABLE(cli-res-zcpy, [ --enable-cli-res-zcpy Build library with zero-copy return array from RPC client ], [ CLI_RES_ZC=$enableval case "$enableval" in yes) AC_DEFINE(CLI_RES_ZCOPY,, [Build library with zero-copy return array from RPC client]) ;; *) ;; esac ],) AC_MSG_RESULT($CLI_RES_ZC) TCP_SESSION_TIMEOUT=no AC_MSG_CHECKING(RPC server can to do expiring for TCP sessions) AC_ARG_ENABLE(tcp_sess_exp, [ --enable-tcp_sess_exp Build library with TCP session expiration], [ TCP_SESSION_TIMEOUT=$enableval case "$enableval" in yes) AC_DEFINE(TCP_SESSION_TIMEOUT,, [Build library with TCP session expiration]) ;; *) ;; esac ],) AC_MSG_RESULT($TCP_SESSION_TIMEOUT) DEF_RPC_TIMEOUT=60 AC_MSG_CHECKING(RPC server timeout period) AC_ARG_WITH(timeout_period, [ --with-timeout_period=s Build library with RPC timeout period ], [ DEF_RPC_TIMEOUT=$withval ],) AC_DEFINE_UNQUOTED(DEF_RPC_TIMEOUT, $DEF_RPC_TIMEOUT, [Build library with RPC timeout period]) AC_MSG_RESULT($DEF_RPC_TIMEOUT) DEF_RPC_BLOB_TIMEOUT=60 AC_MSG_CHECKING(RPC BLOB server timeout period) AC_ARG_WITH(blob_timeout, [ --with-blob_timeout=sec Build library with BLOB timeout period ], [ DEF_RPC_BLOB_TIMEOUT=$withval ],) AC_DEFINE_UNQUOTED(DEF_RPC_BLOB_TIMEOUT, $DEF_RPC_BLOB_TIMEOUT, [Build library with BLOB timeout period]) AC_MSG_RESULT($DEF_RPC_BLOB_TIMEOUT) AC_CONFIG_FILES([Makefile inc/Makefile lib/Makefile debian/Makefile src/Makefile]) AC_OUTPUT