mirror of https://github.com/python/cpython
Patch #1324762: Change --with-cxx to --with-cxx-main.
This commit is contained in:
parent
15be5ec100
commit
0f48d98b74
|
@ -30,6 +30,7 @@ VPATH= @srcdir@
|
|||
|
||||
CC= @CC@
|
||||
CXX= @CXX@
|
||||
MAINCC= @MAINCC@
|
||||
LINKCC= @LINKCC@
|
||||
AR= @AR@
|
||||
RANLIB= @RANLIB@
|
||||
|
@ -157,7 +158,6 @@ LIBC= @LIBC@
|
|||
SYSLIBS= $(LIBM) $(LIBC)
|
||||
SHLIBS= @SHLIBS@
|
||||
|
||||
MAINOBJ= @MAINOBJ@
|
||||
THREADOBJ= @THREADOBJ@
|
||||
DLINCLDIR= @DLINCLDIR@
|
||||
DYNLOADFILE= @DYNLOADFILE@
|
||||
|
@ -326,9 +326,9 @@ LIBRARY_OBJS= \
|
|||
all: $(BUILDPYTHON) oldsharedmods sharedmods
|
||||
|
||||
# Build the interpreter
|
||||
$(BUILDPYTHON): Modules/$(MAINOBJ) $(LIBRARY) $(LDLIBRARY)
|
||||
$(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY)
|
||||
$(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \
|
||||
Modules/$(MAINOBJ) \
|
||||
Modules/python.o \
|
||||
$(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
|
||||
|
||||
platform: $(BUILDPYTHON)
|
||||
|
@ -448,8 +448,8 @@ Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
|
|||
-DVPATH='"$(VPATH)"' \
|
||||
-o $@ $(srcdir)/Modules/getpath.c
|
||||
|
||||
Modules/ccpython.o: $(srcdir)/Modules/ccpython.cc
|
||||
$(CXX) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/ccpython.cc
|
||||
Modules/python.o: $(srcdir)/Modules/python.c
|
||||
$(MAINCC) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/python.c
|
||||
|
||||
|
||||
$(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
|
||||
|
@ -537,7 +537,7 @@ PYTHON_HEADERS= \
|
|||
Include/weakrefobject.h \
|
||||
pyconfig.h
|
||||
|
||||
$(LIBRARY_OBJS) $(MODOBJS) Modules/$(MAINOBJ): $(PYTHON_HEADERS)
|
||||
$(LIBRARY_OBJS) $(MODOBJS) Modules/python.o: $(PYTHON_HEADERS)
|
||||
|
||||
|
||||
######################################################################
|
||||
|
@ -813,7 +813,7 @@ libainstall: all
|
|||
fi; \
|
||||
fi
|
||||
$(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c
|
||||
$(INSTALL_DATA) Modules/$(MAINOBJ) $(DESTDIR)$(LIBPL)/$(MAINOBJ)
|
||||
$(INSTALL_DATA) Modules/python.o $(DESTDIR)$(LIBPL)/python.o
|
||||
$(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
|
||||
$(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
|
||||
$(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
|
||||
|
|
|
@ -82,6 +82,11 @@ Library
|
|||
Build
|
||||
-----
|
||||
|
||||
- Patch #1324762:Remove ccpython.cc; replace --with-cxx with
|
||||
--with-cxx-main. Link with C++ compiler only if --with-cxx-main was
|
||||
specified. (Can be overriden by explicitly setting LINKCC.) Decouple
|
||||
CXX from --with-cxx-main, see description in README.
|
||||
|
||||
- Patch #1429775: Link extension modules with the shared libpython.
|
||||
|
||||
C API
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
/* Minimal main program -- everything is loaded from the library */
|
||||
|
||||
#include "Python.h"
|
||||
|
||||
extern "C"
|
||||
DL_EXPORT(int) Py_Main( int argc, char *argv[] );
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
return Py_Main(argc, argv);
|
||||
}
|
36
README
36
README
|
@ -1045,13 +1045,35 @@ Modules/getpath.o.
|
|||
--with-libs='libs': Add 'libs' to the LIBS that the python interpreter
|
||||
is linked against.
|
||||
|
||||
--with-cxx=<compiler>: Some C++ compilers require that main() is
|
||||
compiled with the C++ if there is any C++ code in the application.
|
||||
Specifically, g++ on a.out systems may require that to support
|
||||
construction of global objects. With this option, the main() function
|
||||
of Python will be compiled with <compiler>; use that only if you
|
||||
plan to use C++ extension modules, and if your compiler requires
|
||||
compilation of main() as a C++ program.
|
||||
--with-cxx-main=<compiler>: If you plan to use C++ extension modules,
|
||||
then -- on some platforms -- you need to compile python's main()
|
||||
function with the C++ compiler. With this option, make will use
|
||||
<compiler> to compile main() *and* to link the python executable.
|
||||
It is likely that the resulting executable depends on the C++
|
||||
runtime library of <compiler>. (The default is --without-cxx-main.)
|
||||
|
||||
There are platforms that do not require you to build Python
|
||||
with a C++ compiler in order to use C++ extension modules.
|
||||
E.g., x86 Linux with ELF shared binaries and GCC 3.x, 4.x is such
|
||||
a platform. We recommend that you configure Python
|
||||
--without-cxx-main on those platforms because a mismatch
|
||||
between the C++ compiler version used to build Python and to
|
||||
build a C++ extension module is likely to cause a crash at
|
||||
runtime.
|
||||
|
||||
The Python installation also stores the variable CXX that
|
||||
determines, e.g., the C++ compiler distutils calls by default
|
||||
to build C++ extensions. If you set CXX on the configure command
|
||||
line to any string of non-zero length, then configure won't
|
||||
change CXX. If you do not preset CXX but pass
|
||||
--with-cxx-main=<compiler>, then configure sets CXX=<compiler>.
|
||||
In all other cases, configure looks for a C++ compiler by
|
||||
some common names (c++, g++, gcc, CC, cxx, cc++, cl) and sets
|
||||
CXX to the first compiler it finds. If it does not find any
|
||||
C++ compiler, then it sets CXX="".
|
||||
|
||||
Similarly, if you want to change the command used to link the
|
||||
python executable, then set LINKCC on the configure command line.
|
||||
|
||||
|
||||
--with-pydebug: Enable additional debugging code to help track down
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#! /bin/sh
|
||||
# From configure.in Revision: 45278 .
|
||||
# From configure.in Revision: 45328 .
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.59 for python 2.5.
|
||||
#
|
||||
|
@ -312,7 +312,7 @@ ac_includes_default="\
|
|||
# include <unistd.h>
|
||||
#endif"
|
||||
|
||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS VERSION SOVERSION CONFIG_ARGS PYTHONFRAMEWORK PYTHONFRAMEWORKDIR PYTHONFRAMEWORKPREFIX PYTHONFRAMEWORKINSTALLDIR MACHDEP SGI_ABI EXTRAPLATDIR EXTRAMACHDEPPATH CONFIGURE_MACOSX_DEPLOYMENT_TARGET CXX MAINOBJ EXEEXT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT CPP EGREP BUILDEXEEXT LIBRARY LDLIBRARY DLLLIBRARY BLDLIBRARY LDLIBRARYDIR INSTSONAME RUNSHARED LINKCC RANLIB ac_ct_RANLIB AR SVNVERSION INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN OPT BASECFLAGS OTHER_LIBTOOL_OPT LIBTOOL_CRUFT SO LDSHARED BLDSHARED CCSHARED LINKFORSHARED CFLAGSFORSHARED SHLIBS USE_SIGNAL_MODULE SIGNAL_OBJS USE_THREAD_MODULE LDLAST THREADOBJ DLINCLDIR DYNLOADFILE MACHDEP_OBJS TRUE LIBOBJS HAVE_GETHOSTBYNAME_R_6_ARG HAVE_GETHOSTBYNAME_R_5_ARG HAVE_GETHOSTBYNAME_R_3_ARG HAVE_GETHOSTBYNAME_R HAVE_GETHOSTBYNAME LIBM LIBC UNICODE_OBJS THREADHEADERS SRCDIRS LTLIBOBJS'
|
||||
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS VERSION SOVERSION CONFIG_ARGS PYTHONFRAMEWORK PYTHONFRAMEWORKDIR PYTHONFRAMEWORKPREFIX PYTHONFRAMEWORKINSTALLDIR MACHDEP SGI_ABI EXTRAPLATDIR EXTRAMACHDEPPATH CONFIGURE_MACOSX_DEPLOYMENT_TARGET CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX MAINCC CPP EGREP BUILDEXEEXT LIBRARY LDLIBRARY DLLLIBRARY BLDLIBRARY LDLIBRARYDIR INSTSONAME RUNSHARED LINKCC RANLIB ac_ct_RANLIB AR SVNVERSION INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN OPT BASECFLAGS OTHER_LIBTOOL_OPT LIBTOOL_CRUFT SO LDSHARED BLDSHARED CCSHARED LINKFORSHARED CFLAGSFORSHARED SHLIBS USE_SIGNAL_MODULE SIGNAL_OBJS USE_THREAD_MODULE LDLAST THREADOBJ DLINCLDIR DYNLOADFILE MACHDEP_OBJS TRUE LIBOBJS HAVE_GETHOSTBYNAME_R_6_ARG HAVE_GETHOSTBYNAME_R_5_ARG HAVE_GETHOSTBYNAME_R_3_ARG HAVE_GETHOSTBYNAME_R HAVE_GETHOSTBYNAME LIBM LIBC UNICODE_OBJS THREADHEADERS SRCDIRS LTLIBOBJS'
|
||||
ac_subst_files=''
|
||||
|
||||
# Initialize some variables set by options.
|
||||
|
@ -859,7 +859,9 @@ Optional Packages:
|
|||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
||||
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
|
||||
--without-gcc never use gcc
|
||||
--with-cxx=<compiler> enable C++ support
|
||||
--with-cxx-main=<compiler>
|
||||
compile main() and link python executable with C++
|
||||
compiler
|
||||
--with-suffix=.exe set executable suffix
|
||||
--with-pydebug build with Py_DEBUG defined
|
||||
--with-libs='lib1 ...' link against additional libs
|
||||
|
@ -1679,258 +1681,6 @@ fi;
|
|||
echo "$as_me:$LINENO: result: $without_gcc" >&5
|
||||
echo "${ECHO_T}$without_gcc" >&6
|
||||
|
||||
|
||||
|
||||
MAINOBJ=python.o
|
||||
echo "$as_me:$LINENO: checking for --with-cxx=<compiler>" >&5
|
||||
echo $ECHO_N "checking for --with-cxx=<compiler>... $ECHO_C" >&6
|
||||
|
||||
# Check whether --with-cxx or --without-cxx was given.
|
||||
if test "${with_cxx+set}" = set; then
|
||||
withval="$with_cxx"
|
||||
|
||||
check_cxx=no
|
||||
case $withval in
|
||||
no) CXX=
|
||||
with_cxx=no;;
|
||||
*) CXX=$withval
|
||||
MAINOBJ=ccpython.o
|
||||
with_cxx=$withval;;
|
||||
esac
|
||||
else
|
||||
|
||||
with_cxx=no
|
||||
check_cxx=yes
|
||||
|
||||
fi;
|
||||
echo "$as_me:$LINENO: result: $with_cxx" >&5
|
||||
echo "${ECHO_T}$with_cxx" >&6
|
||||
|
||||
if test "$with_cxx" = "yes"
|
||||
then
|
||||
{ { echo "$as_me:$LINENO: error: must supply a compiler when using --with-cxx" >&5
|
||||
echo "$as_me: error: must supply a compiler when using --with-cxx" >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
if test "$check_cxx" = "yes"
|
||||
then
|
||||
for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl
|
||||
do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; 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_prog_CXX+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
if test -n "$CXX"; then
|
||||
ac_cv_prog_CXX="$CXX" # Let the user override the test.
|
||||
else
|
||||
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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_prog_CXX="$ac_prog"
|
||||
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
fi
|
||||
fi
|
||||
CXX=$ac_cv_prog_CXX
|
||||
if test -n "$CXX"; then
|
||||
echo "$as_me:$LINENO: result: $CXX" >&5
|
||||
echo "${ECHO_T}$CXX" >&6
|
||||
else
|
||||
echo "$as_me:$LINENO: result: no" >&5
|
||||
echo "${ECHO_T}no" >&6
|
||||
fi
|
||||
|
||||
test -n "$CXX" && break
|
||||
done
|
||||
test -n "$CXX" || CXX="notfound"
|
||||
|
||||
if test "$CXX" = "notfound"
|
||||
then
|
||||
CXX=
|
||||
else
|
||||
ac_ext=cc
|
||||
ac_cpp='$CXXCPP $CPPFLAGS'
|
||||
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
ac_clean_files_save=$ac_clean_files
|
||||
ac_clean_files="$ac_clean_files a.out a.exe b.out"
|
||||
# Try to create an executable without -o first, disregard a.out.
|
||||
# It will help us diagnose broken compilers, and finding out an intuition
|
||||
# of exeext.
|
||||
echo "$as_me:$LINENO: checking for C++ compiler default output file name" >&5
|
||||
echo $ECHO_N "checking for C++ compiler default output file name... $ECHO_C" >&6
|
||||
ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
|
||||
(eval $ac_link_default) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; then
|
||||
# Find the output, starting from the most likely. This scheme is
|
||||
# not robust to junk in `.', hence go to wildcards (a.*) only as a last
|
||||
# resort.
|
||||
|
||||
# Be careful to initialize this variable, since it used to be cached.
|
||||
# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
|
||||
ac_cv_exeext=
|
||||
# b.out is created by i960 compilers.
|
||||
for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
|
||||
do
|
||||
test -f "$ac_file" || continue
|
||||
case $ac_file in
|
||||
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
|
||||
;;
|
||||
conftest.$ac_ext )
|
||||
# This is the source file.
|
||||
;;
|
||||
[ab].out )
|
||||
# We found the default executable, but exeext='' is most
|
||||
# certainly right.
|
||||
break;;
|
||||
*.* )
|
||||
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
|
||||
# FIXME: I believe we export ac_cv_exeext for Libtool,
|
||||
# but it would be cool to find out if it's true. Does anybody
|
||||
# maintain Libtool? --akim.
|
||||
export ac_cv_exeext
|
||||
break;;
|
||||
* )
|
||||
break;;
|
||||
esac
|
||||
done
|
||||
else
|
||||
echo "$as_me: failed program was:" >&5
|
||||
sed 's/^/| /' conftest.$ac_ext >&5
|
||||
|
||||
{ { echo "$as_me:$LINENO: error: C++ compiler cannot create executables
|
||||
See \`config.log' for more details." >&5
|
||||
echo "$as_me: error: C++ compiler cannot create executables
|
||||
See \`config.log' for more details." >&2;}
|
||||
{ (exit 77); exit 77; }; }
|
||||
fi
|
||||
|
||||
ac_exeext=$ac_cv_exeext
|
||||
echo "$as_me:$LINENO: result: $ac_file" >&5
|
||||
echo "${ECHO_T}$ac_file" >&6
|
||||
|
||||
# Check the compiler produces executables we can run. If not, either
|
||||
# the compiler is broken, or we cross compile.
|
||||
echo "$as_me:$LINENO: checking whether the C++ compiler works" >&5
|
||||
echo $ECHO_N "checking whether the C++ compiler works... $ECHO_C" >&6
|
||||
# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
|
||||
# If not cross compiling, check that we can run a simple program.
|
||||
if test "$cross_compiling" != yes; then
|
||||
if { ac_try='./$ac_file'
|
||||
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||
(eval $ac_try) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; }; then
|
||||
cross_compiling=no
|
||||
else
|
||||
if test "$cross_compiling" = maybe; then
|
||||
cross_compiling=yes
|
||||
else
|
||||
{ { echo "$as_me:$LINENO: error: cannot run C++ compiled programs.
|
||||
If you meant to cross compile, use \`--host'.
|
||||
See \`config.log' for more details." >&5
|
||||
echo "$as_me: error: cannot run C++ compiled programs.
|
||||
If you meant to cross compile, use \`--host'.
|
||||
See \`config.log' for more details." >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
echo "$as_me:$LINENO: result: yes" >&5
|
||||
echo "${ECHO_T}yes" >&6
|
||||
|
||||
rm -f a.out a.exe conftest$ac_cv_exeext b.out
|
||||
ac_clean_files=$ac_clean_files_save
|
||||
# Check the compiler produces executables we can run. If not, either
|
||||
# the compiler is broken, or we cross compile.
|
||||
echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
|
||||
echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
|
||||
echo "$as_me:$LINENO: result: $cross_compiling" >&5
|
||||
echo "${ECHO_T}$cross_compiling" >&6
|
||||
|
||||
echo "$as_me:$LINENO: checking for suffix of executables" >&5
|
||||
echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
|
||||
(eval $ac_link) 2>&5
|
||||
ac_status=$?
|
||||
echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||
(exit $ac_status); }; then
|
||||
# If both `conftest.exe' and `conftest' are `present' (well, observable)
|
||||
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
|
||||
# work properly (i.e., refer to `conftest.exe'), while it won't with
|
||||
# `rm'.
|
||||
for ac_file in conftest.exe conftest conftest.*; do
|
||||
test -f "$ac_file" || continue
|
||||
case $ac_file in
|
||||
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
|
||||
*.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
|
||||
export ac_cv_exeext
|
||||
break;;
|
||||
* ) break;;
|
||||
esac
|
||||
done
|
||||
else
|
||||
{ { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
|
||||
See \`config.log' for more details." >&5
|
||||
echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
|
||||
See \`config.log' for more details." >&2;}
|
||||
{ (exit 1); exit 1; }; }
|
||||
fi
|
||||
|
||||
rm -f conftest$ac_cv_exeext
|
||||
echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
|
||||
echo "${ECHO_T}$ac_cv_exeext" >&6
|
||||
|
||||
rm -f conftest.$ac_ext
|
||||
EXEEXT=$ac_cv_exeext
|
||||
ac_exeext=$EXEEXT
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
|
||||
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
# If the user switches compilers, we can't believe the cache
|
||||
if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
|
||||
then
|
||||
|
@ -2872,6 +2622,190 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
|
|||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||
|
||||
|
||||
|
||||
|
||||
echo "$as_me:$LINENO: checking for --with-cxx-main=<compiler>" >&5
|
||||
echo $ECHO_N "checking for --with-cxx-main=<compiler>... $ECHO_C" >&6
|
||||
|
||||
# Check whether --with-cxx_main or --without-cxx_main was given.
|
||||
if test "${with_cxx_main+set}" = set; then
|
||||
withval="$with_cxx_main"
|
||||
|
||||
|
||||
case $withval in
|
||||
no) with_cxx_main=no
|
||||
MAINCC='$(CC)';;
|
||||
yes) with_cxx_main=yes
|
||||
MAINCC='$(CXX)';;
|
||||
*) with_cxx_main=yes
|
||||
MAINCC=$withval
|
||||
if test -z "$CXX"
|
||||
then
|
||||
CXX=$withval
|
||||
fi;;
|
||||
esac
|
||||
else
|
||||
|
||||
with_cxx_main=no
|
||||
MAINCC='$(CC)'
|
||||
|
||||
fi;
|
||||
echo "$as_me:$LINENO: result: $with_cxx_main" >&5
|
||||
echo "${ECHO_T}$with_cxx_main" >&6
|
||||
|
||||
preset_cxx="$CXX"
|
||||
if test -z "$CXX"
|
||||
then
|
||||
case "$CC" in
|
||||
gcc) # Extract the first word of "g++", so it can be a program name with args.
|
||||
set dummy g++; 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_CXX+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
case $CXX in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
ac_cv_path_CXX="$CXX" # Let the user override the test with a path.
|
||||
;;
|
||||
*)
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in notfound
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_path_CXX="$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
|
||||
|
||||
test -z "$ac_cv_path_CXX" && ac_cv_path_CXX="g++"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
CXX=$ac_cv_path_CXX
|
||||
|
||||
if test -n "$CXX"; then
|
||||
echo "$as_me:$LINENO: result: $CXX" >&5
|
||||
echo "${ECHO_T}$CXX" >&6
|
||||
else
|
||||
echo "$as_me:$LINENO: result: no" >&5
|
||||
echo "${ECHO_T}no" >&6
|
||||
fi
|
||||
;;
|
||||
cc) # Extract the first word of "c++", so it can be a program name with args.
|
||||
set dummy c++; 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_CXX+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
case $CXX in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
ac_cv_path_CXX="$CXX" # Let the user override the test with a path.
|
||||
;;
|
||||
*)
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in notfound
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_path_CXX="$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
|
||||
|
||||
test -z "$ac_cv_path_CXX" && ac_cv_path_CXX="c++"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
CXX=$ac_cv_path_CXX
|
||||
|
||||
if test -n "$CXX"; then
|
||||
echo "$as_me:$LINENO: result: $CXX" >&5
|
||||
echo "${ECHO_T}$CXX" >&6
|
||||
else
|
||||
echo "$as_me:$LINENO: result: no" >&5
|
||||
echo "${ECHO_T}no" >&6
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if test "$CXX" = "notfound"
|
||||
then
|
||||
CXX=""
|
||||
fi
|
||||
fi
|
||||
if test -z "$CXX"
|
||||
then
|
||||
for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl
|
||||
do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; 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_prog_CXX+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
if test -n "$CXX"; then
|
||||
ac_cv_prog_CXX="$CXX" # Let the user override the test.
|
||||
else
|
||||
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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_prog_CXX="$ac_prog"
|
||||
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
fi
|
||||
fi
|
||||
CXX=$ac_cv_prog_CXX
|
||||
if test -n "$CXX"; then
|
||||
echo "$as_me:$LINENO: result: $CXX" >&5
|
||||
echo "${ECHO_T}$CXX" >&6
|
||||
else
|
||||
echo "$as_me:$LINENO: result: no" >&5
|
||||
echo "${ECHO_T}no" >&6
|
||||
fi
|
||||
|
||||
test -n "$CXX" && break
|
||||
done
|
||||
test -n "$CXX" || CXX="notfound"
|
||||
|
||||
if test "$CXX" = "notfound"
|
||||
then
|
||||
CXX=""
|
||||
fi
|
||||
fi
|
||||
if test "$preset_cxx" != "$CXX"
|
||||
then
|
||||
{ echo "$as_me:$LINENO: WARNING:
|
||||
|
||||
By default, distutils will build C++ extension modules with \"$CXX\".
|
||||
If this is not intended, then set CXX on the configure command line.
|
||||
" >&5
|
||||
echo "$as_me: WARNING:
|
||||
|
||||
By default, distutils will build C++ extension modules with \"$CXX\".
|
||||
If this is not intended, then set CXX on the configure command line.
|
||||
" >&2;}
|
||||
fi
|
||||
|
||||
|
||||
# checks for UNIX variants that set C preprocessor variables
|
||||
|
||||
ac_ext=c
|
||||
|
@ -3274,22 +3208,7 @@ echo "$as_me:$LINENO: checking LINKCC" >&5
|
|||
echo $ECHO_N "checking LINKCC... $ECHO_C" >&6
|
||||
if test -z "$LINKCC"
|
||||
then
|
||||
if test -z "$CXX"; then
|
||||
LINKCC="\$(PURIFY) \$(CC)"
|
||||
else
|
||||
echo 'extern "C" void foo();int main(){foo();}' > conftest_a.cc
|
||||
$CXX -c conftest_a.cc # 2>&5
|
||||
echo 'void foo(){}' > conftest_b.$ac_ext
|
||||
$CC -c conftest_b.$ac_ext # 2>&5
|
||||
if $CC -o conftest$ac_exeext conftest_a.$ac_objext conftest_b.$ac_objext 2>&5 \
|
||||
&& test -s conftest$ac_exeext && ./conftest$ac_exeext
|
||||
then
|
||||
LINKCC="\$(PURIFY) \$(CC)"
|
||||
else
|
||||
LINKCC="\$(PURIFY) \$(CXX)"
|
||||
fi
|
||||
rm -fr conftest*
|
||||
fi
|
||||
LINKCC='$(PURIFY) $(MAINCC)'
|
||||
case $ac_sys_system in
|
||||
AIX*)
|
||||
exp_extra="\"\""
|
||||
|
@ -22485,15 +22404,15 @@ s,@SGI_ABI@,$SGI_ABI,;t t
|
|||
s,@EXTRAPLATDIR@,$EXTRAPLATDIR,;t t
|
||||
s,@EXTRAMACHDEPPATH@,$EXTRAMACHDEPPATH,;t t
|
||||
s,@CONFIGURE_MACOSX_DEPLOYMENT_TARGET@,$CONFIGURE_MACOSX_DEPLOYMENT_TARGET,;t t
|
||||
s,@CXX@,$CXX,;t t
|
||||
s,@MAINOBJ@,$MAINOBJ,;t t
|
||||
s,@EXEEXT@,$EXEEXT,;t t
|
||||
s,@CC@,$CC,;t t
|
||||
s,@CFLAGS@,$CFLAGS,;t t
|
||||
s,@LDFLAGS@,$LDFLAGS,;t t
|
||||
s,@CPPFLAGS@,$CPPFLAGS,;t t
|
||||
s,@ac_ct_CC@,$ac_ct_CC,;t t
|
||||
s,@EXEEXT@,$EXEEXT,;t t
|
||||
s,@OBJEXT@,$OBJEXT,;t t
|
||||
s,@CXX@,$CXX,;t t
|
||||
s,@MAINCC@,$MAINCC,;t t
|
||||
s,@CPP@,$CPP,;t t
|
||||
s,@EGREP@,$EGREP,;t t
|
||||
s,@BUILDEXEEXT@,$BUILDEXEEXT,;t t
|
||||
|
|
122
configure.in
122
configure.in
|
@ -313,56 +313,6 @@ AC_ARG_WITH(gcc,
|
|||
esac])
|
||||
AC_MSG_RESULT($without_gcc)
|
||||
|
||||
AC_SUBST(CXX)
|
||||
AC_SUBST(MAINOBJ)
|
||||
MAINOBJ=python.o
|
||||
AC_MSG_CHECKING(for --with-cxx=<compiler>)
|
||||
AC_ARG_WITH(cxx,
|
||||
AC_HELP_STRING(--with-cxx=<compiler>, enable C++ support),
|
||||
[
|
||||
check_cxx=no
|
||||
case $withval in
|
||||
no) CXX=
|
||||
with_cxx=no;;
|
||||
*) CXX=$withval
|
||||
MAINOBJ=ccpython.o
|
||||
with_cxx=$withval;;
|
||||
esac], [
|
||||
with_cxx=no
|
||||
check_cxx=yes
|
||||
])
|
||||
AC_MSG_RESULT($with_cxx)
|
||||
|
||||
if test "$with_cxx" = "yes"
|
||||
then
|
||||
AC_MSG_ERROR([must supply a compiler when using --with-cxx])
|
||||
fi
|
||||
|
||||
dnl The following fragment works similar to AC_PROG_CXX.
|
||||
dnl It does not fail if CXX is not found, and it is not executed if
|
||||
dnl --without-cxx was given.
|
||||
dnl Finally, it does not test whether CXX is g++.
|
||||
|
||||
dnl Autoconf 2.5x does not have AC_PROG_CXX_WORKS anymore
|
||||
ifdef([AC_PROG_CXX_WORKS],[],
|
||||
[AC_DEFUN([AC_PROG_CXX_WORKS],
|
||||
[AC_LANG_PUSH(C++)dnl
|
||||
_AC_COMPILER_EXEEXT
|
||||
AC_LANG_POP()
|
||||
]
|
||||
)])
|
||||
|
||||
if test "$check_cxx" = "yes"
|
||||
then
|
||||
AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
|
||||
if test "$CXX" = "notfound"
|
||||
then
|
||||
CXX=
|
||||
else
|
||||
AC_PROG_CXX_WORKS
|
||||
fi
|
||||
fi
|
||||
|
||||
# If the user switches compilers, we can't believe the cache
|
||||
if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
|
||||
then
|
||||
|
@ -372,6 +322,61 @@ fi
|
|||
|
||||
AC_PROG_CC
|
||||
|
||||
AC_SUBST(CXX)
|
||||
AC_SUBST(MAINCC)
|
||||
AC_MSG_CHECKING(for --with-cxx-main=<compiler>)
|
||||
AC_ARG_WITH(cxx_main,
|
||||
AC_HELP_STRING([--with-cxx-main=<compiler>],
|
||||
[compile main() and link python executable with C++ compiler]),
|
||||
[
|
||||
|
||||
case $withval in
|
||||
no) with_cxx_main=no
|
||||
MAINCC='$(CC)';;
|
||||
yes) with_cxx_main=yes
|
||||
MAINCC='$(CXX)';;
|
||||
*) with_cxx_main=yes
|
||||
MAINCC=$withval
|
||||
if test -z "$CXX"
|
||||
then
|
||||
CXX=$withval
|
||||
fi;;
|
||||
esac], [
|
||||
with_cxx_main=no
|
||||
MAINCC='$(CC)'
|
||||
])
|
||||
AC_MSG_RESULT($with_cxx_main)
|
||||
|
||||
preset_cxx="$CXX"
|
||||
if test -z "$CXX"
|
||||
then
|
||||
case "$CC" in
|
||||
gcc) AC_PATH_PROG(CXX, [g++], [g++], [notfound]) ;;
|
||||
cc) AC_PATH_PROG(CXX, [c++], [c++], [notfound]) ;;
|
||||
esac
|
||||
if test "$CXX" = "notfound"
|
||||
then
|
||||
CXX=""
|
||||
fi
|
||||
fi
|
||||
if test -z "$CXX"
|
||||
then
|
||||
AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
|
||||
if test "$CXX" = "notfound"
|
||||
then
|
||||
CXX=""
|
||||
fi
|
||||
fi
|
||||
if test "$preset_cxx" != "$CXX"
|
||||
then
|
||||
AC_MSG_WARN([
|
||||
|
||||
By default, distutils will build C++ extension modules with "$CXX".
|
||||
If this is not intended, then set CXX on the configure command line.
|
||||
])
|
||||
fi
|
||||
|
||||
|
||||
# checks for UNIX variants that set C preprocessor variables
|
||||
AC_AIX
|
||||
|
||||
|
@ -480,22 +485,7 @@ AC_SUBST(LINKCC)
|
|||
AC_MSG_CHECKING(LINKCC)
|
||||
if test -z "$LINKCC"
|
||||
then
|
||||
if test -z "$CXX"; then
|
||||
LINKCC="\$(PURIFY) \$(CC)"
|
||||
else
|
||||
echo 'extern "C" void foo();int main(){foo();}' > conftest_a.cc
|
||||
$CXX -c conftest_a.cc # 2>&5
|
||||
echo 'void foo(){}' > conftest_b.$ac_ext
|
||||
$CC -c conftest_b.$ac_ext # 2>&5
|
||||
if $CC -o conftest$ac_exeext conftest_a.$ac_objext conftest_b.$ac_objext 2>&5 \
|
||||
&& test -s conftest$ac_exeext && ./conftest$ac_exeext
|
||||
then
|
||||
LINKCC="\$(PURIFY) \$(CC)"
|
||||
else
|
||||
LINKCC="\$(PURIFY) \$(CXX)"
|
||||
fi
|
||||
rm -fr conftest*
|
||||
fi
|
||||
LINKCC='$(PURIFY) $(MAINCC)'
|
||||
case $ac_sys_system in
|
||||
AIX*)
|
||||
exp_extra="\"\""
|
||||
|
|
Loading…
Reference in New Issue