dnl dnl Custom autoconf macros for vserver. dnl dnl $Id: aclocal.m4,v 1.12 2006/08/23 16:31:17 mickey Exp $ dnl ========================================================================== dnl dnl AC_VCHAT_DEPEND_CHECK dnl AC_DEFUN(AC_VCHAT_DEPEND_CHECK, [ AC_MSG_CHECKING(how to retrieve source dependencies) # Try the dependency generator tools in order of preference. DEPOUT="> .depend" if test ! -z "$MKDEP"; then DEPOUT="" elif test "$ac_cv_c_compiler_gnu" = yes; then MKDEP="$CC -MM" elif test "$SunWorkShop" = yes; then MKDEP="$CC -xM" elif test ! -z "$MAKEDEPEND"; then MKDEP="$MAKEDEPEND -f-" fi # Show the result of our test. if test ! -z "$MKDEP"; then AC_MSG_RESULT($MKDEP ... $DEPOUT) else AC_MSG_RESULT([indeterminate - please check manually]) MKDEP=":" fi AC_SUBST(MKDEP) AC_SUBST(DEPOUT) ]) dnl dnl AC_VCHAT_CFLAGS_CHECK dnl AC_DEFUN(AC_VCHAT_CFLAGS_CHECK, [ AC_MSG_CHECKING(for predefined CFLAGS) # When CFLAGS are already set, don't touch them. cfset=${CFLAGS+set} if test "$cfset" != set; then # CFLAGS are not set. Try to get make's idea of global CFLAGS. # This will only work with pmake, not with gmake. mkcf=`make -V CFLAGS 2>/dev/null` if test $? -eq 0 -a ! -z "${mkcf}"; then # Use global make CFLAGS. CFLAGS=${mkcf} AC_MSG_RESULT('${CFLAGS}' (make global)) else AC_MSG_RESULT(none) fi else AC_MSG_RESULT('${CFLAGS}' (environment)) fi ]) dnl dnl AC_VCHAT_GCC_WALL_CHECK dnl AC_DEFUN(AC_VCHAT_GCC_WALL_CHECK, [ # When running gcc, add "-Wall" to CFLAGS. AC_MSG_CHECKING(whether to add '-Wall' to CFLAGS) if test "$ac_cv_c_compiler_gnu" = yes; then CFLAGS="-Wall $CFLAGS" AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi ]) dnl dnl AC_VCHAT_OSTYPE_CHECK dnl AC_DEFUN(AC_VCHAT_OSTYPE_CHECK, [ AC_MSG_CHECKING(for appropriate OS_TYPE string) if test ! -z "$UNAME"; then ostype=`($UNAME -s) 2>/dev/null` || ostype="unknown" osvers=`($UNAME -r) 2>/dev/null` || osvers="unknown" else ostype="unknown" osvers="unknown" fi case "${ostype}" in unknown) OSTP="????" ;; FreeBSD) OSTP="FBSD" ;; OpenBSD) OSTP="OBSD" ;; NetBSD) OSTP="NBSD" ;; BSD/386|BSD/OS) OSTP="BSDI" ;; Linux) OSTP="LINU" ;; IRIX*) OSTP="IRIX" ;; AIX) OSTP="AIX-" ;; SunOS) OSTP="SUNO" ;; HP-UX) OSTP="HPUX" ;; ULTRIX*) OSTP="ULTX" ;; OSF1) OSTP="OSF1" ;; OpenVMS) OSTP="OVMS" ;; ConvexOS) OSTP="COVX" ;; CYGWIN) OSTP="CYGW" ;; MINGW32_NT-4.0) OSTP="WNT4" osvers="0" ;; MINGW32_NT-5.0) OSTP="WNT5" osvers="0" ;; MINGW32_NT-6.0) OSTP="WNT6" osvers="0" ;; MINGW) OSTP="MIGW" ;; LynxOS) OSTP="LYNX" ;; SINIX-*) OSTP="SNIX" ;; A/UX) OSTP="A/UX" ;; BeOS) OSTP="BeOS" ;; SUPER-UX) OSTP="SUUX" ;; QNX) OSTP="QNX-" ;; POSIX*) OSTP="PSIX" ;; TENEX) OSTP="TNEX" ;; NEXT|NeXT) OSTP="NEXT" ;; Windows_95|Windows_98|Windows_NT) OSTP="W32-" ;; *[dD][aA][rR][wW][iI][nN]*) OSTP="DRWN" ;; *[bB][sS][dD]*) OSTP="?BSD" ;; *) OSTP="`echo ${ostype} | head -c 5`" ;; esac case ${osvers} in unknown) OSVS="?" ;; *) OSVS="`echo ${osvers} | head -c 1`" ;; esac OSTP="${OSTP}${OSVS}" AC_MSG_RESULT($OSTP) AC_DEFINE_UNQUOTED(OS_TYPE, "${OSTP}",The appropriate operating system type string.) ]) dnl dnl AC_VCHAT_UXDOMAIN_CHECK dnl AC_DEFUN(AC_VCHAT_UXDOMAIN_CHECK, [ AC_CACHE_CHECK(wheter unix domain sockets are supported, ac_cv_uxdomain, [AC_COMPILE_IFELSE([AC_LANG_SOURCE( [[/* check for struct sockaddr_un */ #include #if HAVE_STDLIB_H #include #endif #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_SOCKET_H #include #endif #if HAVE_SYS_UN_H #include #endif int main(int argc, char *argv[]) { struct sockaddr_un harbl; return 0; }]])], [ac_cv_uxdomain=yes uxsock=1], [ac_cv_uxdomain=no uxsock=0])]) if test "$ac_cv_uxdomain" = "yes"; then vsprogs="vserver vchatctl" AC_CHECK_MEMBERS([struct sockaddr_un.sun_family, struct sockaddr_un.sun_path, struct sockaddr_un.sun_len],,,[ #if HAVE_STDLIB_H #include #endif #if HAVE_SYS_TYPES_H #include #endif #if HAVE_SYS_SOCKET_H #include #endif #if HAVE_SYS_UN_H #include #endif ]) else vsprogs="vserver" fi AC_DEFINE_UNQUOTED(HAVE_UNIX_SOCKETS, $uxsock, Wheter the system supports unix domain sockets) AC_SUBST(vsprogs) ]) AC_DEFUN([AC_DEFINE_DIR], [ prefix_NONE= exec_prefix_NONE= test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix dnl In Autoconf 2.60, ${datadir} refers to ${datarootdir}, which in turn dnl refers to ${prefix}. Thus we have to use `eval' twice. eval ac_define_dir="\"[$]$2\"" eval ac_define_dir="\"$ac_define_dir\"" AC_SUBST($1, "$ac_define_dir") AC_DEFINE_UNQUOTED($1, "$ac_define_dir", [$3]) test "$prefix_NONE" && prefix=NONE test "$exec_prefix_NONE" && exec_prefix=NONE ]) AC_DEFUN([AC_VCHAT_BASEDIR_CHECK], [ default_basedir="${sysconfdir}/vchat/" AC_DEFINE_DIR([DEFAULT_BASEDIR], [default_basedir], [The default vserver base directory.]) ]) dnl dnl AC_VCHAT_READLINE_CHECK dnl AC_DEFUN([AC_VCHAT_READLINE_CHECK], [ READLINE_LIBS="" lrl=0 AC_SUBST(READLINE_LIBS) AC_CHECK_LIB(readline, readline, [ AC_CHECK_HEADERS([readline.h readline/readline.h], [ READLINE_LIBS="-lreadline" lrl=1 ]) ]) AC_DEFINE_UNQUOTED(HAVE_LIB_READLINE, $lrl, Whether the GNU readline library is installed.) ])