📄 configure.in
字号:
dnl ##dnl ## Autoconf specification for MM librarydnl ##dnl #dnl # standard Autoconf prologdnl #AC_PREREQ(2.12)dnlAC_REVISION($1.0$)dnldnl # autoconf initializationAC_INIT(README)AC_CONFIG_AUX_DIR(../../../build)AC_CONFIG_HEADER(mm_conf.h)AC_PREFIX_DEFAULT(/usr/local)dnl # shtool bootstrapSHTOOL="\$(TOP)/shtool"AC_SUBST(SHTOOL)ac_shtool="./shtool"T_MD=`$ac_shtool echo -n -e %B`T_ME=`$ac_shtool echo -n -e %b`AC_CANONICAL_SYSTEMPLATFORM=$hostecho "Platform = $host"MM_VERSION_STR="`$ac_shtool version -l c -d long mm_vers.c`"AC_SUBST(MM_VERSION_STR)dnl # friendly header ;-)echo "Configuring ${T_MD}MM${T_ME} (Shared Memory Library), Version ${T_MD}${MM_VERSION_STR}${T_ME}"echo "Copyright (c) 1999-2000 Ralf S. Engelschall, All Rights Reserved."echo "Platform: ${T_MD}${PLATFORM}${T_ME}"dnl # determine build modeAC_ARG_ENABLE(batch,dnl[ --enable-batch build in batch mode (default=no)],enable_batch="$enableval",if test ".$enable_batch" = .; then enable_batch=nofi)dnl #dnl # determine build tools and parametersdnl #AC_CONFIGURE_PART(Build Tools)AC_PROG_CCAC_PROG_CPP#AC_CHECK_TOOL(RANLIB, ranlib, true)AC_CHECK_DEBUGGINGAC_SET_MAKEAC_PROG_LIBTOOLdnl # support for some special platform/compiler optionscase "$PLATFORM:$CC" in *-hp-hpux*:cc ) CFLAGS="$CFLAGS -Ae +DAportable" ;;esacdnl #dnl # determine system parametersdnl #AC_CONFIGURE_PART(Platform Environment)AC_HAVE_HEADERS(stdio.h stdlib.h string.h dnl errno.h limits.h unistd.h fcntl.h dnl sys/stat.h sys/types.h)AC_BEGIN_DECISION([mandatory system headers])AC_IFALLYES(header:stdio.h header:stdlib.h header:string.h dnl header:errno.h header:limits.h header:unistd.h header:fcntl.h dnl header:sys/stat.h header:sys/types.h, AC_DECIDE(fine, [all fine]))AC_END_DECISIONAC_HAVE_HEADERS(memory.h)AC_CHECK_FUNCS(memcpy memset bcopy)AC_CHECK_DEFINE(_POSIX_PATH_MAX, limits.h)AC_CHECK_DEFINE(PATH_MAX, limits.h)AC_CHECK_DEFINE(MAXPATHLEN, sys/param.h)AC_CHECK_DEFINE(_POSIX_CHILD_MAX, limits.h)AC_CHECK_DEFINE(CHILD_MAX, limits.h)dnl # some special defines for brain dead platformscase $PLATFORM in *-*-sunos* ) AC_DEFINE(MM_OS_SUNOS) ;; BS2000-*-* ) AC_DEFINE(MM_OS_BS2000) ;; *-*-beos* ) AC_DEFINE(MM_OS_BEOS) ;;esacdnl #dnl # method to determine virtual memory page sizednl #AC_CONFIGURE_PART(Virtual Memory Page Size)AC_HAVE_HEADERS(unistd.h kernel/OS.h)AC_HAVE_FUNCS(getpagesize sysconf)AC_CHECK_DEFINE(_SC_PAGESIZE, unistd.h)AC_CHECK_DEFINE(B_PAGE_SIZE, kernel/OS.h)AC_BEGIN_DECISION([memory page size determination])AC_IFALLYES(header:unistd.h func:getpagesize, AC_DECIDE(MM_VMPS_GETPAGESIZE, [4.2BSD getpagesize()]))AC_IFALLYES(header:unistd.h func:sysconf define:_SC_PAGESIZE, AC_DECIDE(MM_VMPS_SYSCONF, [POSIX.1 sysconf(_SC_PAGESIZE)]))AC_IFALLYES(header:kernel/OS.h define:B_PAGE_SIZE, AC_DECIDE(MM_VMPS_BEOS, [BeOS B_PAGE_SIZE])) AC_END_DECISIONAC_DEFINE_UNQUOTED($ac_decision)dnl #dnl # Shared Memorydnl #AC_CONFIGURE_PART(Shared Memory Implementation)AC_HAVE_HEADERS(sys/mman.h)AC_CHECK_DEFINE(MAP_ANON, sys/mman.h)AC_HAVE_FUNCS(mmap munmap shm_open shm_unlink)AC_TEST_FILE(/dev/zero)AC_HAVE_HEADERS(sys/ipc.h sys/shm.h sys/file.h)AC_HAVE_FUNCS(shmget shmat shmdt shmctl)AC_HAVE_HEADERS(kernel/OS.h)AC_HAVE_FUNCS(create_area)AC_BEGIN_DECISION([shared memory allocation method])AC_IFALLYES(header:sys/mman.h func:mmap func:munmap, AC_DECIDE(MM_SHMT_MMFILE, [Classical mmap() on temporary file]))AC_IFALLYES(header:sys/mman.h func:mmap func:munmap func:shm_open func:shm_unlink, AC_DECIDE(MM_SHMT_MMPOSX, [mmap() via POSIX.1 shm_open() on temporary file]))AC_IFALLYES(header:sys/mman.h func:mmap func:munmap file:/dev/zero, AC_DECIDE(MM_SHMT_MMZERO, [SVR4-style mmap() on /dev/zero]))AC_IFALLYES(header:sys/ipc.h header:sys/shm.h header:sys/file.h dnl func:shmget func:shmat func:shmdt func:shmctl, AC_DECIDE(MM_SHMT_IPCSHM, [SysV IPC shmget()]))AC_IFALLYES(header:sys/mman.h func:mmap func:munmap define:MAP_ANON, AC_DECIDE(MM_SHMT_MMANON, [4.4BSD-style mmap() via MAP_ANON]))AC_IFALLYES(header:kernel/OS.h func:create_area, AC_DECIDE(MM_SHMT_BEOS, [BeOS areas]))case $PLATFORM in *-*-linux* ) # Linux has problems with MM_SHMT_MMANON AC_DECISION_OVERRIDE(MM_SHMT_MMANON MM_SHMT_MMFILE MM_SHMT_MMZERO dnl MM_SHMT_MMPOSX MM_SHMT_IPCSHM) ;;esacAC_ARG_WITH(shm,dnl[ --with-shm=TYPE force shared memory type: MMFILE MMZERO MMPOSX MMANON IPCSHM BEOS],AC_DECISION_FORCE(MM_SHMT_$withval))AC_END_DECISIONAC_DEFINE_UNQUOTED($ac_decision)AC_CHECK_MAXSEGSIZE($ac_decision)dnl #dnl # Mutexdnl #AC_CONFIGURE_PART(Mutual Exclusion Implementation)AC_HAVE_HEADERS(sys/ipc.h sys/sem.h sys/file.h)AC_HAVE_FUNCS(semget semctl)AC_CHECK_DEFINE(LOCK_EX, sys/file.h)AC_CHECK_DEFINE(F_SETLK, fcntl.h)AC_CHECK_DEFINE(IPC_PRIVATE, sys/ipc.h)AC_CHECK_DEFINE(SEM_UNDO, sys/sem.h)AC_HAVE_HEADERS(kernel/OS.h)AC_CHECK_FUNCS(create_sem)AC_MSG_CHECKING(whether union semun is defined in sys/sem.h)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/ipc.h>#include <sys/sem.h>],[union semun arg;semctl(0, 0, 0, arg);],AC_DEFINE(HAVE_UNION_SEMUN)msg=yes,dnlmsg=no)AC_MSG_RESULT([$msg])AC_BEGIN_DECISION([mutex implementation method])AC_IFALLYES(header:sys/file.h define:LOCK_EX, AC_DECIDE(MM_SEMT_FLOCK, [4.2BSD-style flock() on temporary file]))AC_IFALLYES(header:sys/ipc.h header:sys/sem.h header:sys/file.h dnl func:semget func:semctl, AC_DECIDE(MM_SEMT_IPCSEM, [SysV IPC semget()]))AC_IFALLYES(header:fcntl.h define:F_SETLK, AC_DECIDE(MM_SEMT_FCNTL, [SVR4-style fcntl() on temporary file]))AC_IFALLYES(header:kernel/OS.h func:create_sem, AC_DECIDE(MM_SEMT_BEOS, [BeOS semaphores]))AC_ARG_WITH(sem,dnl[ --with-sem=TYPE force semaphore type: FLOCK FCNTL IPCSEM BEOS],AC_DECISION_FORCE(MM_SEMT_$withval))AC_END_DECISIONAC_DEFINE_UNQUOTED($ac_decision)dnl #dnl # finally: source file substitution...dnl #AC_CONFIGURE_PART(Output Substitution)AC_OUTPUT(dnlMakefile dnlmm-config dnl,dnlchmod a+x mm-config)if test ".$enable_batch" != .yes; then echo "" echo "Now please type \`${T_MD}make${T_ME}' to compile. Good luck." echo ""fidnl ##EOF##
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -