moved isAvoidNamespace() into main-functions file
[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.29.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 # 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 ENSC_C99COMPILER
44
45 check_paths=$PATH:/sbin:/usr/sbin:/usr/local/sbin
46 AC_PATH_PROGS(AWK,     [awk],     [awk],         [ $check_paths ])
47 AC_PATH_PROGS(GREP,    [grep],    [grep],        [ $check_paths ])
48 AC_PATH_PROGS(IP,      [ip],      [ip],          [ $check_paths ])
49 AC_PATH_PROGS(MOUNT,   [mount],   [/bin/mount],  [ $check_paths ])
50 AC_PATH_PROGS(UMOUNT,  [umount],  [/bin/umount], [ $check_paths ])
51 AC_PATH_PROGS(NICE,    [nice],    [nice],        [ $check_paths ])
52 AC_PATH_PROGS(VCONFIG, [vconfig], [vconfig],     [ $check_paths ])
53 AC_PATH_PROGS(WC,      [wc],      [wc],          [ $check_paths ])
54 AC_PATH_PROGS(PS,      [ps],      [/bin/ps],     [ $check_paths ])
55 AC_PATH_PROGS(XSLTPROC, [xsltproc], [xsltproc])
56 AC_PATH_PROGS(SED,      [sed],      [sed])
57 AC_PATH_PROGS(CMP,      [cmp],      [cmp])
58 AC_PATH_PROGS(WGET,     [wget],     [wget])
59
60 ENSC_CHECK_CC_FLAG([-std=c99 -Wall -pedantic -W])
61 ENSC_CHECK_CXX_FLAG([-ansi   -Wall -pedantic -W -fmessage-length=0])
62
63 ENSC_FPIC_SYSCALL
64
65
66 AC_MSG_CHECKING([whether to enable debug-code in library])
67 AC_ARG_ENABLE([lib-debug],
68               [AC_HELP_STRING([--enable-lib-debug],
69                               [enable additional debug code in library (default: no)])],
70               [case "$enableval" in
71                   yes)  use_lib_debug=1;;
72                   no)   use_lib_debug=;;
73                   *)    AC_MSG_ERROR(['$enableval' is not a valid value for '--enable-lib-debug']);;
74                esac],
75               [ use_lib_debug= ])
76
77 if test x"$use_lib_debug" = x; then
78         AC_SUBST(LIB_DEBUG_CPPFLAGS, [-DNDEBUG])
79         AC_MSG_RESULT(no)
80 else
81         AC_SUBST(LIB_DEBUG_CPPFLAGS, [])
82         AC_MSG_RESULT(yes)
83 fi
84
85 AC_ARG_VAR(CC, [The C compiler])
86
87 ENSC_INITRDDIR(initrddir)
88 ENSC_RELEASE(RELEASE_CPPFLAGS)
89 ENSC_ENABLE_DIETLIBC(USE_DIETLIBC)
90 ENSC_KERNEL_HEADERS(kernelincludedir)
91 ENSC_UV_VROOTDIR(vserverdir)
92 ENSC_CHANGELOG([trunk])
93
94 dnl Check whether to use external kernel headers
95 AC_MSG_CHECKING([whether to use internal kernel headers])
96 AC_ARG_ENABLE([internal-headers],
97               [AC_HELP_STRING([--disable-internal-headers],
98                               [use vserver specific headers from the kernel instead of the shipped versions (default: no)])],
99               [case "$enableval" in
100                   yes|no) ;;
101                   *)      AC_MSG_ERROR(['$i' is not a supported value for '--disable-internal-headers']);;
102                esac],
103               [enable_internal_headers=yes])
104
105 AM_CONDITIONAL(ENSC_ENABLE_INTERNAL_HEADERS, [test x"$enable_internal_headers" = xyes])
106 AC_MSG_RESULT([$enable_internal_headers])
107
108
109 dnl Check for the APIs to be used
110 AC_MSG_CHECKING([for supported APIs])
111 AC_ARG_ENABLE([apis],
112               [AC_HELP_STRING([--enable-apis=APIS],
113                               [enable support for the given apis; possible values are: legacy,compat,v11,v13,fscompat,ALL (default: ALL)])],
114               [],
115               [enable_apis=ALL])
116
117 test x"$enable_apis" != xALL || enable_apis='legacy,compat,v11,v13,fscompat'
118 enable_api_oldproc=
119 enable_api_olduts=
120 old_IFS=$IFS
121 IFS=,;
122 for i in $enable_apis; do
123         case "$i" in
124                 compat)         AC_DEFINE(VC_ENABLE_API_COMPAT,   1, [Enable support for compatibility syscall API])
125                                 enable_api_oldproc=1
126                                 enable_api_olduts=1
127                                 ;;
128                 legacy)         AC_DEFINE(VC_ENABLE_API_LEGACY,   1, [Enable support for old, /proc parsing API])
129                                 enable_api_old_proc=1
130                                 enable_api_olduts=1
131                                 ;;
132                 v11)            AC_DEFINE(VC_ENABLE_API_V11,      1, [Enable support for API of vserver 1.1.x])
133                                 enable_api_oldproc=1
134                                 enable_api_olduts=1
135                                 ;;
136                 v13)            AC_DEFINE(VC_ENABLE_API_V13,      1, [Enable support for API of vserver 1.3.x]);;
137                 fscompat)       AC_DEFINE(VC_ENABLE_API_FSCOMPAT, 1, [Enable support for filesystem compatibility API]);;
138                 *)              AC_MSG_ERROR(['$i' is not a supported API]);;
139         esac
140 done
141 IFS=$old_IFS
142 if test x"$enable_api_oldproc" != x; then
143         AC_DEFINE(VC_ENABLE_API_OLDPROC, 1, [Enable API for a backward compatible /proc parsing])
144         enable_apis="$enable_apis,oldproc"
145 fi
146 if test x"$enable_api_olduts" != x; then
147         AC_DEFINE(VC_ENABLE_API_OLDUTS, 1, [Enable API for a backward compatible uts handling])
148         enable_apis="$enable_apis,olduts"
149 fi
150 AC_MSG_RESULT([$enable_apis])
151
152 ENSC_SYSCALLNR(vserver,273)
153 ENSC_SYSCALL
154 ENSC_CHECK_EXT2FS_HEADER
155 AC_CHECK_FUNCS([vserver])
156 AC_CHECK_DECLS(MS_MOVE,,,[#include <linux/fs.h>])
157 AC_CHECK_TYPES(xid_t,,,[#include <sys/types.h>])
158
159 dnl BIG HACK! Do some autodetection here!
160 AC_DEFINE(UTMP_GID, [22], [The utmp gid-number])
161
162 if false; then
163         AC_DEFINE(HAVE_GROWING_STACK, [1], [Define to 1 if the stack is on growing addresses])
164 fi
165
166 AH_BOTTOM([#include "compat.h"])
167 AC_CONFIG_FILES([util-vserver.spec Makefile distrib/Makefile])
168 AC_OUTPUT
169
170 ensc_cxx_affected=
171 ensc_c99_affected=
172 test x"$ensc_cv_cxx_cxxcompiler" = xyes || ensc_cxx_affected=" (affected: vbuild, vcheck)"
173 test x"$ensc_cv_c99_c99compiler" = xyes || ensc_c99_affected=" (affected: vunify)"
174
175 AC_MSG_NOTICE([
176
177 $PACKAGE_STRING
178
179 Features:
180                        CC: $CC, $($CC   --version | sed -e '1p;d')
181                       CXX: $CXX, $($CXX --version | sed -e '1p;d')
182                  CPPFLAGS: '$CPPFLAGS'
183                    CFLAGS: '$CFLAGS'
184                  CXXFLAGS: '$CXXFLAGS'
185                build/host: $build/$host
186              Use dietlibc: $ensc_have_dietlibc
187        Build C++ programs: $ensc_cv_cxx_cxxcompiler$ensc_cxx_affected
188        Build C99 programs: $ensc_cv_c99_c99compiler$ensc_c99_affected
189            Available APIs: $enable_apis
190             ext2fs Source: $ensc_cv_test_ext2fs_header
191     syscall(2) invocation: $with_syscall
192       vserver(2) syscall#: $ensc_cv_value_syscall_vserver
193    
194 Paths:
195                    prefix: $prefix
196         sysconf-Directory: $sysconfdir
197             cfg-Directory: $sysconfdir/vservers
198          initrd-Directory: $initrddir
199             Kernelheaders: $kernelincludedir
200           vserver-Rootdir: $vserverdir
201 ])