From da4399c509e9acfb372b90785292dcb1a08cf784 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Tue, 14 Oct 2008 15:36:31 +0200 Subject: s3-build: add and use IDL_PATH while building IDL files. Guenther --- source3/Makefile.in | 2 +- source3/script/build_idl.sh | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source3/Makefile.in b/source3/Makefile.in index bd29792701..76fc101af3 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -1198,10 +1198,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/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 -- cgit From 7fb9007f3dbaa50491b851eec6d303b3c17c2c2e Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Tue, 14 Oct 2008 12:25:18 -0400 Subject: Fix very old bug in ASQ --- source4/lib/ldb/modules/asq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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, -- cgit From 5c16a0618579d1dca03f33159390b371e6853604 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 14 Oct 2008 21:46:58 +0200 Subject: Allow auto-detect if --enable-merged-build was not specified. --- source3/configure.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source3/configure.in b/source3/configure.in index 1eba4a0a58..55a6926186 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -6219,7 +6219,8 @@ 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=auto ]) if test x$enable_merged_build = xyes; then MERGED_BUILD=1 -- cgit From b208262c537e92d2f9f74217ae8245fc7d76debf Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 14 Oct 2008 22:20:36 +0200 Subject: Fix path check. --- source4/build/m4/check_path.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 -- cgit From 436346e3adff8804bd9e49bfa7ec4ace8eb4e12a Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 14 Oct 2008 22:26:39 +0200 Subject: Move tests for Python inside function. --- source4/scripting/python/config.m4 | 95 ++++++++++++++++++++++---------------- 1 file changed, 56 insertions(+), 39 deletions(-) diff --git a/source4/scripting/python/config.m4 b/source4/scripting/python/config.m4 index 843c3f7873..d191526c8b 100644 --- a/source4/scripting/python/config.m4 +++ b/source4/scripting/python/config.m4 @@ -7,12 +7,6 @@ AC_ARG_VAR([PYTHON_VERSION],[The installed Python 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 @@ -36,45 +30,68 @@ AC_DEFUN([TRY_LINK_PYTHON], fi ]) -dnl assume no working python -working_python=no +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 -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 + dnl assume no working python + working_python=no -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`]) + 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 -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 + 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 -SMB_EXT_LIB(EXT_LIB_PYTHON, [$PYTHON_LDFLAGS], [$PYTHON_CFLAGS]) + 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 +]) -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_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}')"` -- cgit From ed6d3fd7ab827f48c8e5949805644bb34b1ad5f2 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 14 Oct 2008 22:26:54 +0200 Subject: Move checks for make inside function. --- source4/build/m4/check_make.m4 | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/source4/build/m4/check_make.m4 b/source4/build/m4/check_make.m4 index f497684453..a7609693fe 100644 --- a/source4/build/m4/check_make.m4 +++ b/source4/build/m4/check_make.m4 @@ -6,14 +6,26 @@ dnl Released under the GNU GPL dnl ------------------------------------------------------- dnl +AC_DEFUN([AC_SAMBA_GNU_MAKE], +[ +AC_CACHE_CHECK([whether we have GNU make], samba_cv_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_SAMBA_GNU_MAKE([AC_MSG_RESULT(found)], [AC_MSG_ERROR([Unable to find GNU make])]) 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` -- cgit From 4468279ca27b25a6e562b5c367487294a016c7e3 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 14 Oct 2008 22:27:07 +0200 Subject: Move checks for perl inside function. --- source4/build/m4/check_perl.m4 | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/source4/build/m4/check_perl.m4 b/source4/build/m4/check_perl.m4 index 82ca242499..601798be47 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,16 @@ 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_SAMBA_PERL([], [AC_MSG_ERROR([Please install perl from http://www.perl.com/])]) AC_PATH_PROG(YAPP, yapp, false) -- cgit From 79f1ba875471f797218a0fbc76cbf06b0a862cf8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 14 Oct 2008 22:37:10 +0200 Subject: Make check_*.m4 m4 library files just contain functions that can be executed from other m4 files. --- source4/build/m4/ac_pkg_swig.m4 | 125 ++++++++++++++++++++++++++++++++ source4/build/m4/check_make.m4 | 24 +----- source4/build/m4/check_perl.m4 | 3 - source4/build/m4/check_python.m4 | 89 +++++++++++++++++++++++ source4/build/m4/env.m4 | 49 +++++++++++++ source4/configure.ac | 1 - source4/scripting/python/ac_pkg_swig.m4 | 125 -------------------------------- source4/scripting/python/config.m4 | 100 ------------------------- 8 files changed, 266 insertions(+), 250 deletions(-) create mode 100644 source4/build/m4/ac_pkg_swig.m4 create mode 100644 source4/build/m4/check_python.m4 delete mode 100644 source4/scripting/python/ac_pkg_swig.m4 delete mode 100644 source4/scripting/python/config.m4 diff --git a/source4/build/m4/ac_pkg_swig.m4 b/source4/build/m4/ac_pkg_swig.m4 new file mode 100644 index 0000000000..8d3561a0a7 --- /dev/null +++ b/source4/build/m4/ac_pkg_swig.m4 @@ -0,0 +1,125 @@ +##### http://autoconf-archive.cryp.to/ac_pkg_swig.html +# +# SYNOPSIS +# +# AC_PROG_SWIG([major.minor.micro]) +# +# DESCRIPTION +# +# This macro searches for a SWIG installation on your system. If +# found you should call SWIG via $(SWIG). You can use the optional +# first argument to check if the version of the available SWIG is +# greater than or equal to the value of the argument. It should have +# the format: N[.N[.N]] (N is a number between 0 and 999. Only the +# first N is mandatory.) +# +# If the version argument is given (e.g. 1.3.17), AC_PROG_SWIG checks +# that the swig package is this version number or higher. +# +# In configure.in, use as: +# +# AC_PROG_SWIG(1.3.17) +# SWIG_ENABLE_CXX +# SWIG_MULTI_MODULE_SUPPORT +# SWIG_PYTHON +# +# LAST MODIFICATION +# +# 2006-10-22 +# +# COPYLEFT +# +# Copyright (c) 2006 Sebastian Huber +# Copyright (c) 2006 Alan W. Irwin +# Copyright (c) 2006 Rafael Laboissiere +# Copyright (c) 2006 Andrew Collier +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. +# +# As a special exception, the respective Autoconf Macro's copyright +# owner gives unlimited permission to copy, distribute and modify the +# configure scripts that are the output of Autoconf when processing +# the Macro. You need not follow the terms of the GNU General Public +# License when using or distributing such scripts, even though +# portions of the text of the Macro appear in them. The GNU General +# Public License (GPL) does govern all other use of the material that +# constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the +# Autoconf Macro released by the Autoconf Macro Archive. When you +# make and distribute a modified version of the Autoconf Macro, you +# may extend this special exception to the GPL to apply to your +# modified version as well. + +AC_DEFUN([AC_PROG_SWIG],[ + AC_PATH_PROG([SWIG],[swig]) + if test -z "$SWIG" ; then + AC_MSG_WARN([cannot find 'swig' program. You should look at http://www.swig.org]) + SWIG='no' + elif test -n "$1" ; then + AC_MSG_CHECKING([for SWIG version]) + [swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`] + AC_MSG_RESULT([$swig_version]) + if test -n "$swig_version" ; then + # Calculate the required version number components + [required=$1] + [required_major=`echo $required | sed 's/[^0-9].*//'`] + if test -z "$required_major" ; then + [required_major=0] + fi + [required=`echo $required | sed 's/[0-9]*[^0-9]//'`] + [required_minor=`echo $required | sed 's/[^0-9].*//'`] + if test -z "$required_minor" ; then + [required_minor=0] + fi + [required=`echo $required | sed 's/[0-9]*[^0-9]//'`] + [required_patch=`echo $required | sed 's/[^0-9].*//'`] + if test -z "$required_patch" ; then + [required_patch=0] + fi + # Calculate the available version number components + [available=$swig_version] + [available_major=`echo $available | sed 's/[^0-9].*//'`] + if test -z "$available_major" ; then + [available_major=0] + fi + [available=`echo $available | sed 's/[0-9]*[^0-9]//'`] + [available_minor=`echo $available | sed 's/[^0-9].*//'`] + if test -z "$available_minor" ; then + [available_minor=0] + fi + [available=`echo $available | sed 's/[0-9]*[^0-9]//'`] + [available_patch=`echo $available | sed 's/[^0-9].*//'`] + if test -z "$available_patch" ; then + [available_patch=0] + fi + if test $available_major -ne $required_major \ + -o $available_minor -ne $required_minor \ + -o $available_patch -lt $required_patch ; then + AC_MSG_WARN([SWIG version >= $1 is required if you would like to work on the SWIG bindings. You have $swig_version. ]) + SWIG='no' + else + AC_MSG_NOTICE([SWIG executable is '$SWIG']) + SWIG_LIB=`$SWIG -swiglib` + AC_MSG_NOTICE([SWIG library directory is '$SWIG_LIB']) + fi + else + AC_MSG_WARN([cannot determine SWIG version]) + SWIG='no' + fi + fi + AC_SUBST([SWIG_LIB]) +]) diff --git a/source4/build/m4/check_make.m4 b/source4/build/m4/check_make.m4 index a7609693fe..50cabfdf3c 100644 --- a/source4/build/m4/check_make.m4 +++ b/source4/build/m4/check_make.m4 @@ -25,27 +25,9 @@ else fi ]) -AC_SAMBA_GNU_MAKE([AC_MSG_RESULT(found)], [AC_MSG_ERROR([Unable to find GNU make])]) - +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_perl.m4 b/source4/build/m4/check_perl.m4 index 601798be47..aaec9cf950 100644 --- a/source4/build/m4/check_perl.m4 +++ b/source4/build/m4/check_perl.m4 @@ -30,6 +30,3 @@ else fi ]) -AC_SAMBA_PERL([], [AC_MSG_ERROR([Please install perl from http://www.perl.com/])]) - -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 +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 + ],[ + 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..360ce17a1c 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,55 @@ 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 62f9dc43a0..8fcaefdf6c 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/scripting/python/ac_pkg_swig.m4 b/source4/scripting/python/ac_pkg_swig.m4 deleted file mode 100644 index 8d3561a0a7..0000000000 --- a/source4/scripting/python/ac_pkg_swig.m4 +++ /dev/null @@ -1,125 +0,0 @@ -##### http://autoconf-archive.cryp.to/ac_pkg_swig.html -# -# SYNOPSIS -# -# AC_PROG_SWIG([major.minor.micro]) -# -# DESCRIPTION -# -# This macro searches for a SWIG installation on your system. If -# found you should call SWIG via $(SWIG). You can use the optional -# first argument to check if the version of the available SWIG is -# greater than or equal to the value of the argument. It should have -# the format: N[.N[.N]] (N is a number between 0 and 999. Only the -# first N is mandatory.) -# -# If the version argument is given (e.g. 1.3.17), AC_PROG_SWIG checks -# that the swig package is this version number or higher. -# -# In configure.in, use as: -# -# AC_PROG_SWIG(1.3.17) -# SWIG_ENABLE_CXX -# SWIG_MULTI_MODULE_SUPPORT -# SWIG_PYTHON -# -# LAST MODIFICATION -# -# 2006-10-22 -# -# COPYLEFT -# -# Copyright (c) 2006 Sebastian Huber -# Copyright (c) 2006 Alan W. Irwin -# Copyright (c) 2006 Rafael Laboissiere -# Copyright (c) 2006 Andrew Collier -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. -# -# As a special exception, the respective Autoconf Macro's copyright -# owner gives unlimited permission to copy, distribute and modify the -# configure scripts that are the output of Autoconf when processing -# the Macro. You need not follow the terms of the GNU General Public -# License when using or distributing such scripts, even though -# portions of the text of the Macro appear in them. The GNU General -# Public License (GPL) does govern all other use of the material that -# constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the -# Autoconf Macro released by the Autoconf Macro Archive. When you -# make and distribute a modified version of the Autoconf Macro, you -# may extend this special exception to the GPL to apply to your -# modified version as well. - -AC_DEFUN([AC_PROG_SWIG],[ - AC_PATH_PROG([SWIG],[swig]) - if test -z "$SWIG" ; then - AC_MSG_WARN([cannot find 'swig' program. You should look at http://www.swig.org]) - SWIG='no' - elif test -n "$1" ; then - AC_MSG_CHECKING([for SWIG version]) - [swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`] - AC_MSG_RESULT([$swig_version]) - if test -n "$swig_version" ; then - # Calculate the required version number components - [required=$1] - [required_major=`echo $required | sed 's/[^0-9].*//'`] - if test -z "$required_major" ; then - [required_major=0] - fi - [required=`echo $required | sed 's/[0-9]*[^0-9]//'`] - [required_minor=`echo $required | sed 's/[^0-9].*//'`] - if test -z "$required_minor" ; then - [required_minor=0] - fi - [required=`echo $required | sed 's/[0-9]*[^0-9]//'`] - [required_patch=`echo $required | sed 's/[^0-9].*//'`] - if test -z "$required_patch" ; then - [required_patch=0] - fi - # Calculate the available version number components - [available=$swig_version] - [available_major=`echo $available | sed 's/[^0-9].*//'`] - if test -z "$available_major" ; then - [available_major=0] - fi - [available=`echo $available | sed 's/[0-9]*[^0-9]//'`] - [available_minor=`echo $available | sed 's/[^0-9].*//'`] - if test -z "$available_minor" ; then - [available_minor=0] - fi - [available=`echo $available | sed 's/[0-9]*[^0-9]//'`] - [available_patch=`echo $available | sed 's/[^0-9].*//'`] - if test -z "$available_patch" ; then - [available_patch=0] - fi - if test $available_major -ne $required_major \ - -o $available_minor -ne $required_minor \ - -o $available_patch -lt $required_patch ; then - AC_MSG_WARN([SWIG version >= $1 is required if you would like to work on the SWIG bindings. You have $swig_version. ]) - SWIG='no' - else - AC_MSG_NOTICE([SWIG executable is '$SWIG']) - SWIG_LIB=`$SWIG -swiglib` - AC_MSG_NOTICE([SWIG library directory is '$SWIG_LIB']) - fi - else - AC_MSG_WARN([cannot determine SWIG version]) - SWIG='no' - fi - fi - AC_SUBST([SWIG_LIB]) -]) diff --git a/source4/scripting/python/config.m4 b/source4/scripting/python/config.m4 deleted file mode 100644 index d191526c8b..0000000000 --- a/source4/scripting/python/config.m4 +++ /dev/null @@ -1,100 +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_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 - ],[ - 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 -]) - -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) -- cgit From 009dcbf477aa4b0529a2c9d9bc8b38d84732f0a2 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 14 Oct 2008 22:39:19 +0200 Subject: Give the user a hint about whether a merged build would be possible. --- source3/configure.in | 21 +++++++++++++++++++++ source3/samba4.m4 | 1 - 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/source3/configure.in b/source3/configure.in index 55a6926186..7d05b63122 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -6222,6 +6222,27 @@ AC_ARG_ENABLE(merged-build, [AS_HELP_STRING([--enable-merged-build], [Build Samba 4 as well])], [], [ 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 m4_include(samba4.m4) diff --git a/source3/samba4.m4 b/source3/samba4.m4 index 9cf01507de..2f932689e1 100644 --- a/source3/samba4.m4 +++ b/source3/samba4.m4 @@ -87,7 +87,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) -- cgit From 6e2a470cd281cf39555d6401455be2f3bdca23ec Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 14 Oct 2008 22:40:21 +0200 Subject: Move make check out of cache call to avoid weird formatting. --- source4/build/m4/check_make.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source4/build/m4/check_make.m4 b/source4/build/m4/check_make.m4 index 50cabfdf3c..343913f884 100644 --- a/source4/build/m4/check_make.m4 +++ b/source4/build/m4/check_make.m4 @@ -8,9 +8,9 @@ dnl AC_DEFUN([AC_SAMBA_GNU_MAKE], [ -AC_CACHE_CHECK([whether we have GNU make], samba_cv_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 samba_cv_gnu_make=no -- cgit From ecc108ccb0e8dde06791f207cebd53f17cd06e55 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 14 Oct 2008 22:43:29 +0200 Subject: Fix pkg-config file location. --- source3/samba4.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source3/samba4.m4 b/source3/samba4.m4 index 2f932689e1..1bd9c38c29 100644 --- a/source3/samba4.m4 +++ b/source3/samba4.m4 @@ -21,7 +21,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) -- cgit From ecca199486a30957e7f0dc084d0e21eb3c812c15 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 14 Oct 2008 23:25:12 +0200 Subject: Fix merged build . --- source3/configure.in | 2 +- source3/lib/ldb/libldb.m4 | 32 -------------------------------- source3/samba4.m4 | 20 ++++++++++++++++++++ source4/build/m4/env.m4 | 1 - 4 files changed, 21 insertions(+), 34 deletions(-) diff --git a/source3/configure.in b/source3/configure.in index 7d05b63122..443cdd6161 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -6220,7 +6220,7 @@ fi AC_ARG_ENABLE(merged-build, [AS_HELP_STRING([--enable-merged-build], [Build Samba 4 as well])], -[], [ enable_merged_build=auto ]) +[ enable_merged_build=$enableval ], [ enable_merged_build=auto ]) if test x$enable_merged_build = xauto; then merged_build_possible=yes 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 1bd9c38c29..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) diff --git a/source4/build/m4/env.m4 b/source4/build/m4/env.m4 index 360ce17a1c..4cde95d5e7 100644 --- a/source4/build/m4/env.m4 +++ b/source4/build/m4/env.m4 @@ -77,7 +77,6 @@ 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([ -- cgit