dnl##################################################################### dnl# Autoconf m4 macros for LibAST dnl# $Id$ dnl##################################################################### dnl# dnl# Check for LibAST and support components dnl# - arg 1 is the env variable to set dnl# - arg 2 is the LIBS variable to use dnl# AC_DEFUN([AST_CHECK_LIBAST], [ AC_CHECK_PROG(LIBAST_CONFIG, libast-config, libast-config, false) if test "$LIBAST_CONFIG" = "false"; then $1=0 else $1=1 CPPFLAGS="$CPPFLAGS `$LIBAST_CONFIG --cppflags`" LDFLAGS="$LDFLAGS `$LIBAST_CONFIG --ldflags`" fi AC_CHECK_HEADERS(libast.h, [ AC_CHECK_LIB(ast, libast_malloc, $1=1, [ AC_CHECK_LIB(ast, spifmem_malloc, $1=0, ${$2}) ] ], $1=0) if test "${$1}" -ne "1"; then echo "ERROR: You need the LibAST package to build Eterm. If you already have it,"; echo " you may have it installed in a strange place, or you may need to run"; echo " /sbin/ldconfig. If you don't have it, I can download it for you."; echo " Shall I retrieve and build LibAST now (y/n)?"; read ANS if test "x$ANS" = "xy" -o "x$ANS" = "xyes" -o "x$ANS" = "xY" -o "x$ANS" = "xYES"; then # Download from CVS server CVSROOT=":pserver:anonymous@cvs.enlightenment.sourceforge.net:/cvsroot/enlightenment" test -f $HOME/.cvspass || touch $HOME/.cvspass grep $CVSROOT $HOME/.cvspass >/dev/null 2>&1 || cvs -d $CVSROOT login cvs -z3 -d $CVSROOT co -d libast eterm/libast (cd libast && ./autogen.sh $ac_configure_args && make install && cd .. && rm -rf libast) if test $? -ne 0; then echo 'ERROR: Unable to auto-get libast, sorry.' 1>&2 exit 1 fi $1=1 AC_CHECK_PROG(LIBAST_CONFIG, libast-config, libast-config, false) test "$LIBAST_CONFIG" = "false" && $1=0 fi fi if test "${$1}" -eq "1"; then if test ! -z "$LIBAST_CONFIG"; then $2="-last ${$2}" AC_DEFINE(HAVE_LIBAST, 1, [Define if the LibAST library is present.]) test "$prefix" = "NONE" && prefix="`$LIBAST_CONFIG --prefix`" SUPPORT_FLAGS="`$LIBAST_CONFIG --support`" for i in $SUPPORT_FLAGS ; do case $i in MMX) AC_DEFINE(LIBAST_MMX_SUPPORT, 1, [Defined if LibAST has MMX support.]) ;; X11) AC_DEFINE(LIBAST_X11_SUPPORT, 1, [Defined if LibAST has X11 support.]) ;; Imlib2) AC_DEFINE(LIBAST_IMLIB2_SUPPORT, 1, [Defined if LibAST has Imlib2 support.]) ;; esac done fi fi ]) dnl# dnl# LibAST macro for determining integer types by size dnl# AC_DEFUN([AST_SIZE_TYPE], [ BIT_SIZE=[$1] BYTE_SIZE=`expr $BIT_SIZE '/' 8` case $BYTE_SIZE in $ac_cv_sizeof_char) eval INT_${BIT_SIZE}_TYPE=char ;; $ac_cv_sizeof_short) eval INT_${BIT_SIZE}_TYPE=short ;; $ac_cv_sizeof_int) eval INT_${BIT_SIZE}_TYPE=int ;; $ac_cv_sizeof_long) eval INT_${BIT_SIZE}_TYPE=long ;; $ac_cv_sizeof_long_long) eval INT_${BIT_SIZE}_TYPE="'long long'" ;; esac test -z "`eval echo '$'INT_${BIT_SIZE}_TYPE`" && eval INT_${BIT_SIZE}_TYPE=long ]) dnl# dnl# LibAST macro for determining regexp support dnl# - arg 1 is the name of the env var to use dnl# AC_DEFUN([AST_REGEXP_SUPPORT], [ if test "${$1}" != "no"; then if test "${$1}" = "pcre" -o "${$1}" = "yes" ; then GOT_PCRE_HEADER=0 GOT_PCRE_LIB=0 AC_CHECK_HEADERS(pcre.h pcre/pcre.h, [ GOT_PCRE_HEADER=1 break ]) AC_SEARCH_LIBS(pcre_compile, pcre, [GOT_PCRE_LIB=1]) if test $GOT_PCRE_HEADER -eq 1 -a $GOT_PCRE_LIB -eq 1 ; then AC_DEFINE(LIBAST_REGEXP_SUPPORT_PCRE, 1, [Build LibAST with PCRE support.]) LIBAST_REGEXP_SUPPORT="regexp-pcre" $1="pcre" else $1="yes" fi fi if test "${$1}" = "posix" -o "${$1}" = "yes" ; then GOT_POSIXREGEXP_HEADER=0 GOT_POSIXREGEXP_LIB=0 AC_CHECK_HEADERS(regex.h, [ GOT_POSIXREGEXP_HEADER=1 break ]) AC_SEARCH_LIBS(regcomp, posix regexp regex re, [GOT_POSIXREGEXP_LIB=1]) if test $GOT_POSIXREGEXP_HEADER -eq 1 -a $GOT_POSIXREGEXP_LIB -eq 1 ; then AC_DEFINE(LIBAST_REGEXP_SUPPORT_POSIX, 1, [Build LibAST with POSIX-style regexp support.]) LIBAST_REGEXP_SUPPORT="regexp-posix" $1="posix" else $1="yes" fi fi if test "${$1}" = "bsd" -o "${$1}" = "yes" ; then GOT_BSD_HEADER=0 GOT_BSD_LIB=0 AC_CHECK_HEADERS(regex.h, [ GOT_BSD_HEADER=1 break ]) AC_SEARCH_LIBS(re_comp, bsd ucb regexp regex re, [GOT_BSD_LIB=1]) if test $GOT_BSD_HEADER -eq 1 -a $GOT_BSD_LIB -eq 1 ; then AC_DEFINE(LIBAST_REGEXP_SUPPORT_BSD, 1, [Build LibAST with BSD-style regexp support.]) LIBAST_REGEXP_SUPPORT="regexp-bsd" $1="bsd" else $1="yes" fi fi if test "${$1}" = "yes" ; then LIBAST_REGEXP_SUPPORT="" $1="no" fi else LIBAST_REGEXP_SUPPORT="" $1="no" fi AC_SUBST(LIBAST_REGEXP_SUPPORT) ]) dnl# dnl# LibAST macro for X11 support dnl# AC_DEFUN([AST_X11_SUPPORT], [ AC_PATH_XTRA if test ! -z "$X_CFLAGS"; then if test -z "$CPPFLAGS"; then CPPFLAGS="$X_CFLAGS" else CPPFLAGS="$CPPFLAGS $X_CFLAGS" fi fi if test ! -z "$X_LIBS"; then if test -z "$LDFLAGS"; then LDFLAGS="$X_LIBS" else LDFLAGS="$LDFLAGS $X_LIBS" fi fi LIBAST_X11_SUPPORT="" if test "x$no_x" != "xyes"; then AC_CHECK_LIB(X11, XOpenDisplay, [ LIBAST_X11_SUPPORT="X11" GRLIBS="-lX11" AC_DEFINE(LIBAST_X11_SUPPORT, 1, [Define for X11 support.]) ]) fi AC_SUBST(LIBAST_X11_SUPPORT) ]) dnl# dnl# LibAST macro for Imlib2 support dnl# AC_DEFUN([AST_IMLIB2_SUPPORT], [ AC_ARG_WITH(imlib, [ --with-imlib[=DIR] compile with Imlib2 support (default)], [ if test "$withval" != "no"; then if test "$withval" != "yes"; then CPPFLAGS="$CPPFLAGS -I${withval}/include" LDFLAGS="$LDFLAGS -L${withval}/lib" fi USE_IMLIB=1 else USE_IMLIB=0 fi ], [ USE_IMLIB=1 ]) LIBAST_IMLIB2_SUPPORT="" if test $USE_IMLIB -eq 1 ; then AC_CHECK_PROG(IMLIB2_CONFIG, imlib2-config, imlib2-config) if test "x$IMLIB2_CONFIG" != "x"; then GRLIBS="`$IMLIB2_CONFIG --libs`" CFLAGS="$CFLAGS `$IMLIB2_CONFIG --cflags`" else AC_CHECK_LIB(m, pow, LIBS="-lm $LIBS") AC_CHECK_LIB(dl, dlopen, LIBS="-ldl $LIBS") AC_CHECK_LIB(freetype, FT_Init_FreeType, GRLIBS="-lfreetype $GRLIBS", , $GRLIBS) AC_CHECK_LIB(Imlib2, imlib_create_image, [ GRLIBS="-lImlib2 $GRLIBS" AC_DEFINE(LIBAST_IMLIB2_SUPPORT, 1, [Define for Imlib2 support.]) LIBAST_IMLIB2_SUPPORT="Imlib2" ], [ AC_WARN(*** Imlib2 support has been disabled because Imlib2 ***) AC_WARN(*** was not found or could not be linked. ***) ], $GRLIBS) fi fi AC_SUBST(LIBAST_IMLIB2_SUPPORT) ]) dnl# dnl# LibAST macro for MMX support dnl# AC_DEFUN([AST_MMX_SUPPORT], [ AC_MSG_CHECKING(for MMX support) HAVE_MMX="" AC_ARG_ENABLE(mmx, [ --enable-mmx enable MMX assembly routines], [ test x$enableval = xyes && HAVE_MMX="yes" ], [ if test x$build_os = xlinux-gnu; then grep mmx /proc/cpuinfo >/dev/null 2>&1 && HAVE_MMX="yes" fi ]) LIBAST_MMX_SUPPORT="" if test -n "$HAVE_MMX"; then AC_MSG_RESULT(yes) AC_DEFINE(LIBAST_MMX_SUPPORT, 1, [Define for MMX support.]) LIBAST_MMX_SUPPORT="MMX" else AC_MSG_RESULT(no) fi AC_SUBST(LIBAST_MMX_SUPPORT) ]) dnl# dnl# LibAST macros for standard checks dnl# AC_DEFUN([AST_STD_CHECKS], [ AC_PROG_CPP dnl# These must be run after AC_PROG_CC but before any other macros that use dnl# the C compiler AC_AIX AC_ISC_POSIX AC_MINIX dnl# At least make the attempt to support CygWin32 AC_CYGWIN AC_ARG_PROGRAM AM_PROG_LIBTOOL AC_GCC_TRADITIONAL AC_PROG_INSTALL ASFLAGS="$ASFLAGS -I../" AS=$CC AC_SUBST(ASFLAGS) AC_SUBST(AS) dnl# Check for host system type AC_CANONICAL_HOST dnl# Check the sanity of what we've done so far AM_SANITY_CHECK dnl# Most people don't want the developer-only clutter AM_MAINTAINER_MODE dnl# If it's there, what the hell? AM_WITH_DMALLOC ]) AC_DEFUN([AST_PROG_CHECKS], [ AC_CHECK_PROG(SED, sed, sed, false) AC_CHECK_PROG(RM, rm, rm, true) AC_CHECK_PROG(CP, cp, cp, false) AC_CHECK_PROG(CHMOD, chmod, chmod, true) AC_CHECK_PROG(TAR, tar, tar, tar) AC_CHECK_PROG(MKDIR, mkdir, mkdir, false) AC_CHECK_PROG(CTAGS, ctags, ctags, true) AC_CHECK_PROG(AR, ar, ar, false) AC_CHECK_PROG(MV, mv, mv, true) AC_LN_S ]) AC_DEFUN([AST_VAR_CHECKS], [ AC_CHECK_SIZEOF(char, 1) AC_CHECK_SIZEOF(short, 2) AC_CHECK_SIZEOF(int, 4) AC_CHECK_SIZEOF(long, 4) AC_CHECK_SIZEOF(long long, 8) AC_C_BIGENDIAN AST_SIZE_TYPE(8) AC_SUBST(INT_8_TYPE) AST_SIZE_TYPE(16) AC_SUBST(INT_16_TYPE) AST_SIZE_TYPE(32) AC_SUBST(INT_32_TYPE) AST_SIZE_TYPE(64) AC_SUBST(INT_64_TYPE) AC_C_CONST AC_C_INLINE ]) AC_DEFUN([AST_HEADER_CHECKS], [ AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(fcntl.h termios.h sys/ioctl.h sys/select.h sys/time.h \ sys/sockio.h sys/byteorder.h malloc.h utmpx.h unistd.h \ bsd/signal.h stdarg.h errno.h) AC_HEADER_TIME ]) AC_DEFUN([AST_FUNC_CHECKS], [ AC_TYPE_SIGNAL AC_CHECK_FUNCS(memmove putenv strsep memmem usleep snprintf vsnprintf \ strcasestr strcasechr strcasepbrk strrev strnlen) AC_SEARCH_LIBS(hstrerror, resolv) dps_snprintf_oflow() dps_vsnprintf_oflow() dps_symlink_open_bug() dps_rlimit_nproc() dps_rlimit_memlock() ]) AC_DEFUN([AST_TYPE_CHECKS], [ AC_TYPE_MODE_T AC_CHECK_TYPE(off_t, long) AC_TYPE_PID_T AC_TYPE_UID_T ]) dnl# dnl# LibAST argument macros dnl# - arg 1 is the name of the env var to use dnl# AC_DEFUN([AST_ARG_DEBUG], [ AC_MSG_CHECKING(for debugging level) AC_ARG_WITH(debugging, [ --with-debugging[=num] compile in debugging support. num >= 0], [ if test "$withval" = "yes"; then withval=4 fi if test "$withval" != "no"; then AC_MSG_RESULT($withval) AC_DEFINE_UNQUOTED($1, $withval, [Specify level of debugging to compile in.]) $1=$withval else AC_MSG_RESULT(no, disabling all debugging support) AC_DEFINE_UNQUOTED($1, 0, [Specify level of debugging to compile in.]) $1=0 fi ], [ AC_MSG_RESULT(4) AC_DEFINE_UNQUOTED($1, 4, [Specify level of debugging to compile in.]) $1=4 ]) ]) AC_DEFUN([AST_ARG_REGEXP], [ AC_ARG_WITH(regexp, [ --with-regexp[=TYPE] specify the type of regular expression support (bsd, posix, pcre)], [$1=$withval], [$1=yes]) AST_REGEXP_SUPPORT($1) AC_MSG_CHECKING(for regular expression support) AC_MSG_RESULT(${$1}) ]) AC_DEFUN([AST_ARG_BACKQUOTE_EXEC], [ AC_MSG_CHECKING(if backquote execution support should be enabled) AC_ARG_WITH(backquote-exec, [ --without-backquote-exec disables the execution of commands from inside config files], [ if test "$withval" = "no"; then AC_MSG_RESULT(no) $1=no else AC_MSG_RESULT(yes) AC_DEFINE($1, 1, [Define for backquote execution.]) $1=yes fi ], [ AC_MSG_RESULT(yes) AC_DEFINE($1, 1, [Define for backquote execution.]) $1=yes ]) ]) dnl# dnl# LibAST macro for flag post-processing dnl# AC_DEFUN([AST_FLAGS], [ CPPFLAGS=`eval eval eval eval eval echo "-I$includedir -I$prefix/include $CPPFLAGS"` CPPFLAGS=`echo $CPPFLAGS | tr ' ' '\n' | uniq | grep -v NONE | tr '\n' ' '` CFLAGS=${CFLAGS--O} LDFLAGS=`eval eval eval eval eval echo "-L$libdir -L$prefix/lib ${LDFLAGS--O}"` LDFLAGS=`echo $LDFLAGS | tr ' ' '\n' | uniq | grep -v NONE | tr '\n' ' '` LIBS="$GRLIBS $X_PRE_LIBS $LIBS $X_EXTRA_LIBS" ]) dnl# dnl# LibAST macro for final status report dnl# AC_DEFUN([AST_STATUS], [ echo "" echo "$PACKAGE $VERSION" echo "Configuration:" echo "--------------" echo "" echo " Source code location: $srcdir" echo " Host System Type: $host" echo " Preprocessor: $CC $CPPFLAGS" echo " Compiler: $CC $CFLAGS" echo " Linker: $CC $LDFLAGS $LIBS" echo " Install path: $prefix" echo "" echo "Now type 'make' to build $PACKAGE $VERSION." echo "" ]) dnl########################################################################### dnl# dnl# acl.m4 -- Written by Duncan Simpson dnl# Posted to BUGTRAQ on 17 June 1999 dnl# Used by encouragement. :-) dnl# dnl Check snprintf for overrun potential AC_DEFUN([dps_snprintf_oflow], [ AC_MSG_CHECKING(whether snprintf ignores n) AC_CACHE_VAL(dps_cv_snprintf_bug, [ AC_TRY_RUN( changequote(<<, >>)dnl <<#include #ifndef HAVE_SNPRINTF #include "src/snprintf.c" #endif /* HAVE_SNPRINTF */ int main(void) { char ovbuf[7]; int i; for (i=0; i<7; i++) ovbuf[i]='x'; snprintf(ovbuf, 4,"foo%s", "bar"); if (ovbuf[5]!='x') exit(1); snprintf(ovbuf, 4,"foo%d", 666); if (ovbuf[5]!='x') exit(1); exit(0); } >> changequote([, ]) , dps_cv_snprintf_bug=0, dps_cv_snprintf_bug=1, dps_cv_snprintf_bug=2) ]) if test $dps_cv_snprintf_bug -eq 0; then AC_MSG_RESULT([no, snprintf is ok]) elif test $dps_cv_snprint_bug -eq 1; then AC_MSG_RESULT([yes, snprintf is broken]) AC_DEFINE(HAVE_SNPRINTF_BUG, 1, [Defined if libc snprintf is buggy.]) else AC_MSG_RESULT([unknown, assuming yes]) AC_DEFINE(HAVE_SNPRINTF_BUG, 1, [Defined if libc snprintf is buggy.]) fi ]) dnl Check vsnprintf for overrun potential AC_DEFUN([dps_vsnprintf_oflow], [ AC_MSG_CHECKING(whether vsnprintf ignores n) AC_CACHE_VAL(dps_cv_vsnprintf_bug, [ AC_TRY_RUN( changequote(<<, >>)dnl <<#include #include #ifndef HAVE_VSNPRINTF #include "src/snprintf.c" #endif /* HAVE_VSNPRINTF */ int prnt(char *s, const char *fmt, ...) { va_list argp; va_start(argp, fmt); vsnprintf(s, 4, fmt, argp); va_end(argp); } int main(void) { char ovbuf[8] = "xxxxxxx"; int i; prnt(ovbuf, "foo%s", "bar"); if (ovbuf[5]!='x') {fprintf(stderr, "buffer: %s\n", ovbuf); exit(1);} prnt(ovbuf, "foo%d", 666); if (ovbuf[5]!='x') {fprintf(stderr, "buffer: %s\n", ovbuf); exit(1);} exit(0); } >> changequote([, ]) , dps_cv_vsnprintf_bug=0, dps_cv_vsnprintf_bug=1, dps_cv_vsnprintf_bug=2) ]) if test $dps_cv_vsnprintf_bug -eq 0; then AC_MSG_RESULT([no, vsnprintf is ok]) elif test $dps_cv_vsnprintf_bug -eq 1; then AC_MSG_RESULT([yes, vsnprintf is broken]) AC_DEFINE(HAVE_VSNPRINTF_BUG,1, [Defined if libc vsnprintf is buggy.]) else AC_MSG_RESULT([unknown, assuming yes]) AC_DEFINE(HAVE_VSNPRINTF_BUG,1, [Defined if libc vsnprintf is buggy.]) fi ]) dnl open and symlink interaction bug test AC_DEFUN([dps_symlink_open_bug], [ AC_MSG_CHECKING(security of interaction between symlink and open) AC_CACHE_VAL(dps_cv_symlink_open_bug, [ mkdir conftest.d AC_TRY_RUN( changequote(<<, >>)dnl <<#include #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_SYS_TYPES_H #include #endif #ifdef HAVE_SYS_STAT_H #include #endif #ifdef HAVE_FCNTL_H #include #endif #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_ERRNO_H #include #else extern int errno; #endif int main(void) { int fd; if (chdir("conftest.d")!=0) exit(1); if (symlink("foo","bar")!=0) exit(1); if ((fd=open("bar", O_CREAT | O_EXCL | O_WRONLY, 0700))==0) { write(fd, "If the symlink was to .rhosts you would be unhappy", 50); close(fd); exit(1); } if (errno!=EEXIST) exit(1); exit(0); } >> changequote([, ]) , dps_cv_symlink_open_bug=0, [ if test -r conftest.d/foo; then dps_cv_symlink_open_bug=2 else dps_cv_symlink_open_bug=1 fi ], dps_cv_symlink_open_buf=3) rm -rf conftest.d ]) case "$dps_cv_symlink_open_bug" in 0) AC_MSG_RESULT(secure) ;; 1) AC_MSG_RESULT(errno wrong but ok) AC_DEFINE(HAVE_SYMLINK_OPEN_ERRNO_BUG, 1, [Defined if symlink open() errno is wrong but safe.]) ;; 2) AC_MSG_RESULT(insecure) AC_DEFINE(HAVE_SYMLINK_OPEN_SECURITY_HOLE, 1, [Defined if symlink open() is a security risk.]) AC_DEFINE(HAVE_SYMLINK_OPEN_ERRNO_BUG, 1, [Defined if symlink open() is buggy.]) ;; 3) AC_MSG_RESULT(assuming insecure) AC_DEFINE(HAVE_SYMLINK_OPEN_SECURITY_HOLE, 1, [Defined if symlink open() is a security risk.]) AC_DEFINE(HAVE_SYMLINK_OPEN_ERRNO_BUG, 1, [Defined if symlink open() is buggy.]) ;; *) AC_MSG_RESULT($dps_cv_symlink_open_bug) AC_MSG_ERROR(Impossible value of dps_cv_symlink_open_bug) ;; esac ]) dnl Check to RLIMIT_NPROC resource limit AC_DEFUN([dps_rlimit_nproc], [ AC_MSG_CHECKING(for working RLIMIT_NPROC resource limit) AC_CACHE_VAL(dps_cv_rlimit_nproc, [ AC_TRY_RUN( changequote(<<, >>)dnl << #ifndef HAVE_STDLIB_H #include #endif /* HAVE_STDLIB_H */ #ifndef HAVE_SIGNAL_H #include #endif /* HAVE_SIGNAL_H */ #ifdef HAVE_UNISTD_H #include #endif /* HAVE_UNISTD_H */ #ifdef HAVE_SYS_RESOURCE_H #include #endif /* HAVE_SYS_RESOURCE_H */ int main(void) { #ifdef RLIMIT_NPROC static const struct rlimit pid_lim={RLIMIT_NPROC, 1}; pid_t f; signal(SIGCHLD, SIG_IGN); setrlimit(RLIMIT_NPROC, (struct rlimit *) &pid_lim); if ((f=fork())==0) exit(0); if (f==-1) exit(0); /* The fork() failed (the right thing) */ #endif exit(1); } >> changequote([, ]) , dps_cv_rlimit_nproc=0, dps_cv_rlimit_nproc=1, dps_cv_rlimit_nproc=2) ]) if test $dps_cv_rlimit_nproc -eq 0; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_RLIMIT_NPROC, 1, [Defined if the RLIMIT_NPROC resource limit works.]) elif test $dps_cv_rlimit_nproc -eq 1; then AC_MSG_RESULT([no]) else AC_MSG_RESULT([unknown, assuming none]) fi ]) dnl Check to RLIMIT_MEMLOCK resource limit AC_DEFUN([dps_rlimit_memlock], [ AC_MSG_CHECKING(for working RLIMIT_MEMLOCK resource limit) AC_CACHE_VAL(dps_cv_rlimit_memlock, [ AC_TRY_RUN( changequote(<<, >>)dnl << #ifndef HAVE_STDLIB_H #include #endif /* HAVE_STDLIB_H */ #ifndef HAVE_SIGNAL_H #include #endif /* HAVE_SIGNAL_H */ #ifdef HAVE_UNISTD_H #include #endif /* HAVE_UNISTD_H */ #ifdef HAVE_SYS_RESOURCE_H #include #endif /* HAVE_SYS_RESOURCE_H */ #ifdef HAVE_SYS_MMAN #include #endif /* HAVE_SYS_MMAN */ #ifdef HAVE_ERRNO_H #include #endif /* HAVE_ERRNO_H */ int main(void) { #ifdef RLIMIT_MEMLOCK static const struct rlimit mlock_lim={RLIMIT_MEMLOCK, 0}; void *memory; if (setrlimit(RLIMIT_MEMLOCK, (struct rlimit *) &mlock_lim)!=-1) exit(0); #endif exit(1); } >> changequote([, ]) , dps_cv_rlimit_memlock=0, dps_cv_rlimit_memlock=1, dps_cv_rlimit_memlock=2) ]) if test $dps_cv_rlimit_memlock -eq 0; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_RLIMIT_MEMLOCK,1, [Defined if the RLIMIT_MEMLOCK resource limit works.]) elif test $dps_cv_rlimit_memlock -eq 1; then AC_MSG_RESULT([no]) else AC_MSG_RESULT([unknown, assuming none]) fi ])