added vrsetup
[util-vserver.git] / util-vserver / configure.ac
1 dnl $Id$
2
3 dnl Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
4 dnl  
5 dnl This program is free software; you can redistribute it and/or modify
6 dnl it under the terms of the GNU General Public License as published by
7 dnl the Free Software Foundation; either version 2, or (at your option)
8 dnl any later version.
9 dnl  
10 dnl This program is distributed in the hope that it will be useful,
11 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
12 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 dnl GNU General Public License for more details.
14 dnl  
15 dnl You should have received a copy of the GNU General Public License
16 dnl along with this program; if not, write to the Free Software
17 dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 dnl  
19 dnl  
20 dnl As a special exception to the GNU General Public License, if you
21 dnl distribute this file as part of a program that contains a configuration
22 dnl script generated by Autoconf, you may include it under the same
23 dnl distribution terms that you use for the rest of that program.
24 dnl  
25
26 AC_PREREQ(2.57)
27 AC_INIT(util-vserver, 0.27.199, enrico.scholz@informatik.tu-chemnitz.de)
28 AC_CONFIG_SRCDIR([src/capchroot.c])
29 AC_CONFIG_HEADER([config.h])
30
31 AM_INIT_AUTOMAKE([gnits dist-bzip2 subdir-objects])
32 AM_MAINTAINER_MODE
33
34 # Checks for programs.
35 AC_PROG_CXX
36 AC_PROG_CC
37 AC_PROG_INSTALL
38 AC_PROG_LN_S
39 dnl AC_PROG_RANLIB
40 AC_PROG_LIBTOOL
41 AM_PROG_CC_C_O
42 ENSC_CXXCOMPILER
43
44 check_paths=$PATH:/sbin:/usr/sbin:/usr/local/sbin
45 AC_PATH_PROGS(AWK,     [awk],     [awk],         [ $check_paths ])
46 AC_PATH_PROGS(GREP,    [grep],    [grep],        [ $check_paths ])
47 AC_PATH_PROGS(IP,      [ip],      [ip],          [ $check_paths ])
48 AC_PATH_PROGS(MOUNT,   [mount],   [/bin/mount],  [ $check_paths ])
49 AC_PATH_PROGS(UMOUNT,  [umount],  [/bin/umount], [ $check_paths ])
50 AC_PATH_PROGS(NICE,    [nice],    [nice],        [ $check_paths ])
51 AC_PATH_PROGS(VCONFIG, [vconfig], [vconfig],     [ $check_paths ])
52 AC_PATH_PROGS(WC,      [wc],      [wc],          [ $check_paths ])
53 AC_PATH_PROGS(PS,      [ps],      [/bin/ps],     [ $check_paths ])
54 AC_PATH_PROGS(XSLTPROC, [xsltproc], [xsltproc],  [ $check_paths ])
55
56
57 ENSC_CHECK_CC_FLAG([-std=c99 -Wall -pedantic -W])
58 ENSC_CHECK_CXX_FLAG([-ansi   -Wall -pedantic -W -fmessage-length=0])
59
60 ENSC_FPIC_SYSCALL
61
62
63 AC_MSG_CHECKING([whether to enable debug-code in library])
64 AC_ARG_ENABLE([lib-debug],
65               [AC_HELP_STRING([--enable-lib-debug],
66                               [enable additional debug code in library (default: no)])],
67               [case "$enableval" in
68                   yes)  use_lib_debug=1;;
69                   no)   use_lib_debug=;;
70                   *)    AC_MSG_ERROR(['$enableval' is not a valid value for '--enable-lib-debug']);;
71                esac],
72               [ use_lib_debug= ])
73
74 if test x"$use_lib_debug" = x; then
75         AC_SUBST(LIB_DEBUG_CPPFLAGS, [-DNDEBUG])
76         AC_MSG_RESULT(no)
77 else
78         AC_SUBST(LIB_DEBUG_CPPFLAGS, [])
79         AC_MSG_RESULT(yes)
80 fi
81
82 AC_ARG_VAR(CC, [The C compiler])
83
84 ENSC_INITRDDIR(initrddir)
85 ENSC_RELEASE(RELEASE_CPPFLAGS)
86 ENSC_ENABLE_DIETLIBC(USE_DIETLIBC)
87 ENSC_KERNEL_HEADERS(kernelincludedir)
88 ENSC_UV_VROOTDIR(vserverdir)
89 ENSC_CHANGELOG([trunk])
90
91 dnl Check whether to use external kernel headers
92 AC_MSG_CHECKING([whether to use internal kernel headers])
93 AC_ARG_ENABLE([internal-headers],
94               [AC_HELP_STRING([--disable-internal-headers],
95                               [use vserver specific headers from the kernel instead of the shipped versions (default: no)])],
96               [case "$enableval" in
97                   yes|no) ;;
98                   *)      AC_MSG_ERROR(['$i' is not a supported value for '--disable-internal-headers']);;
99                esac],
100               [enable_internal_headers=yes])
101
102 AM_CONDITIONAL(ENSC_ENABLE_INTERNAL_HEADERS, [test x"$enable_internal_headers" = xyes])
103 AC_MSG_RESULT([$enable_internal_headers])
104
105
106 dnl Check for the APIs to be used
107 AC_MSG_CHECKING([for supported APIs])
108 AC_ARG_ENABLE([apis],
109               [AC_HELP_STRING([--enable-apis=APIS],
110                               [enable support for the given apis; possible values are: legacy,compat,v11,v13,fscompat,ALL (default: ALL)])],
111               [],
112               [enable_apis=ALL])
113
114 test x"$enable_apis" != xALL || enable_apis='legacy,compat,v11,v13,fscompat'
115 enable_api_oldproc=
116 old_IFS=$IFS
117 IFS=,;
118 for i in $enable_apis; do
119         case "$i" in
120                 compat)         AC_DEFINE(VC_ENABLE_API_COMPAT,   1, [Enable support for compatibility syscall API])
121                                 enable_api_oldproc=1;;
122                 legacy)         AC_DEFINE(VC_ENABLE_API_LEGACY,   1, [Enable support for old, /proc parsing API])
123                                 enable_api_old_proc=1;;
124                 v11)            AC_DEFINE(VC_ENABLE_API_V11,      1, [Enable support for API of vserver 1.1.x])
125                                 enable_api_oldproc=1;;
126                 v13)            AC_DEFINE(VC_ENABLE_API_V13,      1, [Enable support for API of vserver 1.3.x]);;
127                 fscompat)       AC_DEFINE(VC_ENABLE_API_FSCOMPAT, 1, [Enable support for filesystem compatibility API]);;
128                 *)              AC_MSG_ERROR(['$i' is not a supported API]);;
129         esac
130 done
131 IFS=$old_IFS
132 if test x"$enable_api_oldproc" != x; then
133         AC_DEFINE(VC_ENABLE_API_OLDPROC, 1, [Enable API for a backward compatible /proc parsing])
134         enable_apis="$enable_apis,oldproc"
135 fi
136 AC_MSG_RESULT([$enable_apis])
137
138 AC_LANG_PUSH(C++)
139 AC_CHECK_HEADERS([ext2fs/ext2fs.h], [],
140   [AC_CHECK_HEADERS([linux/ext2_fs.h], [],
141                     [AC_MSG_ERROR([Sorry, do not know, how to include 'ext2fs.h'])])])
142 AC_LANG_POP
143
144 AC_CHECK_FUNCS([vserver])
145 AC_CHECK_DECLS(MS_MOVE,,,[#include <linux/fs.h>])
146 AC_CHECK_TYPES(xid_t,,,[#include <sys/types.h>])
147
148 dnl BIG HACK! Do some autodetection here!
149 AC_DEFINE(UTMP_GID, [22], [The utmp gid-number])
150
151 if false; then
152         AC_DEFINE(HAVE_GROWING_STACK, [1], [Define to 1 if the stack is on growing addresses])
153 fi
154
155 AH_BOTTOM([#include "compat.h"])
156 AC_CONFIG_FILES([util-vserver.spec Makefile distrib/Makefile])
157 AC_OUTPUT