Merged revisions 77212-77215 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r77212 | benjamin.peterson | 2010-01-01 09:16:29 -0600 (Fri, 01 Jan 2010) | 1 line

  use pkg-config to find the libffi headers when --with-system-ffi is used #6943
........
  r77213 | benjamin.peterson | 2010-01-01 09:18:38 -0600 (Fri, 01 Jan 2010) | 1 line

  add note
........
  r77214 | benjamin.peterson | 2010-01-01 09:20:06 -0600 (Fri, 01 Jan 2010) | 1 line

  fix indentation
........
  r77215 | benjamin.peterson | 2010-01-01 09:21:13 -0600 (Fri, 01 Jan 2010) | 1 line

  allow --with-dbmliborder to specify that no dbm modules will be built #6491
........
This commit is contained in:
Benjamin Peterson 2010-01-01 16:04:23 +00:00
parent b7b0019a2e
commit d78735d8e3
5 changed files with 138 additions and 6 deletions

View File

@ -214,6 +214,8 @@ GRAMMAR_C= $(srcdir)/Python/graminit.c
GRAMMAR_INPUT= $(srcdir)/Grammar/Grammar GRAMMAR_INPUT= $(srcdir)/Grammar/Grammar
LIBFFI_INCLUDEDIR= @LIBFFI_INCLUDEDIR@
########################################################################## ##########################################################################
# Parser # Parser
PGEN= Parser/pgen$(EXE) PGEN= Parser/pgen$(EXE)

View File

@ -517,6 +517,11 @@ Extension Modules
Build Build
----- -----
- Issue #6491: Allow --with-dbmliborder to specify that no dbms will be built.
- Issue #6943: Use pkg-config to find the libffi headers when the
--with-system-ffi flag is used.
- Issue #7609: Add a --with-system-expat option that causes the system's expat - Issue #7609: Add a --with-system-expat option that causes the system's expat
library to be used for the pyexpat module instead of the one included with library to be used for the pyexpat module instead of the one included with
Python. Python.

117
configure vendored
View File

@ -1,5 +1,5 @@
#! /bin/sh #! /bin/sh
# From configure.in Revision: 77190 . # From configure.in Revision: 77196 .
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for python 3.2. # Generated by GNU Autoconf 2.61 for python 3.2.
# #
@ -715,6 +715,8 @@ CCSHARED
LINKFORSHARED LINKFORSHARED
CFLAGSFORSHARED CFLAGSFORSHARED
SHLIBS SHLIBS
PKG_CONFIG
LIBFFI_INCLUDEDIR
USE_SIGNAL_MODULE USE_SIGNAL_MODULE
SIGNAL_OBJS SIGNAL_OBJS
USE_THREAD_MODULE USE_THREAD_MODULE
@ -15350,6 +15352,115 @@ if test "${with_system_ffi+set}" = set; then
fi fi
if test "$with_system_ffi" = "yes"; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
case $PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
{ echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
echo "${ECHO_T}$PKG_CONFIG" >&6; }
else
{ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6; }
fi
fi
if test -z "$ac_cv_path_PKG_CONFIG"; then
ac_pt_PKG_CONFIG=$PKG_CONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
{ echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
case $ac_pt_PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
if test -n "$ac_pt_PKG_CONFIG"; then
{ echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; }
else
{ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6; }
fi
if test "x$ac_pt_PKG_CONFIG" = x; then
PKG_CONFIG=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
whose name does not start with the host triplet. If you think this
configuration is useful to you, please write to autoconf@gnu.org." >&5
echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
whose name does not start with the host triplet. If you think this
configuration is useful to you, please write to autoconf@gnu.org." >&2;}
ac_tool_warned=yes ;;
esac
PKG_CONFIG=$ac_pt_PKG_CONFIG
fi
else
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
fi
LIBFFI_INCLUDEDIR="`"$PKG_CONFIG" libffi --cflags-only-I 2>/dev/null | sed -e 's/^-I//;s/ *$//'`"
else
LIBFFI_INCLUDEDIR=""
fi
{ echo "$as_me:$LINENO: result: $with_system_ffi" >&5 { echo "$as_me:$LINENO: result: $with_system_ffi" >&5
echo "${ECHO_T}$with_system_ffi" >&6; } echo "${ECHO_T}$with_system_ffi" >&6; }
@ -27732,6 +27843,8 @@ for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF cat >conf$$subs.sed <<_ACEOF
CFLAGSFORSHARED!$CFLAGSFORSHARED$ac_delim CFLAGSFORSHARED!$CFLAGSFORSHARED$ac_delim
SHLIBS!$SHLIBS$ac_delim SHLIBS!$SHLIBS$ac_delim
PKG_CONFIG!$PKG_CONFIG$ac_delim
LIBFFI_INCLUDEDIR!$LIBFFI_INCLUDEDIR$ac_delim
USE_SIGNAL_MODULE!$USE_SIGNAL_MODULE$ac_delim USE_SIGNAL_MODULE!$USE_SIGNAL_MODULE$ac_delim
SIGNAL_OBJS!$SIGNAL_OBJS$ac_delim SIGNAL_OBJS!$SIGNAL_OBJS$ac_delim
USE_THREAD_MODULE!$USE_THREAD_MODULE$ac_delim USE_THREAD_MODULE!$USE_THREAD_MODULE$ac_delim
@ -27754,7 +27867,7 @@ SRCDIRS!$SRCDIRS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF _ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 22; then if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 24; then
break break
elif $ac_last_try; then elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5

View File

@ -1872,6 +1872,14 @@ AC_MSG_CHECKING(for --with-system-ffi)
AC_ARG_WITH(system_ffi, AC_ARG_WITH(system_ffi,
AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library)) AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library))
if test "$with_system_ffi" = "yes"; then
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
LIBFFI_INCLUDEDIR="`"$PKG_CONFIG" libffi --cflags-only-I 2>/dev/null | sed -e 's/^-I//;s/ *$//'`"
else
LIBFFI_INCLUDEDIR=""
fi
AC_SUBST(LIBFFI_INCLUDEDIR)
AC_MSG_RESULT($with_system_ffi) AC_MSG_RESULT($with_system_ffi)
# Check for --with-dbmliborder # Check for --with-dbmliborder

View File

@ -887,14 +887,15 @@ class PyBuildExt(build_ext):
else: else:
missing.append('_sqlite3') missing.append('_sqlite3')
dbm_order = ['gdbm']
# The standard Unix dbm module: # The standard Unix dbm module:
if platform not in ['cygwin']: if platform not in ['cygwin']:
config_args = [arg.strip("'") config_args = [arg.strip("'")
for arg in sysconfig.get_config_var("CONFIG_ARGS").split()] for arg in sysconfig.get_config_var("CONFIG_ARGS").split()]
dbm_args = [arg.split('=')[-1] for arg in config_args dbm_args = [arg for arg in config_args
if arg.startswith('--with-dbmliborder=')] if arg.startswith('--with-dbmliborder=')]
if dbm_args: if dbm_args:
dbm_order = dbm_args[-1].split(":") dbm_order = [arg.split('=')[-1] for arg in dbm_args][-1].split(":")
else: else:
dbm_order = "ndbm:gdbm:bdb".split(":") dbm_order = "ndbm:gdbm:bdb".split(":")
dbmext = None dbmext = None
@ -958,7 +959,8 @@ class PyBuildExt(build_ext):
missing.append('_dbm') missing.append('_dbm')
# Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm: # Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm:
if (self.compiler_obj.find_library_file(lib_dirs, 'gdbm')): if ('gdbm' in dbm_order and
self.compiler_obj.find_library_file(lib_dirs, 'gdbm')):
exts.append( Extension('_gdbm', ['_gdbmmodule.c'], exts.append( Extension('_gdbm', ['_gdbmmodule.c'],
libraries = ['gdbm'] ) ) libraries = ['gdbm'] ) )
else: else:
@ -1558,7 +1560,9 @@ class PyBuildExt(build_ext):
# in /usr/include/ffi # in /usr/include/ffi
inc_dirs.append('/usr/include/ffi') inc_dirs.append('/usr/include/ffi')
ffi_inc = find_file('ffi.h', [], inc_dirs) ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")]
if not ffi_inc:
ffi_inc = find_file('ffi.h', [], inc_dirs)
if ffi_inc is not None: if ffi_inc is not None:
ffi_h = ffi_inc[0] + '/ffi.h' ffi_h = ffi_inc[0] + '/ffi.h'
fp = open(ffi_h) fp = open(ffi_h)