diff options
-rw-r--r-- | source3/Makefile.in | 2 | ||||
-rw-r--r-- | source3/configure.in | 24 | ||||
-rw-r--r-- | source3/lib/ldb/libldb.m4 | 32 | ||||
-rw-r--r-- | source3/samba4.m4 | 23 | ||||
-rwxr-xr-x | source3/script/build_idl.sh | 6 | ||||
-rw-r--r-- | source4/build/m4/ac_pkg_swig.m4 (renamed from source4/scripting/python/ac_pkg_swig.m4) | 0 | ||||
-rw-r--r-- | source4/build/m4/check_make.m4 | 34 | ||||
-rw-r--r-- | source4/build/m4/check_path.m4 | 2 | ||||
-rw-r--r-- | source4/build/m4/check_perl.m4 | 16 | ||||
-rw-r--r-- | source4/build/m4/check_python.m4 | 89 | ||||
-rw-r--r-- | source4/build/m4/env.m4 | 48 | ||||
-rw-r--r-- | source4/configure.ac | 1 | ||||
-rw-r--r-- | source4/lib/ldb/modules/asq.c | 4 | ||||
-rw-r--r-- | source4/scripting/python/config.m4 | 83 |
14 files changed, 212 insertions, 152 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in index 1378f64edc..d9ff8593f4 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -1199,10 +1199,10 @@ samba3-idl:: epmapper.idl messaging.idl xattr.idl misc.idl samr.idl security.idl \ dssetup.idl krb5pac.idl ntsvcs.idl libnetapi.idl drsuapi.idl drsblobs.idl \ nbt.idl" \ + IDL_PATH="librpc/idl" \ CPP="$(CPP)" PIDL="../pidl/pidl" \ srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh $(PIDL_ARGS) - ##################################################################### diff --git a/source3/configure.in b/source3/configure.in index 1eba4a0a58..443cdd6161 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -6219,7 +6219,29 @@ MSG fi AC_ARG_ENABLE(merged-build, -[AS_HELP_STRING([--enable-merged-build], [Build Samba 4 as well])]) +[AS_HELP_STRING([--enable-merged-build], [Build Samba 4 as well])], +[ enable_merged_build=$enableval ], [ enable_merged_build=auto ]) + +if test x$enable_merged_build = xauto; then + merged_build_possible=yes + + # Check for GNU make + m4_include(../source4/build/m4/check_make.m4) + AC_SAMBA_GNU_MAKE([true], [merged_build_possible=no]) + + # Check for perl + m4_include(../source4/build/m4/check_perl.m4) + AC_SAMBA_PERL([true], [merged_build_possible=no]) + + # Check for python + m4_include(../source4/build/m4/check_python.m4) + AC_SAMBA_PYTHON_DEVEL([true], [merged_build_possible=no]) + + AC_MSG_CHECKING([whether it would be possible to do a merged build]) + AC_MSG_RESULT([$merged_build_possible]) + + dnl FIXME: enable_merged_build=$merged_build_possible +fi if test x$enable_merged_build = xyes; then MERGED_BUILD=1 diff --git a/source3/lib/ldb/libldb.m4 b/source3/lib/ldb/libldb.m4 index 845563b4a1..df2075d4e3 100644 --- a/source3/lib/ldb/libldb.m4 +++ b/source3/lib/ldb/libldb.m4 @@ -1,33 +1 @@ SMB_ENABLE(ldb_sqlite3,$with_sqlite3_support) - -AC_MSG_CHECKING([for Python]) - -PYTHON= - -AC_ARG_WITH(python, -[ --with-python=PYTHONNAME build Python libraries], -[ case "${withval-python}" in - yes) - PYTHON=python - ;; - no) - PYTHON= - ;; - *) - PYTHON=${withval-python} - ;; - esac ]) - -if test x"$PYTHON" != "x"; then - incdir=`python -c 'import sys; print "%s/include/python%d.%d" % (sys.prefix, sys.version_info[[0]], sys.version_info[[1]])'` - CPPFLAGS="$CPPFLAGS -I $incdir" -fi - -if test x"$PYTHON" != "x"; then - AC_MSG_RESULT([${withval-python}]) -else - AC_MSG_RESULT(no) - SMB_ENABLE(swig_ldb, NO) -fi - -AC_SUBST(PYTHON) diff --git a/source3/samba4.m4 b/source3/samba4.m4 index 9cf01507de..a5b7da7e07 100644 --- a/source3/samba4.m4 +++ b/source3/samba4.m4 @@ -3,6 +3,26 @@ AC_SUBST(BLDSHARED) smbtorture4_path=bin/smbtorture4 m4_include(build/m4/public.m4) +m4_include(build/m4/check_python.m4) + +m4_include(build/m4/ac_pkg_swig.m4) + +AC_PROG_SWIG(1.3.36) + +AC_SAMBA_PYTHON_DEVEL([ +SMB_EXT_LIB(EXT_LIB_PYTHON, [$PYTHON_LDFLAGS], [$PYTHON_CFLAGS]) +SMB_ENABLE(EXT_LIB_PYTHON,YES) +SMB_ENABLE(LIBPYTHON,YES) +],[ +AC_MSG_ERROR([Python not found. Please install Python 2.x and its development headers/libraries.]) +]) + +AC_MSG_CHECKING(python library directory) +pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1, 0, '\\${prefix}')"` +AC_MSG_RESULT($pythondir) + +AC_SUBST(pythondir) + m4_include(lib/smbreadline/readline.m4) m4_include(heimdal_build/internal.m4) m4_include(../lib/util/fault.m4) @@ -21,7 +41,7 @@ m4_include(lib/zlib.m4) AC_CONFIG_FILES(../source4/lib/registry/registry.pc) AC_CONFIG_FILES(../source4/librpc/dcerpc.pc) -AC_CONFIG_FILES(../source4/librpc/ndr.pc) +AC_CONFIG_FILES(../librpc/ndr.pc) AC_CONFIG_FILES(../source4/lib/torture/torture.pc) AC_CONFIG_FILES(../source4/auth/gensec/gensec.pc) AC_CONFIG_FILES(../source4/param/samba-hostconfig.pc) @@ -87,7 +107,6 @@ eventsdir="../source4/lib/events" m4_include(lib/events/libevents.m4) dnl m4_include(auth/kerberos/config.m4) -m4_include(scripting/python/config.m4) m4_include(auth/gensec/config.m4) m4_include(smbd/process_model.m4) m4_include(ntvfs/posix/config.m4) diff --git a/source3/script/build_idl.sh b/source3/script/build_idl.sh index 2027fd3937..75f8612957 100755 --- a/source3/script/build_idl.sh +++ b/source3/script/build_idl.sh @@ -20,11 +20,11 @@ for f in ${IDL_FILES}; do ndr="librpc/gen_ndr/ndr_$basename.c" if [ -f $ndr ]; then - if [ "x`find librpc/idl/$f -newer $ndr -print`" = "xlibrpc/idl/$f" ]; then - list="$list librpc/idl/$f" + if [ "x`find ${IDL_PATH}/$f -newer $ndr -print`" = "x${IDL_PATH}/$f" ]; then + list="$list ${IDL_PATH}/$f" fi else - list="$list librpc/idl/$f" + list="$list ${IDL_PATH}/$f" fi done diff --git a/source4/scripting/python/ac_pkg_swig.m4 b/source4/build/m4/ac_pkg_swig.m4 index 8d3561a0a7..8d3561a0a7 100644 --- a/source4/scripting/python/ac_pkg_swig.m4 +++ b/source4/build/m4/ac_pkg_swig.m4 diff --git a/source4/build/m4/check_make.m4 b/source4/build/m4/check_make.m4 index f497684453..343913f884 100644 --- a/source4/build/m4/check_make.m4 +++ b/source4/build/m4/check_make.m4 @@ -6,34 +6,28 @@ dnl Released under the GNU GPL dnl ------------------------------------------------------- dnl +AC_DEFUN([AC_SAMBA_GNU_MAKE], +[ AC_PATH_PROGS(MAKE,gmake make) AC_CACHE_CHECK([whether we have GNU make], samba_cv_gnu_make, [ if ! $ac_cv_path_MAKE --version | head -1 | grep GNU 2>/dev/null >/dev/null then - AC_MSG_ERROR([Unable to find GNU make]) + samba_cv_gnu_make=no +else + samba_cv_gnu_make=yes +fi +]) +if test x$samba_cv_gnu_make = xyes; then + $1 +else + $2 fi ]) +AC_DEFUN([AC_SAMBA_GNU_MAKE_VERSION], +[ AC_CACHE_CHECK([GNU make version], samba_cv_gnu_make_version,[ samba_cv_gnu_make_version=`$ac_cv_path_MAKE --version | head -1 | cut -d " " -f 3 2>/dev/null` ]) - GNU_MAKE_VERSION=$samba_cv_gnu_make_version - AC_SUBST(GNU_MAKE_VERSION) - - -new_make=no -AC_MSG_CHECKING([for GNU make >= 3.81]) -if $PERL -e " \$_ = '$GNU_MAKE_VERSION'; s/@<:@^\d\.@:>@.*//g; exit (\$_ < 3.81);"; then - new_make=yes -fi -AC_MSG_RESULT($new_make) -automatic_dependencies=no -AX_CFLAGS_GCC_OPTION([-M -MT conftest.d -MF conftest.o], [], [ automatic_dependencies=$new_make ], []) -AC_MSG_CHECKING([Whether to use automatic dependencies]) -AC_ARG_ENABLE(automatic-dependencies, -[ --enable-automatic-dependencies Enable automatic dependencies], -[ automatic_dependencies=$enableval ], -[ automatic_dependencies=no ]) -AC_MSG_RESULT($automatic_dependencies) -AC_SUBST(automatic_dependencies) +]) diff --git a/source4/build/m4/check_path.m4 b/source4/build/m4/check_path.m4 index 666dd3b0ae..f7266e6e44 100644 --- a/source4/build/m4/check_path.m4 +++ b/source4/build/m4/check_path.m4 @@ -43,7 +43,7 @@ if test x$fhs = xyes; then winbindd_privileged_socket_dir="${localstatedir}/lib/samba/winbindd_privileged" else # Check to prevent installing directly under /usr without the FHS - AS_IF([test $prefix == /usr || $prefix == /usr/local],[ + AS_IF([test $prefix == /usr || test $prefix == /usr/local],[ AC_MSG_ERROR([Don't install directly under "/usr" or "/usr/local" without using the FHS option (--enable-fhs). This could lead to file loss!]) ]) fi diff --git a/source4/build/m4/check_perl.m4 b/source4/build/m4/check_perl.m4 index 82ca242499..aaec9cf950 100644 --- a/source4/build/m4/check_perl.m4 +++ b/source4/build/m4/check_perl.m4 @@ -5,6 +5,8 @@ dnl Released under the GNU GPL dnl ------------------------------------------------------- dnl +AC_DEFUN([AC_SAMBA_PERL], +[ case "$host_os" in *irix*) # On IRIX, we prefer Freeware or Nekoware Perl, because the @@ -18,11 +20,13 @@ esac if test x"$PERL" = x""; then AC_MSG_WARN([No version of perl was found!]) - AC_MSG_ERROR([Please install perl from http://www.perl.com/]) + $2 +else + if test x"$debug" = x"yes";then + PERL="$PERL -W" + fi + export PERL + $1 fi -if test x"$debug" = x"yes";then - PERL="$PERL -W" -fi -export PERL +]) -AC_PATH_PROG(YAPP, yapp, false) diff --git a/source4/build/m4/check_python.m4 b/source4/build/m4/check_python.m4 new file mode 100644 index 0000000000..96f93a3d75 --- /dev/null +++ b/source4/build/m4/check_python.m4 @@ -0,0 +1,89 @@ +dnl Autoconf macros for finding a Python development environment +dnl +dnl Copyright (C) 2007-2008 Jelmer Vernooij <jelmer@samba.org> +dnl Published under the GNU GPL, v3 or later +dnl +AC_ARG_VAR([PYTHON_VERSION],[The installed Python + version to use, for example '2.3'. This string + will be appended to the Python interpreter + canonical name.]) + +AC_DEFUN([TRY_LINK_PYTHON], +[ + if test $working_python = no; then + ac_save_LIBS="$LIBS" + ac_save_CFLAGS="$CFLAGS" + LIBS="$LIBS $1" + CFLAGS="$CFLAGS $2" + + AC_TRY_LINK([ + /* we have our own configure tests */ + #include <Python.h> + ],[ + Py_InitModule(NULL, NULL); + ],[ + PYTHON_LDFLAGS="$1" + PYTHON_CFLAGS="$2" + working_python=yes + ]) + LIBS="$ac_save_LIBS" + CFLAGS="$ac_save_CFLAGS" + fi +]) + +dnl Try to find a Python implementation including header files +dnl AC_SAMBA_PYTHON_DEVEL(RUN-IF-FOUND, RUN-IF-NOT-FOUND) +dnl +dnl Will set the following variables: +dnl $PYTHON +dnl $PYTHON_CONFIG (if found) +dnl $PYTHON_CFLAGS +dnl $PYTHON_LDFLAGS +AC_DEFUN([AC_SAMBA_PYTHON_DEVEL], +[ + AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]]) + if test -z "$PYTHON"; then + working_python=no + AC_MSG_WARN([No python found]) + fi + + dnl assume no working python + working_python=no + + if test -z "$PYTHON_VERSION"; then + AC_PATH_PROGS([PYTHON_CONFIG], [python2.6-config python2.5-config python2.4-config python-config]) + else + AC_PATH_PROG([PYTHON_CONFIG], [python[$PYTHON_VERSION]-config]) + fi + + if test -z "$PYTHON_CONFIG"; then + AC_MSG_WARN([No python-config found]) + else + TRY_LINK_PYTHON([`$PYTHON_CONFIG --ldflags`], [`$PYTHON_CONFIG --includes`]) + TRY_LINK_PYTHON([`$PYTHON_CONFIG --ldflags`], [`$PYTHON_CONFIG --cflags`]) + if test x$working_python = xno; then + # It seems the library path isn't included on some systems + base=`$PYTHON_CONFIG --prefix` + TRY_LINK_PYTHON([`echo -n -L${base}/lib " "; $PYTHON_CONFIG --ldflags`], [`$PYTHON_CONFIG --includes`]) + TRY_LINK_PYTHON([`echo -n -L${base}/lib " "; $PYTHON_CONFIG --ldflags`], [`$PYTHON_CONFIG --cflags`]) + fi + fi + + if test x$PYTHON != x + then + DISTUTILS_CFLAGS=`$PYTHON -c "from distutils import sysconfig; print '-I%s -I%s %s' % (sysconfig.get_python_inc(), sysconfig.get_python_inc(plat_specific=1), sysconfig.get_config_var('CFLAGS'))"` + DISTUTILS_LDFLAGS=`$PYTHON -c "from distutils import sysconfig; print '%s %s -lpython%s -L%s' % (sysconfig.get_config_var('LIBS'), sysconfig.get_config_var('SYSLIBS'), sysconfig.get_config_var('VERSION'), sysconfig.get_config_var('LIBPL'))"` + TRY_LINK_PYTHON($DISTUTILS_LDFLAGS, $DISTUTILS_CFLAGS) + fi + + AC_MSG_CHECKING(working python module support) + if test $working_python = yes; then + AC_MSG_RESULT([yes]) + $1 + else + AC_MSG_RESULT([no]) + $2 + fi +]) + + diff --git a/source4/build/m4/env.m4 b/source4/build/m4/env.m4 index 6c040b9bab..4cde95d5e7 100644 --- a/source4/build/m4/env.m4 +++ b/source4/build/m4/env.m4 @@ -1,6 +1,7 @@ dnl SMB Build Environment Checks dnl ------------------------------------------------------- dnl Copyright (C) Stefan (metze) Metzmacher 2004 +dnl Copyright (C) Jelmer Vernooij 2005,2008 dnl Released under the GNU GPL dnl ------------------------------------------------------- dnl @@ -40,7 +41,54 @@ fi m4_include(build/m4/check_path.m4) m4_include(build/m4/check_perl.m4) + +AC_SAMBA_PERL([], [AC_MSG_ERROR([Please install perl from http://www.perl.com/])]) + +AC_PATH_PROG(YAPP, yapp, false) + m4_include(build/m4/check_cc.m4) m4_include(build/m4/check_ld.m4) m4_include(build/m4/check_make.m4) + +AC_SAMBA_GNU_MAKE([AC_MSG_RESULT(found)], [AC_MSG_ERROR([Unable to find GNU make])]) +AC_SAMBA_GNU_MAKE_VERSION() +GNU_MAKE_VERSION=$samba_cv_gnu_make_version +AC_SUBST(GNU_MAKE_VERSION) + +new_make=no +AC_MSG_CHECKING([for GNU make >= 3.81]) +if $PERL -e " \$_ = '$GNU_MAKE_VERSION'; s/@<:@^\d\.@:>@.*//g; exit (\$_ < 3.81);"; then + new_make=yes +fi +AC_MSG_RESULT($new_make) +automatic_dependencies=no +AX_CFLAGS_GCC_OPTION([-M -MT conftest.d -MF conftest.o], [], [ automatic_dependencies=$new_make ], []) +AC_MSG_CHECKING([Whether to use automatic dependencies]) +AC_ARG_ENABLE(automatic-dependencies, +[ --enable-automatic-dependencies Enable automatic dependencies], +[ automatic_dependencies=$enableval ], +[ automatic_dependencies=no ]) +AC_MSG_RESULT($automatic_dependencies) +AC_SUBST(automatic_dependencies) + m4_include(build/m4/check_doc.m4) + +m4_include(build/m4/check_python.m4) + +m4_include(build/m4/ac_pkg_swig.m4) + +AC_PROG_SWIG(1.3.36) + +AC_SAMBA_PYTHON_DEVEL([ +SMB_EXT_LIB(EXT_LIB_PYTHON, [$PYTHON_LDFLAGS], [$PYTHON_CFLAGS]) +SMB_ENABLE(EXT_LIB_PYTHON,YES) +SMB_ENABLE(LIBPYTHON,YES) +],[ +AC_MSG_ERROR([Python not found. Please install Python 2.x and its development headers/libraries.]) +]) + +AC_MSG_CHECKING(python library directory) +pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1, 0, '\\${prefix}')"` +AC_MSG_RESULT($pythondir) + +AC_SUBST(pythondir) diff --git a/source4/configure.ac b/source4/configure.ac index 44788a487c..7c95f2a175 100644 --- a/source4/configure.ac +++ b/source4/configure.ac @@ -94,7 +94,6 @@ m4_include(lib/tls/config.m4) m4_include(lib/events/libevents.m4) dnl m4_include(auth/kerberos/config.m4) -m4_include(scripting/python/config.m4) m4_include(auth/gensec/config.m4) m4_include(smbd/process_model.m4) m4_include(ntvfs/posix/config.m4) diff --git a/source4/lib/ldb/modules/asq.c b/source4/lib/ldb/modules/asq.c index 17896a006a..835715e7dc 100644 --- a/source4/lib/ldb/modules/asq.c +++ b/source4/lib/ldb/modules/asq.c @@ -222,10 +222,10 @@ static int asq_build_first_request(struct asq_context *ac, struct ldb_request ** base_attrs[1] = NULL; - ret = ldb_build_search_req_ex(base_req, ac->module->ldb, ac, + ret = ldb_build_search_req(base_req, ac->module->ldb, ac, ac->req->op.search.base, LDB_SCOPE_BASE, - ac->req->op.search.tree, + NULL, (const char * const *)base_attrs, NULL, ac, asq_base_callback, diff --git a/source4/scripting/python/config.m4 b/source4/scripting/python/config.m4 deleted file mode 100644 index 843c3f7873..0000000000 --- a/source4/scripting/python/config.m4 +++ /dev/null @@ -1,83 +0,0 @@ -m4_include(scripting/python/ac_pkg_swig.m4) - -AC_ARG_VAR([PYTHON_VERSION],[The installed Python - version to use, for example '2.3'. This string - will be appended to the Python interpreter - canonical name.]) - -AC_PROG_SWIG(1.3.36) - -AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]]) -if test -z "$PYTHON"; then - working_python=no - AC_MSG_WARN([No python found]) -fi - -AC_DEFUN([TRY_LINK_PYTHON], -[ - if test $working_python = no; then - ac_save_LIBS="$LIBS" - ac_save_CFLAGS="$CFLAGS" - LIBS="$LIBS $1" - CFLAGS="$CFLAGS $2" - - AC_TRY_LINK([ - /* we have our own configure tests */ - #include <Python.h> - ],[ - Py_InitModule(NULL, NULL); - ],[ - PYTHON_LDFLAGS="$1" - PYTHON_CFLAGS="$2" - working_python=yes - ]) - LIBS="$ac_save_LIBS" - CFLAGS="$ac_save_CFLAGS" - fi -]) - -dnl assume no working python -working_python=no - -if test -z "$PYTHON_VERSION"; then - AC_PATH_PROGS([PYTHON_CONFIG], [python2.6-config python2.5-config python2.4-config python-config]) -else - AC_PATH_PROG([PYTHON_CONFIG], [python[$PYTHON_VERSION]-config]) -fi - -if test -z "$PYTHON_CONFIG"; then - AC_MSG_WARN([No python-config found]) -else - TRY_LINK_PYTHON([`$PYTHON_CONFIG --ldflags`], [`$PYTHON_CONFIG --includes`]) - TRY_LINK_PYTHON([`$PYTHON_CONFIG --ldflags`], [`$PYTHON_CONFIG --cflags`]) - if test x$working_python = xno; then - # It seems the library path isn't included on some systems - base=`$PYTHON_CONFIG --prefix` - TRY_LINK_PYTHON([`echo -n -L${base}/lib " "; $PYTHON_CONFIG --ldflags`], [`$PYTHON_CONFIG --includes`]) - TRY_LINK_PYTHON([`echo -n -L${base}/lib " "; $PYTHON_CONFIG --ldflags`], [`$PYTHON_CONFIG --cflags`]) - fi -fi - -if test x$PYTHON != x -then - DISTUTILS_CFLAGS=`$PYTHON -c "from distutils import sysconfig; print '-I%s -I%s %s' % (sysconfig.get_python_inc(), sysconfig.get_python_inc(plat_specific=1), sysconfig.get_config_var('CFLAGS'))"` - DISTUTILS_LDFLAGS=`$PYTHON -c "from distutils import sysconfig; print '%s %s -lpython%s -L%s' % (sysconfig.get_config_var('LIBS'), sysconfig.get_config_var('SYSLIBS'), sysconfig.get_config_var('VERSION'), sysconfig.get_config_var('LIBPL'))"` - TRY_LINK_PYTHON($DISTUTILS_LDFLAGS, $DISTUTILS_CFLAGS) -fi - -SMB_EXT_LIB(EXT_LIB_PYTHON, [$PYTHON_LDFLAGS], [$PYTHON_CFLAGS]) - -AC_MSG_CHECKING(working python module support) -if test $working_python = yes; then - SMB_ENABLE(EXT_LIB_PYTHON,YES) - SMB_ENABLE(LIBPYTHON,YES) - AC_MSG_RESULT([yes]) -else - AC_MSG_ERROR([Python not found. Please install Python 2.x and its development headers/libraries.]) -fi - -AC_MSG_CHECKING(python library directory) -pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1, 0, '\\${prefix}')"` -AC_MSG_RESULT($pythondir) - -AC_SUBST(pythondir) |