version 0.23.194
[util-vserver.git] / util-vserver / configure.ac
1 dnl $Id$
2
3 dnl Copyright (C) 2003 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.23.194, 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 AC_SUBST(CVS2CL_TAG, [])
35
36 # Checks for programs.
37 AC_PROG_CXX
38 AC_PROG_CC
39 AC_PROG_INSTALL
40 AC_PROG_LN_S
41 AC_PROG_RANLIB
42 dnl AC_PROG_LIBTOOL
43 AM_PROG_CC_C_O
44 ENSC_CXXCOMPILER
45
46 check_paths=$PATH:/sbin:/usr/sbin:/usr/local/sbin
47 AC_PATH_PROGS(AWK,     [awk],     [awk],         [ $check_paths ])
48 AC_PATH_PROGS(GREP,    [grep],    [grep],        [ $check_paths ])
49 AC_PATH_PROGS(IP,      [ip],      [ip],          [ $check_paths ])
50 AC_PATH_PROGS(MOUNT,   [mount],   [/bin/mount],  [ $check_paths ])
51 AC_PATH_PROGS(UMOUNT,  [umount],  [/bin/umount], [ $check_paths ])
52 AC_PATH_PROGS(NICE,    [nice],    [nice],        [ $check_paths ])
53 AC_PATH_PROGS(VCONFIG, [vconfig], [vconfig],     [ $check_paths ])
54 AC_PATH_PROGS(WC,      [wc],      [wc],          [ $check_paths ])
55
56 AC_CHECK_PROGS(CVS2CL, [cvs2cl])
57 AM_CONDITIONAL(HAVE_CVS2CL,  [test x"$CVS2CL" != x])
58
59 AC_CHECK_PROGS(RCS2LOG, [rcs2log])
60 AM_CONDITIONAL(HAVE_RCS2LOG,  [test x"$RCS2LOG" != x])
61
62 ENSC_CHECK_CC_FLAG([-std=c99 -Wall -pedantic -W])
63 ENSC_CHECK_CXX_FLAG([-ansi   -Wall -pedantic -W -fmessage-length=0])
64
65 ENSC_FPIC_SYSCALL
66
67
68 AC_MSG_CHECKING([whether to enable debug-code in library])
69 AC_ARG_ENABLE([lib-debug],
70               [AC_HELP_STRING([--enable-lib-debug],
71                               [enable additional debug code in library (default: no)])],
72               [case "$enableval" in
73                   yes)  use_lib_debug=1;;
74                   no)   use_lib_debug=;;
75                   *)    AC_MSG_ERROR(['$enableval' is not a valid value for '--enable-lib-debug']);;
76                esac],
77               [ use_lib_debug= ])
78
79 if test x"$use_lib_debug" = x; then
80         AC_SUBST(LIB_DEBUG_CPPFLAGS, [-DNDEBUG])
81         AC_MSG_RESULT(no)
82 else
83         AC_SUBST(LIB_DEBUG_CPPFLAGS, [])
84         AC_MSG_RESULT(yes)
85 fi
86
87 AC_MSG_CHECKING([whether to enable dietlibc])
88 AC_ARG_ENABLE([dietlibc],
89               [AC_HELP_STRING([--disable-dietlibc],
90                               [do not use dietlibc (default: use dietlibc)])],
91               [case "$withval" in
92                   yes)  use_dietlibc=forced;;
93                   no)   use_dietlibc=forced_no;;
94                   *)    AC_MSG_ERROR(['$withval' is not a valid value for --enable-dietlibc]);;
95                esac],
96               [: ${DIET:=diet}
97                which "$DIET" >/dev/null 2>/dev/null && use_dietlibc=detected || use_dietlibc=detected_no])
98
99 case x"$use_dietlibc" in
100     xdetected)
101         AM_CONDITIONAL(USE_DIETLIBC, true)
102         AC_MSG_RESULT([yes (autodetected)])
103         ;;
104     xforced)
105         AM_CONDITIONAL(USE_DIETLIBC, true)
106         AC_MSG_RESULT([yes (forced)])
107         ;;
108     xdetected_no)
109         AM_CONDITIONAL(USE_DIETLIBC, false)
110         AC_MSG_RESULT([no (detected)])
111         ;;
112     xforced_no)
113         AM_CONDITIONAL(USE_DIETLIBC, false)
114         AC_MSG_RESULT([no (forced)])
115         ;;
116     *)
117         AC_MSG_ERROR([internal error, use_dietlibc was "$use_dietlibc"])
118         ;;
119 esac
120
121 AC_ARG_VAR(CC, [The C compiler])
122 AC_MSG_CHECKING([for linux kernel headers])
123 AC_ARG_WITH([kerneldir],
124             [AC_HELP_STRING([--with-kerneldir=DIR],
125                             [assume top-kernelsources in DIR (default: /lib/modules/<current>/build)])],
126             [case "$withval" in
127                 yes|no) AC_MSG_ERROR(['$withval' is not a valid value for kerneldir]);;
128                 *)      kerneldir=$withval;;
129              esac],
130             [kerneldir=
131              for i in /lib/modules/$(uname -r)/build /usr/src/linux /usr; do
132                 test -e $i/include/linux/version.h && { kerneldir=$i; break; }
133              done])
134
135 test "$kerneldir" -a -e $i/include/linux/version.h || {
136         AC_MSG_ERROR([Can not find kernelsources])
137 }
138
139 kernelincludedir=$kerneldir/include
140 AC_SUBST(kernelincludedir)
141 AC_MSG_RESULT($kernelincludedir/linux)
142
143 AC_MSG_CHECKING([for supported APIs])
144 AC_ARG_ENABLE([apis],
145               [AC_HELP_STRING([--enable-apis=APIS],
146                               [enable support for the given apis; possible values are: legacy,compat,ALL (default: ALL)])],
147               [],
148               [supported_apis=ALL])
149
150 test x"$supported_apis" != xALL || supported_apis='legacy,compat'
151 old_IFS=$IFS
152 IFS=,;
153 for i in $supported_apis; do
154         case "$i" in
155                 compat) AC_DEFINE(VC_ENABLE_API_COMPAT, 1, [Enable support for compatibily syscall API]);;
156                 legacy) AC_DEFINE(VC_ENABLE_API_LEGACY, 1, [Enable support for old, /proc parsing API]);;
157                 *)      AC_MSG_ERROR(['$i' is not a supported API]);;
158         esac
159 done
160 IFS=$old_IFS
161 AC_MSG_RESULT([$supported_apis])
162
163 AC_CHECK_FUNCS([sys_virtual_context])
164 AC_CHECK_DECLS(MS_MOVE,,,[#include <linux/fs.h>])
165 AC_CHECK_TYPES(ctx_t,,,[#include <sys/types.h>])
166
167 dnl BIG HACK! Do some autodetection here!
168 AC_DEFINE(UTMP_GID, [22], [The utmp gid-number])
169
170 if false; then
171         AC_DEFINE(HAVE_GROWING_STACK, [1], [Define to 1 if the stack is on growing addresses])
172 fi
173
174 AH_BOTTOM([#include "compat.h"])
175 AC_CONFIG_FILES([util-vserver.spec Makefile distrib/Makefile])
176 AC_OUTPUT