1 dnl -*- mode: m4-mode -*-
2 dnl Process this file with autoconf to produce a configure script.
4 dnl disabled 2.53 requirement - we do work with 2.52 on suse 7.3 for example
7 AC_INIT([samba],[],[samba-technical@samba.org])
9 AC_CONFIG_SRCDIR([include/includes.h])
10 AC_CONFIG_HEADER(include/config_tmp.h)
11 AC_DEFINE(CONFIG_H_IS_FROM_SAMBA,1,[Marker for samba's config.h])
13 # Configuration rules.
14 m4_include(build/m4/env.m4)
15 m4_include(lib/replace/samba.m4)
16 m4_include(lib/smbreadline/readline.m4)
17 m4_include(heimdal_build/config.m4)
18 m4_include(lib/util/fault.m4)
19 m4_include(lib/util/signal.m4)
20 m4_include(lib/util/util.m4)
21 m4_include(lib/util/fsusage.m4)
22 m4_include(lib/util/xattr.m4)
23 m4_include(lib/util/capability.m4)
24 m4_include(lib/util/time.m4)
25 m4_include(lib/popt/samba.m4)
26 m4_include(lib/charset/config.m4)
27 m4_include(lib/socket/config.m4)
28 m4_include(nsswitch/nsstest.m4)
30 SMB_EXT_LIB_FROM_PKGCONFIG(LIBTALLOC, talloc >= 1.1.0,
33 m4_include(lib/talloc/libtalloc.m4)
34 SMB_INCLUDE_MK(lib/talloc/config.mk)
38 SMB_EXT_LIB_FROM_PKGCONFIG(LIBTDB, tdb >= 1.1.0,
41 m4_include(lib/tdb/libtdb.m4)
42 SMB_INCLUDE_MK(lib/tdb/config.mk)
46 SMB_EXT_LIB_FROM_PKGCONFIG(LIBLDB, ldb >= 0.9.1,
48 SMB_INCLUDE_MK(lib/ldb/ldb_ildap/config.mk)
49 SMB_INCLUDE_MK(lib/ldb/tools/config.mk)
50 SMB_SUBSYSTEM(ldb_map, [], [LIBLDB])
51 define_ldb_modulesdir=no
54 # Here we need to do some tricks
55 # with AC_CONFIG_COMMANDS_PRE
56 # as that's the deferrs the commands
57 # to location after $prefix and $exec_prefix
58 # have usefull values and directly before
59 # creating config.status.
61 # The 'eval eval echo' trick is used to
62 # actually get the raw absolute directory
63 # path as this is needed in config.h
64 define_ldb_modulesdir=yes
65 AC_CONFIG_COMMANDS_PRE([
66 if test x"$define_ldb_modulesdir" = x"yes";then
67 LDB_MODULESDIR=`eval eval echo ${modulesdir}/ldb`
68 AC_DEFINE_UNQUOTED(LDB_MODULESDIR, "${LDB_MODULESDIR}" , [ldb Modules directory])
71 m4_include(lib/ldb/sqlite3.m4)
72 m4_include(lib/ldb/libldb.m4)
73 SMB_INCLUDE_MK(lib/ldb/config.mk)
77 m4_include(lib/tls/config.m4)
78 m4_include(lib/events/config.m4)
80 dnl m4_include(auth/kerberos/config.m4)
82 AC_ARG_VAR([PYTHON_VERSION],[The installed Python
83 version to use, for example '2.3'. This string
84 will be appended to the Python interpreter
87 AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]])
88 if test -z "$PYTHON"; then
89 AC_MSG_ERROR([No python found])
95 # Check for a version of Python >= 2.1.0
97 AC_MSG_CHECKING([for a version of Python >= '2.1.0'])
98 ac_supports_python_ver=`$PYTHON -c "import sys, string; \
99 ver = string.split(sys.version)[[0]]; \
100 print ver >= '2.1.0'"`
101 if test "$ac_supports_python_ver" != "True"; then
103 AC_MSG_ERROR([No recent version of python found])
109 # Check if you have distutils, else fail
111 AC_MSG_CHECKING([for the distutils Python package])
112 ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
113 if test -z "$ac_distutils_result"; then
117 AC_MSG_ERROR([distutils not available])
121 # Check for Python include path
123 AC_MSG_CHECKING([for Python include path])
124 if test -z "$PYTHON_CPPFLAGS"; then
125 python_path=`$PYTHON -c "import distutils.sysconfig; \
126 print distutils.sysconfig.get_python_inc();"`
127 if test -n "${python_path}"; then
128 python_path="-I$python_path"
130 PYTHON_CPPFLAGS=$python_path
132 AC_MSG_RESULT([$PYTHON_CPPFLAGS])
133 AC_SUBST([PYTHON_CPPFLAGS])
136 # Check for Python library path
138 AC_MSG_CHECKING([for Python library path])
139 if test -z "$PYTHON_LDFLAGS"; then
140 # (makes two attempts to ensure we've got a version number
141 # from the interpreter)
142 py_version=`$PYTHON -c "from distutils.sysconfig import *; \
143 from string import join; \
144 print join(get_config_vars('VERSION'))"`
145 if test "$py_version" == "[None]"; then
146 if test -n "$PYTHON_VERSION"; then
147 py_version=$PYTHON_VERSION
149 py_version=`$PYTHON -c "import sys; \
150 print sys.version[[:3]]"`
154 PYTHON_LDFLAGS=`$PYTHON -c "from distutils.sysconfig import *; \
155 from string import join; \
156 print '-L' + get_python_lib(0,1), \
157 '-lpython';"`$py_version
159 AC_MSG_RESULT([$PYTHON_LDFLAGS])
160 AC_SUBST([PYTHON_LDFLAGS])
163 # Check for site packages
165 AC_MSG_CHECKING([for Python site-packages path])
166 if test -z "$PYTHON_SITE_PKG"; then
167 PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
168 print distutils.sysconfig.get_python_lib(0,0);"`
170 AC_MSG_RESULT([$PYTHON_SITE_PKG])
171 AC_SUBST([PYTHON_SITE_PKG])
174 # libraries which must be linked in when embedding
176 AC_MSG_CHECKING(python extra libraries)
177 if test -z "$PYTHON_EXTRA_LIBS"; then
178 PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
179 conf = distutils.sysconfig.get_config_var; \
180 print conf('LOCALMODLIBS'), conf('LIBS')"`
182 AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
183 AC_SUBST(PYTHON_EXTRA_LIBS)
186 # linking flags needed when embedding
188 AC_MSG_CHECKING(python extra linking flags)
189 if test -z "$PYTHON_EXTRA_LDFLAGS"; then
190 PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
191 conf = distutils.sysconfig.get_config_var; \
192 print conf('LINKFORSHARED')"`
194 AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
195 AC_SUBST(PYTHON_EXTRA_LDFLAGS)
197 SMB_EXT_LIB(LIBPYTHON, [$PYTHON_LDFLAGS], [$PYTHON_CPPFLAGS])
198 SMB_ENABLE(LIBPYTHON)
200 m4_include(auth/gensec/config.m4)
201 m4_include(smbd/process_model.m4)
202 m4_include(ntvfs/posix/config.m4)
203 m4_include(ntvfs/unixuid/config.m4)
204 m4_include(lib/socket_wrapper/config.m4)
205 m4_include(lib/nss_wrapper/config.m4)
206 m4_include(auth/config.m4)
207 m4_include(kdc/config.m4)
208 m4_include(ntvfs/sysdep/config.m4)
209 m4_include(lib/appweb/config.m4)
210 m4_include(nsswitch/config.m4)
211 m4_include(libcli/config.m4)
213 #################################################
214 # add *_CFLAGS only for the real build
215 CFLAGS="${CFLAGS} ${DEVELOPER_CFLAGS}"
217 #################################################
218 # final configure stuff
220 AC_MSG_CHECKING([configure summary])
221 AC_TRY_RUN([#include "${srcdir-.}/build/tests/summary.c"],
223 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
224 AC_MSG_WARN([cannot run when cross-compiling]))
226 LIBS=`echo $LIBS | sed -e 's/ *//g'`
227 if test x"$LIBS" != x""; then
229 AC_MSG_WARN([the global \$LIBS variable contains some libraries!])
230 AC_MSG_WARN([this should not happen, please report to samba-technical@lists.samba.org!])
231 AC_MSG_ERROR([only _EXT macros from aclocal.m4 should be used!])
234 dnl Remove -L/usr/lib/? from LDFLAGS and LIBS
235 LIB_REMOVE_USR_LIB(LDFLAGS)
236 LIB_REMOVE_USR_LIB(LIBS)
238 dnl Remove -I/usr/include/? from CFLAGS and CPPFLAGS
239 CFLAGS_REMOVE_USR_INCLUDE(CFLAGS)
240 CFLAGS_REMOVE_USR_INCLUDE(CPPFLAGS)
242 AC_SUBST(ac_default_prefix)
244 for d in build/smb_build bin include ; do
245 test -d ${builddir}/$d || AS_MKDIR_P(${builddir}/$d)
248 echo "configure: creating build/smb_build/config.pm"
249 cat >build/smb_build/config.pm<<CEOF
250 # config.pm - Autogenerate by configure. DO NOT EDIT!
255 @EXPORT_OK = qw(%enabled %config);
258 use vars qw(%enabled %config);
260 %config = (AC_FOREACH([AC_Var], m4_defn([_AC_SUBST_VARS]), [
261 AC_Var => '$AC_Var',])
268 echo "configure: creating config.mk"
270 # config.mk - Autogenerated by configure, DO NOT EDIT!
278 test "x$ac_abs_srcdir" != "x$ac_abs_builddir" && (
280 # NOTE: We *must* use -R so we don't follow symlinks (at least on BSD
282 test -d heimdal || cp -R $srcdir/heimdal $builddir/
283 test -d heimdal_build || cp -R $srcdir/heimdal_build $builddir/
284 test -d build || builddir="$builddir" \
286 $PERL ${srcdir}/script/buildtree.pl
289 $PERL -I${builddir} -I${builddir}/build \
290 -I${srcdir} -I${srcdir}/build \
291 ${srcdir}/build/smb_build/main.pl || exit $?
304 cmp include/config_tmp.h include/config.h >/dev/null 2>&1
306 if test $CMP_RET != 0; then
307 cp include/config_tmp.h include/config.h