1587dd08c394a22da5346f7b040e1a4ee936b5c7
[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.191, 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 AM_PROG_CC_C_O
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
54 AC_CHECK_PROGS(CVS2CL, [cvs2cl])
55 AM_CONDITIONAL(HAVE_CVS2CL,  [test x"$CVS2CL" != x])
56
57 AC_CHECK_PROGS(RCS2LOG, [rcs2log])
58 AM_CONDITIONAL(HAVE_RCS2LOG,  [test x"$RCS2LOG" != x])
59
60 ENSC_CHECK_CC_FLAG([-std=c99 -Wall -pedantic -W])
61
62 AC_MSG_CHECKING([whether to enable dietlibc])
63 AC_ARG_ENABLE([dietlibc],
64               [AC_HELP_STRING([--disable-dietlibc],
65                               [do not use dietlibc (default: use dietlibc)])],
66               [case "$withval" in
67                   yes)  use_dietlibc=forced;;
68                   no)   use_dietlibc=forced_no;;
69                   *)    AC_MSG_ERROR(['$withval' is not a valid value for --enable-dietlibc]);;
70                esac],
71               [: ${DIET:=diet}
72                which "$DIET" >/dev/null 2>/dev/null && use_dietlibc=detected || use_dietlibc=detected_no])
73
74 case x"$use_dietlibc" in
75     xdetected)
76         AM_CONDITIONAL(USE_DIETLIBC, true)
77         AC_MSG_RESULT([yes (autodetected)])
78         ;;
79     xforced)
80         AM_CONDITIONAL(USE_DIETLIBC, true)
81         AC_MSG_RESULT([yes (forced)])
82         ;;
83     xdetected_no)
84         AM_CONDITIONAL(USE_DIETLIBC, false)
85         AC_MSG_RESULT([no (detected)])
86         ;;
87     xforced_no)
88         AM_CONDITIONAL(USE_DIETLIBC, false)
89         AC_MSG_RESULT([no (forced)])
90         ;;
91     *)
92         AC_MSG_ERROR([internal error, use_dietlibc was "$use_dietlibc"])
93         ;;
94 esac
95
96 AC_ARG_VAR(CC, [The C compiler])
97 AC_MSG_CHECKING([for linux kernel headers])
98 AC_ARG_WITH([kerneldir],
99             [AC_HELP_STRING([--with-kerneldir=DIR],
100                             [assume top-kernelsources in DIR (default: /lib/modules/<current>/build)])],
101             [case "$withval" in
102                 yes|no) AC_MSG_ERROR(['$withval' is not a valid value for kerneldir]);;
103                 *)      kerneldir=$withval;;
104              esac],
105             [kerneldir=
106              for i in /lib/modules/$(uname -r)/build /usr/src/linux /usr; do
107                 test -e $i/include/linux/version.h && { kerneldir=$i; break; }
108              done])
109
110 test "$kerneldir" -a -e $i/include/linux/version.h || {
111         AC_MSG_ERROR([Can not find kernelsources])
112 }
113
114 kernelincludedir=$kerneldir/include
115 AC_SUBST(kernelincludedir)
116 AC_MSG_RESULT($kernelincludedir/linux)
117
118 AC_MSG_CHECKING([for supported APIs])
119 AC_ARG_ENABLE([apis],
120               [AC_HELP_STRING([--enable-apis=APIS],
121                               [enable support for the given apis; possible values are: legacy,compat,ALL (default: ALL)])],
122               [],
123               [supported_apis=ALL])
124
125 test x"$supported_apis" != xALL || supported_apis='legacy,compat'
126 old_IFS=$IFS
127 IFS=,;
128 for i in $supported_apis; do
129         case "$i" in
130                 compat) AC_DEFINE(VC_ENABLE_API_COMPAT, 1, [Enable support for compatibily syscall API]);;
131                 legacy) AC_DEFINE(VC_ENABLE_API_LEGACY, 1, [Enable support for old, /proc parsing API]);;
132                 *)      AC_MSG_ERROR(['$i' is not a supported API]);;
133         esac
134 done
135 IFS=$old_IFS
136 AC_MSG_RESULT([$supported_apis])
137
138 AC_CHECK_FUNCS([sys_virtual_context])
139 AC_CHECK_DECLS(MS_MOVE,,,[#include <linux/fs.h>])
140 AC_CHECK_TYPES(ctx_t,,,[#include <sys/types.h>])
141
142 dnl BIG HACK! Do some autodetection here!
143 AC_DEFINE(UTMP_GID, [22], [The utmp gid-number])
144
145 if false; then
146         AC_DEFINE(HAVE_GROWING_STACK, [1], [Define to 1 if the stack is on growing addresses])
147 fi
148
149 AH_BOTTOM([#include "compat.h"])
150 AC_CONFIG_FILES([util-vserver.spec Makefile distrib/Makefile])
151 AC_OUTPUT