blob: d189684e8bbe1bb7aa5a389faa86072125a89a31 [file] [log] [blame] [raw]
# Copyright (C) 2000-2009, Parallels, Inc. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Generic configuration
AC_PREREQ(2.59)
AC_INIT(vzctl, 3.1, devel@openvz.org)
AC_CONFIG_SRCDIR([src/vzctl.c])
# Change sysconfdir default since otherwise some important files
# (an initscript, files for logrotate, and udev) will be installed
# to some nonsence/non-working place like under /usr/local/etc/
#
# NOTE: this changes expected configure behavior: if you specify --prefix
# it will not change sysconfdir, instead now one have to specify
# --sysconfdir explicitly. To make it more clear we print
# current sysconfdir value at the end of configure run.
#
# FIXME: dirty hack, may not work with some autoconf versions.
test $sysconfdir = '${prefix}/etc' && sysconfdir=/etc
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
# Automake
AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2])
# Enable silent build rules by default, requires at least
# Automake-1.11. Disable by either passing --disable-silent-rules to
# configure or passing V=1 to make
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
# Disable build of static libraries by default.
AC_DISABLE_STATIC
# Checks for programs.
m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_USE_SYSTEM_EXTENSIONS])
AC_PROG_CC
AC_PROG_LIBTOOL
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
# Compiler settings
CFLAGS="${CFLAGS} -Wall -Wpointer-arith -Wcast-qual -Winline -Wextra"
CFLAGS="${CFLAGS} -Wcast-align -Wno-unused-parameter"
CFLAGS="${CFLAGS} -Wno-missing-field-initializers"
CFLAGS="${CFLAGS} -D_FILE_OFFSET_BITS=64"
if test x$build_cpu = xppc64 -o x$build_cpu = xpowerpc64; then
CFLAGS="${CFLAGS} -m64"
fi
# Checks for libraries.
AC_CHECK_LIB(dl, dlopen,
DL_LIBS="-ldl", AC_MSG_ERROR([libdl not found]),)
AC_SUBST(DL_LIBS)
AC_CHECK_LIB(util, openpty,
UTIL_LIBS="-lutil", AC_MSG_ERROR([libutil not found]),)
AC_SUBST(UTIL_LIBS)
AC_CHECK_LIB(ploop, ploop_mount_image,
PLOOP_LIBS="-lploop", AC_MSG_ERROR([ploop lib not found]),)
AC_SUBST(PLOOP_LIBS)
AM_PATH_XML2(2.6.16)
# Checks for header files.
AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h netdb.h netinet/in.h \
sys/file.h sys/ioctl.h sys/mount.h sys/param.h sys/socket.h \
sys/vfs.h termios.h],,
AC_MSG_ERROR([some needed header(s) not found]))
#AC_HEADER_MAJOR
# Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
AC_CHECK_MEMBERS([struct stat.st_rdev],,
AC_MSG_ERROR([no st_rdev member in struct stat]))
AC_TYPE_SIZE_T
AC_TYPE_UID_T
m4_ifdef([AC_TYPE_UINT16_T], [AC_TYPE_UINT16_T])
m4_ifdef([AC_TYPE_UINT32_T], [AC_TYPE_UINT32_T])
m4_ifdef([AC_TYPE_UINT8_T], [AC_TYPE_UINT8_T])
# Checks for library functions.
AC_FUNC_ALLOCA
AC_FUNC_FORK
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
AC_FUNC_MALLOC
AC_FUNC_REALLOC
AC_FUNC_STRNLEN
AC_CHECK_FUNCS([alarm bzero dup2 endgrent endpwent memset mkdir mkfifo \
realpath rmdir select socket strcasecmp strchr strdup strerror \
strrchr strstr strtol strtoul strtoull uname],,
AC_MSG_ERROR([some needed function(s) not found]))
AC_ARG_ENABLE([bashcomp],
[AS_HELP_STRING([--enable-bashcomp],
[Enable bashcompletion support])],
[case "${enableval}" in
yes) enable_bashcomp="+bashcomp";;
no) enable_bashcomp="-bashcomp";;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-bashcomp);;
esac],
[enable_bashcomp="-bashcomp"])
AM_CONDITIONAL(ENABLE_BASHCOMP, test "x$enable_bashcomp" = "x+bashcomp")
AC_ARG_ENABLE([logrotate],
[AS_HELP_STRING([--enable-logrotate],
[Enable logrotate support])],
[case "${enableval}" in
yes) enable_logrotate="+logrotate";;
no) enable_logrotate="-logrotate";;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-logrotate);;
esac],
[enable_logrotate="-logrotate"])
AM_CONDITIONAL(ENABLE_LOGROTATE, test "x$enable_logrotate" = "x+logrotate")
AC_ARG_ENABLE([udev],
[AS_HELP_STRING([--disable-udev],
[Disable udev support])],
[case "${enableval}" in
yes) enable_udev="+udev";;
no) enable_udev="-udev";;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-udev);;
esac],
[enable_udev="+udev"])
AM_CONDITIONAL(ENABLE_UDEV, test "x$enable_udev" = "x+udev")
# Final info page
AC_CONFIG_COMMANDS_PRE([SUMMARY="$PACKAGE_STRING configured successfully:
CC: $CC ($($CC --version | head -n1))
CFLAGS: '$CFLAGS'
build: $build
host: $host
target: $target
prefix: $prefix
sysconfdir: $sysconfdir
features: $enable_bashcomp $enable_logrotate $enable_udev
"])
# Output
AC_CONFIG_FILES([bin/Makefile
etc/bash_completion.d/Makefile
etc/conf/Makefile
etc/dists/Makefile
etc/init.d/Makefile
etc/logrotate.d/Makefile
etc/network/if-up.d/Makefile
etc/network-scripts/Makefile
etc/udev/Makefile
etc/Makefile
include/version.h
man/Makefile
scripts/Makefile
src/lib/Makefile
src/Makefile
Makefile])
AC_OUTPUT
AC_MSG_NOTICE([$SUMMARY])