# SYNOPSIS # # AMANDA_FUNC_SHM_ARG_TYPE # # OVERVIEW # # Determine the type of the second argument to shmdt/shmat, defining # that type (without the *) in SHM_ARG_TYPE. # AC_DEFUN([AMANDA_FUNC_SHM_ARG_TYPE], [ AC_CHECK_HEADERS( sys/types.h \ sys/ipc.h \ sys/shm.h \ ) AC_CACHE_CHECK( [for shmdt() argument type], amanda_cv_shmdt_arg_type, [ if test "$ac_cv_func_shmget" = yes; then cat <conftest.$ac_ext #include "confdefs.h" #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_IPC_H # include #endif #ifdef HAVE_SYS_SHM_H # include #endif #ifdef __cplusplus extern "C" void *shmat(int, void *, int); #else void *shmat(); #endif int main() { int i; return 0; } EOF ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext >/dev/null 2>/dev/null if test $? = 0; then amanda_cv_shmdt_arg_type=void else amanda_cv_shmdt_arg_type=char fi rm -f conftest* else amanda_cv_shmdt_arg_type=nothing fi ] ) AC_DEFINE_UNQUOTED(SHM_ARG_TYPE,$amanda_cv_shmdt_arg_type, [Define to type of shmget() function argument. ]) ] ) # SYNOPSIS # # AMANDA_CHECK_SHMEM # # OVERVIEW # # Check for shared memory support; checks for the --with-mmap option, # and then ensures that the proper compilation infrastructure is in place # for either mmap or shared memory support. # # Defines several HAVE_*_DECL symbols via ICE_CHECK_DECL, as well as # HAVE_SYSVSHM if shared memory support is discovered. # AC_DEFUN([AMANDA_CHECK_SHMEM], [ AC_REQUIRE([AC_HEADER_STDC]) AC_ARG_WITH(mmap, AS_HELP_STRING([--with-mmap], [force use of mmap instead of shared memory support]), [ case "$FORCE_MMAP" in y | ye | yes | n | no) : ;; *) AC_MSG_ERROR([*** You must not supply an argument to --with-mmap.]) ;; esac FORCE_MMAP=$withval ], [ : ${FORCE_MMAP=no} ] ) AC_CHECK_HEADERS(\ sys/shm.h \ sys/mman.h \ ) AC_FUNC_MMAP AC_CHECK_FUNCS(shmget, [ AMANDA_FUNC_SHM_ARG_TYPE case "$FORCE_MMAP" in n | no) AC_DEFINE(HAVE_SYSVSHM,1, [Define if SysV shared-memory functions are available. ]) ;; esac ] ) ICE_CHECK_DECL(shmat,sys/types.h sys/ipc.h sys/shm.h) ICE_CHECK_DECL(shmctl,sys/types.h sys/ipc.h sys/shm.h) ICE_CHECK_DECL(shmdt,sys/types.h sys/ipc.h sys/shm.h) ICE_CHECK_DECL(shmget,sys/types.h sys/ipc.h sys/shm.h) if test "x$ac_cv_func_mmap_fixed_mapped" != xyes; then case "$FORCE_MMAP" in n | no) if test "x$ac_cv_func_shmget" != xyes; then AMANDA_MSG_WARN([Neither shmget() nor mmap() found. This system will not support the Amanda server.]) NO_SERVER_MODE=true fi ;; y | ye | yes) AMANDA_MSG_WARN([--with-mmap used on a system with no mmap() support. This system will not support the Amanda server.]) NO_SERVER_MODE=true ;; esac fi ])