📄 configure.in
字号:
havemmapshm="0"haveshmget="0"havebeosarea="0"haveos2shm="0"havewin32shm="0"APR_BEGIN_DECISION([namebased memory allocation method])APR_IFALLYES(header:sys/mman.h func:mmap func:munmap, [havemmaptmp="1" APR_DECIDE(USE_SHMEM_MMAP_TMP, [Classical mmap() on temporary file])])APR_IFALLYES(header:sys/mman.h func:mmap func:munmap func:shm_open dnl func:shm_unlink, [havemmapshm="1" APR_DECIDE(USE_SHMEM_MMAP_SHM, [mmap() via POSIX.1 shm_open() on temporary file])])APR_IFALLYES(header:sys/ipc.h header:sys/shm.h header:sys/file.h dnl func:shmget func:shmat func:shmdt func:shmctl, [haveshmget="1" APR_DECIDE(USE_SHMEM_SHMGET, [SysV IPC shmget()])])APR_IFALLYES(header:kernel/OS.h func:create_area, [havebeosshm="1" APR_DECIDE(USE_SHMEM_BEOS, [BeOS areas])])APR_IFALLYES(header:os2.h, [haveos2shm="1" APR_DECIDE(USE_SHMEM_OS2, [OS/2 DosAllocSharedMem()])])APR_IFALLYES(header:windows.h, [havewin32shm="1" APR_DECIDE(USE_SHMEM_WIN32, [Windows shared memory])])case $host in *linux* ) # Linux has problems with MM_SHMT_MMANON even though it reports # that it has it. # FIXME - find exact 2.3 version that MMANON was fixed in. It is # confirmed fixed in 2.4 series. if test $os_version -le "240"; then APR_DECISION_OVERRIDE(USE_SHMEM_MMAP_TMP USE_SHMEM_MMAP_SHM dnl USE_SHMEM_SHMGET) fi ;;esacAPR_END_DECISIONAC_DEFINE_UNQUOTED($ac_decision)usemmaptmp="0"usemmapshm="0"useshmget="0"usebeosarea="0"useos2shm="0"usewin32shm="0"case $ac_decision in USE_SHMEM_MMAP_TMP ) usemmaptmp="1" ;; USE_SHMEM_MMAP_SHM ) usemmapshm="1" ;; USE_SHMEM_SHMGET ) useshmget="1" ;; USE_SHMEM_BEOS ) usebeosarea="1" ;; USE_SHMEM_OS2 ) useos2shm="1" ;; USE_SHMEM_WIN32 ) usewin32shm="1" ;;esac# Do we have any shared memory support?if test "$usemmaptmp$usemmapshm$usemmapzero$useshmget$usemmapanon$usebeosarea$useos2shm$usewin32shm" = "00000000"; then sharedmem="0"else sharedmem="1"fiAC_SUBST(usemmaptmp)AC_SUBST(usemmapshm)AC_SUBST(useshmget)AC_SUBST(usebeosarea)AC_SUBST(useos2shm)AC_SUBST(usewin32shm)AC_SUBST(havemmaptmp)AC_SUBST(havemmapshm)AC_SUBST(haveshmget)AC_SUBST(havebeosarea)AC_SUBST(haveos2shm)AC_SUBST(havewin32shm)AC_SUBST(sharedmem)dnl ----------------------------- Checks for Any required Functionsdnl Checks for library functions. (N.B. poll is further down)AC_FUNC_ALLOCAAC_CHECK_FUNCS([calloc setsid isinf isnan \ getenv putenv setenv unsetenv \ writev getifaddrs utime utimes])AC_CHECK_FUNCS(setrlimit, [ have_setrlimit="1" ], [ have_setrlimit="0" ]) AC_CHECK_FUNCS(getrlimit, [ have_getrlimit="1" ], [ have_getrlimit="0" ]) sendfile="0"AC_CHECK_LIB(sendfile, sendfilev)AC_CHECK_FUNCS(sendfile send_file sendfilev, [ sendfile="1" ])dnl THIS MUST COME AFTER THE THREAD TESTS - FreeBSD doesn't always have adnl threaded poll() and we don't want to use sendfile on early FreeBSD dnl systems if we are also using threads.AC_ARG_WITH(sendfile, [ --with-sendfile Override decision to use sendfile], [ if test "$withval" = "yes"; then sendfile="1" else sendfile="0" fi ], [ orig_sendfile=$sendfile case $host in *freebsd*) # FreeBSD < 4.2 has issues with threads+sendfile if test $os_version -le "401999"; then if test "$threads" = "1"; then sendfile="0" fi fi ;; *alpha*-dec-osf* ) sendfile="0" ;; s390-*-linux-gnu) # disable sendfile support for 2.2 on S/390 if test $os_version -lt 240; then sendfile="0" fi ;; *aix*) # compiler-independent check for 64-bit build AC_CHECK_SIZEOF(void*, 4) if test "x$ac_cv_sizeof_voidp" = "x8"; then # sendfile not working for 64-bit build sendfile="0" fi ;; esac if test "$orig_sendfile" != "$sendfile"; then echo "sendfile support disabled to avoid system problem" fi ] )AC_SUBST(sendfile)AC_CHECK_FUNCS(sigaction, [ have_sigaction="1" ], [ have_sigaction="0" ]) AC_DECL_SYS_SIGLISTAC_CHECK_FUNCS(fork, [ fork="1" ], [ fork="0" ])APR_CHECK_INET_ADDRAPR_CHECK_INET_NETWORKAC_SUBST(apr_inaddr_none)AC_CHECK_FUNC(_getch)AC_CHECK_FUNCS(strerror_r, [ strerror_r="1" ], [ strerror_r="0" ])if test "$strerror_r" = "1"; then APR_CHECK_STRERROR_R_RCfiAC_CHECK_FUNCS(mmap, [ mmap="1" ], [ mmap="0" ])if test "$native_mmap_emul" = "1"; then mmap="1"fiAC_CHECK_FUNCS(memmove, [ have_memmove="1" ], [have_memmove="0" ])AC_CHECK_FUNCS([getpass getpassphrase gmtime_r localtime_r mkstemp])AC_SUBST(fork)AC_SUBST(have_inet_addr)AC_SUBST(tcp_nodelay_inherited)AC_SUBST(o_nonblock_inherited)AC_SUBST(have_inet_network)AC_SUBST(have_sigaction)AC_SUBST(have_setrlimit)AC_SUBST(have_getrlimit)AC_SUBST(mmap)AC_SUBST(have_memmove)APR_CHECK_SIGWAIT_ONE_ARGdnl ----------------------------- Checks for Any required HeadersAC_HEADER_STDCAPR_FLAG_HEADERS( ByteOrder.h \ conio.h \ crypt.h \ ctype.h \ dir.h \ dirent.h \ dl.h \ dlfcn.h \ errno.h \ fcntl.h \ grp.h \ io.h \ limits.h \ mach-o/dyld.h \ malloc.h \ memory.h \ netdb.h \ osreldate.h \ poll.h \ process.h \ pwd.h \ semaphore.h \ signal.h \ stdarg.h \ stddef.h \ stdio.h \ stdlib.h \ string.h \ strings.h \ sysapi.h \ sysgtime.h \ termios.h \ time.h \ tpfeq.h \ tpfio.h \ unistd.h \ unix.h \ windows.h \ winsock2.h \ arpa/inet.h \ kernel/OS.h \ net/errno.h \ netinet/in.h \ netinet/sctp.h \ netinet/sctp_uio.h \ sys/file.h \ sys/ioctl.h \ sys/mman.h \ sys/param.h \ sys/poll.h \ sys/resource.h \ sys/select.h \ sys/sem.h \ sys/sendfile.h \ sys/signal.h \ sys/socket.h \ sys/sockio.h \ sys/stat.h \ sys/sysctl.h \ sys/syslimits.h \ sys/time.h \ sys/types.h \ sys/uio.h \ sys/un.h \ sys/wait.h)# IRIX 6.5 has a problem in <netinet/tcp.h> which prevents it from# being included by itself. Check for <netinet/tcp.h> manually,# including another header file first.AC_CACHE_CHECK([for netinet/tcp.h], [apr_cv_hdr_netinet_tcp_h],[AC_TRY_CPP([#ifdef HAVE_NETINET_IN_H#include <netinet/in.h>#endif#include <netinet/tcp.h>], [apr_cv_hdr_netinet_tcp_h=yes], [apr_cv_hdr_netinet_tcp_h=no])])if test "$apr_cv_hdr_netinet_tcp_h" = "yes"; then netinet_tcph=1 AC_DEFINE([HAVE_NETINET_TCP_H], 1, [Defined if netinet/tcp.h is present])else netinet_tcph=0fiAC_SUBST(arpa_ineth)AC_SUBST(conioh)AC_SUBST(ctypeh)AC_SUBST(crypth)AC_SUBST(errnoh)AC_SUBST(direnth)AC_SUBST(fcntlh)AC_SUBST(ioh)AC_SUBST(limitsh)AC_SUBST(netdbh)AC_SUBST(sys_syslimitsh)AC_SUBST(netinet_inh)AC_SUBST(netinet_sctph)AC_SUBST(netinet_sctp_uioh)AC_SUBST(netinet_tcph)AC_SUBST(stdargh)AC_SUBST(stdioh)AC_SUBST(stdlibh)AC_SUBST(stringh)AC_SUBST(stringsh)AC_SUBST(sys_ioctlh)AC_SUBST(sys_sendfileh)AC_SUBST(sys_signalh)AC_SUBST(sys_socketh)AC_SUBST(sys_sockioh)AC_SUBST(sys_typesh)AC_SUBST(sys_timeh)AC_SUBST(sys_uioh)AC_SUBST(sys_unh)AC_SUBST(timeh)AC_SUBST(unistdh)AC_SUBST(signalh)AC_SUBST(sys_waith)AC_SUBST(pthreadh)AC_SUBST(semaphoreh)AC_SUBST(windowsh)AC_SUBST(winsock2h)# Checking for h_errno in <netdb.h>if test "$netdbh" = "1"; then APR_CHECK_H_ERRNO_FLAG if test "$ac_cv_h_errno_cflags" = "no"; then AC_MSG_ERROR([can not find h_errno in netdb.h]) fifidnl ----------------------------- Checks for standard typedefsAC_TYPE_OFF_TAC_TYPE_PID_TAC_TYPE_SIZE_TAC_TYPE_UID_TAC_CHECK_TYPE(ssize_t, int)AC_C_INLINEAC_C_CONSTAC_FUNC_SETPGRPAPR_CHECK_SOCKLEN_Tdnl Checks for pointer sizeAC_CHECK_SIZEOF(void*, 4)if test "x$ac_cv_sizeof_voidp" != "x"; then voidp_size=$ac_cv_sizeof_voidpelse AC_ERROR([Cannot determine size of void*])fidnl Checks for integer sizeAC_CHECK_SIZEOF(char, 1)AC_CHECK_SIZEOF(int, 4)AC_CHECK_SIZEOF(long, 4)AC_CHECK_SIZEOF(short, 2)AC_CHECK_SIZEOF(long long, 8)if test "$ac_cv_sizeof_short" = "2"; then short_value=shortfiif test "$ac_cv_sizeof_int" = "4"; then int_value=intfi# Now we need to find what apr_int64_t (sizeof == 8) will be.# The first match is our preference.if test "$ac_cv_sizeof_int" = "8"; then int64_literal='#define APR_INT64_C(val) (val)' uint64_literal='#define APR_UINT64_C(val) (val##U)' int64_t_fmt='#define APR_INT64_T_FMT "d"' uint64_t_fmt='#define APR_UINT64_T_FMT "u"' uint64_t_hex_fmt='#define APR_UINT64_T_HEX_FMT "x"' int64_value="int" long_value=int int64_strfn="strtoi"elif test "$ac_cv_sizeof_long" = "8"; then int64_literal='#define APR_INT64_C(val) (val##L)' uint64_literal='#define APR_UINT64_C(val) (val##UL)' int64_t_fmt='#define APR_INT64_T_FMT "ld"' uint64_t_fmt='#define APR_UINT64_T_FMT "lu"' uint64_t_hex_fmt='#define APR_UINT64_T_HEX_FMT "lx"' int64_value="long" long_value=long int64_strfn="strtol"elif test "$ac_cv_sizeof_long_long" = "8"; then int64_literal='#define APR_INT64_C(val) (val##LL)' uint64_literal='#define APR_UINT64_C(val) (val##ULL)' # Linux, Solaris, FreeBSD all support ll with printf. # BSD 4.4 originated 'q'. Solaris is more popular and # doesn't support 'q'. Solaris wins. Exceptions can # go to the OS-dependent section. int64_t_fmt='#define APR_INT64_T_FMT "lld"' uint64_t_fmt='#define APR_UINT64_T_FMT "llu"' uint64_t_hex_fmt='#define APR_UINT64_T_HEX_FMT "llx"' int64_value="long long" long_value="long long" int64_strfn="strtoll"elif test "$ac_cv_sizeof_longlong" = "8"; then int64_literal='#define APR_INT64_C(val) (val##LL)' uint64_literal='#define APR_UINT64_C(val) (val##ULL)' int64_t_fmt='#define APR_INT64_T_FMT "qd"' uint64_t_fmt='#define APR_UINT64_T_FMT "qu"' uint64_t_hex_fmt='#define APR_UINT64_T_HEX_FMT "qx"' int64_value="__int64" long_value="__int64" int64_strfn="strtoll"else # int64_literal may be overriden if your compiler thinks you have # a 64-bit value but APR does not agree. AC_ERROR([could not detect a 64-bit integer type])fi# If present, allow the C99 macro INT64_C to override our conversion.## HP-UX's ANSI C compiler provides this without any includes, so we# will first look for INT64_C without adding stdint.hAC_CACHE_CHECK([for INT64_C], [apr_cv_define_INT64_C], [AC_EGREP_CPP(YES_IS_DEFINED,[#ifdef INT64_CYES_IS_DEFINED#endif], [apr_cv_define_INT64_C=yes], [ # Now check for INT64_C in stdint.h AC_EGREP_CPP(YES_IS_DEFINED, [#include <stdint.h>#ifdef INT64_CYES_IS_DEFINED#endif], [apr_cv_define_INT64_C=yes], [apr_cv_define_INT64_C=no])])])if test "$apr_cv_define_INT64_C" = "yes"; then int64_literal='#define APR_INT64_C(val) INT64_C(val)' uint64_literal='#define APR_UINT64_C(val) UINT64_C(val)' stdint=1else stdint=0fiif test "$ac_cv_type_size_t" = "yes"; then size_t_value="size_t"else size_t_value="apr_int32_t"fiif test "$ac_cv_type_ssize_t" = "yes"; then ssize_t_value="ssize_t"else ssize_t_value="apr_int32_t"fiif test "$ac_cv_socklen_t" = "yes"; then socklen_t_value="socklen_t" case $host in *-hp-hpux*) if test "$ac_cv_sizeof_long" = "8"; then # 64-bit HP-UX requires 32-bit socklens in # kernel, but user-space declarations say # 64-bit (socklen_t == size_t == long). # This will result in many compile warnings, # but we're functionally busted otherwise. socklen_t_value="int" fi ;; esacelse socklen_t_value="int"fiAPR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], pid_t, 8)if test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_short"; then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -