1 dnl ***********************************************
2 dnl * Please run autoreconf to test your changes! *
3 dnl ***********************************************
4 dnl NOTE: autoconf 2.64 doesn't seem to work (use 2.61).
6 # Set VERSION so we only need to edit in one place (i.e., here)
7 m4_define(PYTHON_VERSION, 3.1)
9 AC_REVISION($Revision$)
11 AC_INIT(python, PYTHON_VERSION, http://bugs.python.org/)
12 AC_CONFIG_SRCDIR([Include/object.h])
13 AC_CONFIG_HEADER(pyconfig.h)
15 dnl Ensure that if prefix is specified, it does not end in a slash. If
16 dnl it does, we get path names containing '//' which is both ugly and
17 dnl can cause trouble.
19 dnl Last slash shouldn't be stripped if prefix=/
20 if test "$prefix" != "/"; then
21 prefix=`echo "$prefix" | sed -e 's/\/$//g'`
24 dnl This is for stuff that absolutely must end up in pyconfig.h.
25 dnl Please use pyport.h instead, if possible.
31 /* Define the macros needed if on a UnixWare 7.x system. */
32 #if defined(__USLC__) && defined(__SCO_VERSION__)
33 #define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
36 #endif /*Py_PYCONFIG_H*/
39 # We don't use PACKAGE_ variables, and they cause conflicts
40 # with other autoconf-based packages that include Python.h
41 grep -v 'define PACKAGE_' <confdefs.h >confdefs.h.new
43 mv confdefs.h.new confdefs.h
46 VERSION=PYTHON_VERSION
51 # The later defininition of _XOPEN_SOURCE disables certain features
52 # on Linux, so we need _GNU_SOURCE to re-enable them (makedev, tm_zone).
53 AC_DEFINE(_GNU_SOURCE, 1, [Define on Linux to activate all library features])
55 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
56 # certain features on NetBSD, so we need _NETBSD_SOURCE to re-enable
58 AC_DEFINE(_NETBSD_SOURCE, 1, [Define on NetBSD to activate all library features])
60 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
61 # certain features on FreeBSD, so we need __BSD_VISIBLE to re-enable
63 AC_DEFINE(__BSD_VISIBLE, 1, [Define on FreeBSD to activate all library features])
65 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
66 # u_int on Irix 5.3. Defining _BSD_TYPES brings it back.
67 AC_DEFINE(_BSD_TYPES, 1, [Define on Irix to enable u_int])
69 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
70 # certain features on Mac OS X, so we need _DARWIN_C_SOURCE to re-enable
72 AC_DEFINE(_DARWIN_C_SOURCE, 1, [Define on Darwin to activate all library features])
75 define_xopen_source=yes
77 # Arguments passed to configure.
79 CONFIG_ARGS="$ac_configure_args"
81 AC_ARG_ENABLE(universalsdk,
82 AC_HELP_STRING(--enable-universalsdk@<:@=SDKDIR@:>@, Build against Mac OS X 10.4u SDK (ppc/i386)),
86 enableval=/Developer/SDKs/MacOSX10.4u.sdk
95 UNIVERSALSDK=$enableval
102 AC_SUBST(UNIVERSALSDK)
105 AC_SUBST(ARCH_RUN_32BIT)
107 UNIVERSAL_ARCHS="32-bit"
108 AC_MSG_CHECKING(for --with-universal-archs)
109 AC_ARG_WITH(universal-archs,
110 AC_HELP_STRING(--with-universal-archs=ARCH, select architectures for universal build ("32-bit", "64-bit" or "all")),
112 AC_MSG_RESULT($withval)
113 UNIVERSAL_ARCHS="$withval"
116 AC_MSG_RESULT(32-bit)
121 AC_ARG_WITH(framework-name,
122 AC_HELP_STRING(--with-framework-name=FRAMEWORK,
123 specify an alternate name of the framework built with --enable-framework),
125 PYTHONFRAMEWORK=${withval}
126 PYTHONFRAMEWORKDIR=${withval}.framework
127 PYTHONFRAMEWORKIDENTIFIER=org.python.`echo $withval | tr '[A-Z]' '[a-z]'`
129 PYTHONFRAMEWORK=Python
130 PYTHONFRAMEWORKDIR=Python.framework
131 PYTHONFRAMEWORKIDENTIFIER=org.python.python
133 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
134 AC_ARG_ENABLE(framework,
135 AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework),
139 enableval=/Library/Frameworks
144 PYTHONFRAMEWORKDIR=no-framework
145 PYTHONFRAMEWORKPREFIX=
146 PYTHONFRAMEWORKINSTALLDIR=
147 FRAMEWORKINSTALLFIRST=
148 FRAMEWORKINSTALLLAST=
149 FRAMEWORKALTINSTALLFIRST=
150 FRAMEWORKALTINSTALLLAST=
151 if test "x${prefix}" = "xNONE"; then
152 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
154 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
159 PYTHONFRAMEWORKPREFIX=$enableval
160 PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
161 FRAMEWORKINSTALLFIRST="frameworkinstallstructure"
162 FRAMEWORKALTINSTALLFIRST="frameworkinstallstructure "
163 if test "$UNIVERSAL_ARCHS" = "all"
165 FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps4way frameworkinstallunixtools4way"
166 FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps4way frameworkaltinstallunixtools4way"
168 FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools"
169 FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools"
172 if test "x${prefix}" = "xNONE" ; then
173 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
175 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
177 prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
179 # Add files for Mac specific code to the list of output
181 AC_CONFIG_FILES(Mac/Makefile)
182 AC_CONFIG_FILES(Mac/PythonLauncher/Makefile)
183 AC_CONFIG_FILES(Mac/Resources/framework/Info.plist)
184 AC_CONFIG_FILES(Mac/Resources/app/Info.plist)
188 PYTHONFRAMEWORKDIR=no-framework
189 PYTHONFRAMEWORKPREFIX=
190 PYTHONFRAMEWORKINSTALLDIR=
191 FRAMEWORKINSTALLFIRST=
192 FRAMEWORKINSTALLLAST=
193 FRAMEWORKALTINSTALLFIRST=
194 FRAMEWORKALTINSTALLLAST=
195 if test "x${prefix}" = "xNONE" ; then
196 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
198 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
202 if test "$UNIVERSAL_ARCHS" = "all"
204 FRAMEWORKINSTALLLAST=update4wayuniversal
205 FRAMEWORKALTINSTALLLAST=update4wayuniversal
208 AC_SUBST(PYTHONFRAMEWORK)
209 AC_SUBST(PYTHONFRAMEWORKIDENTIFIER)
210 AC_SUBST(PYTHONFRAMEWORKDIR)
211 AC_SUBST(PYTHONFRAMEWORKPREFIX)
212 AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)
213 AC_SUBST(FRAMEWORKINSTALLFIRST)
214 AC_SUBST(FRAMEWORKINSTALLLAST)
215 AC_SUBST(FRAMEWORKALTINSTALLFIRST)
216 AC_SUBST(FRAMEWORKALTINSTALLLAST)
217 AC_SUBST(FRAMEWORKUNIXTOOLSPREFIX)
220 ## AC_HELP_STRING(--with-dyld,
221 ## Use (OpenStep|Rhapsody) dynamic linker))
223 # Set name for machine-dependent library files
225 AC_MSG_CHECKING(MACHDEP)
226 if test -z "$MACHDEP"
228 ac_sys_system=`uname -s`
229 if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \
230 -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
231 ac_sys_release=`uname -v`
233 ac_sys_release=`uname -r`
235 ac_md_system=`echo $ac_sys_system |
236 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
237 ac_md_release=`echo $ac_sys_release |
238 tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
239 MACHDEP="$ac_md_system$ac_md_release"
242 cygwin*) MACHDEP="cygwin";;
243 darwin*) MACHDEP="darwin";;
244 atheos*) MACHDEP="atheos";;
245 irix646) MACHDEP="irix6";;
246 '') MACHDEP="unknown";;
250 # Some systems cannot stand _XOPEN_SOURCE being defined at all; they
251 # disable features if it is defined, without any means to access these
252 # features as extensions. For these systems, we skip the definition of
253 # _XOPEN_SOURCE. Before adding a system to the list to gain access to
254 # some feature, make sure there is no alternative way to access this
255 # feature. Also, when using wildcards, make sure you have verified the
256 # need for not defining _XOPEN_SOURCE on all systems matching the
257 # wildcard, and that the wildcard does not include future systems
258 # (which may remove their limitations).
259 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
260 case $ac_sys_system/$ac_sys_release in
261 # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined,
262 # even though select is a POSIX function. Reported by J. Ribbens.
263 # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
264 OpenBSD/2.* | OpenBSD/3.@<:@0123456789@:>@ | OpenBSD/4.@<:@0123@:>@)
265 define_xopen_source=no
266 # OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is
267 # also defined. This can be overridden by defining _BSD_SOURCE
268 # As this has a different meaning on Linux, only define it on OpenBSD
269 AC_DEFINE(_BSD_SOURCE, 1, [Define on OpenBSD to activate all library features])
271 # Defining _XOPEN_SOURCE on NetBSD version prior to the introduction of
272 # _NETBSD_SOURCE disables certain features (eg. setgroups). Reported by
274 NetBSD/1.5 | NetBSD/1.5.* | NetBSD/1.6 | NetBSD/1.6.* | NetBSD/1.6@<:@A-S@:>@)
275 define_xopen_source=no;;
276 # On Solaris 2.6, sys/wait.h is inconsistent in the usage
277 # of union __?sigval. Reported by Stuart Bishop.
279 define_xopen_source=no;;
280 # On UnixWare 7, u_long is never defined with _XOPEN_SOURCE,
281 # but used in /usr/include/netinet/tcp.h. Reported by Tim Rice.
282 # Reconfirmed for 7.1.4 by Martin v. Loewis.
283 OpenUNIX/8.0.0| UnixWare/7.1.@<:@0-4@:>@)
284 define_xopen_source=no;;
285 # On OpenServer 5, u_short is never defined with _XOPEN_SOURCE,
286 # but used in struct sockaddr.sa_family. Reported by Tim Rice.
288 define_xopen_source=no;;
289 # On FreeBSD 4, the math functions C89 does not cover are never defined
290 # with _XOPEN_SOURCE and __BSD_VISIBLE does not re-enable them.
292 define_xopen_source=no;;
293 # On MacOS X 10.2, a bug in ncurses.h means that it craps out if
294 # _XOPEN_EXTENDED_SOURCE is defined. Apparently, this is fixed in 10.3, which
295 # identifies itself as Darwin/7.*
296 # On Mac OS X 10.4, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
297 # disables platform specific features beyond repair.
298 # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
299 # has no effect, don't bother defining them
300 Darwin/@<:@6789@:>@.*)
301 define_xopen_source=no;;
302 # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
303 # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
304 # or has another value. By not (re)defining it, the defaults come in place.
306 define_xopen_source=no;;
308 if test `uname -r` -eq 1; then
309 define_xopen_source=no
312 # On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from
313 # defining NI_NUMERICHOST.
315 define_xopen_source=no
320 if test $define_xopen_source = yes
322 # On Solaris w/ g++ it appears that _XOPEN_SOURCE has to be
323 # defined precisely as g++ defines it
324 # Furthermore, on Solaris 10, XPG6 requires the use of a C99
326 case $ac_sys_system/$ac_sys_release in
327 SunOS/5.8|SunOS/5.9|SunOS/5.10)
328 AC_DEFINE(_XOPEN_SOURCE, 500,
329 Define to the level of X/Open that your system supports)
332 AC_DEFINE(_XOPEN_SOURCE, 600,
333 Define to the level of X/Open that your system supports)
337 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
338 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
339 # several APIs are not declared. Since this is also needed in some
340 # cases for HP-UX, we define it globally.
341 # except for Solaris 10, where it must not be defined,
342 # as it implies XPG4.2
343 case $ac_sys_system/$ac_sys_release in
347 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1,
348 Define to activate Unix95-and-earlier features)
352 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
357 # SGI compilers allow the specification of the both the ABI and the
358 # ISA on the command line. Depending on the values of these switches,
359 # different and often incompatable code will be generated.
361 # The SGI_ABI variable can be used to modify the CC and LDFLAGS and
362 # thus supply support for various ABI/ISA combinations. The MACHDEP
363 # variable is also adjusted.
366 if test ! -z "$SGI_ABI"
369 LDFLAGS="$SGI_ABI $LDFLAGS"
370 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
372 AC_MSG_RESULT($MACHDEP)
374 # Record the configure-time value of MACOSX_DEPLOYMENT_TARGET,
375 # it may influence the way we can build extensions, so distutils
377 AC_SUBST(CONFIGURE_MACOSX_DEPLOYMENT_TARGET)
378 AC_SUBST(EXPORT_MACOSX_DEPLOYMENT_TARGET)
379 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
380 EXPORT_MACOSX_DEPLOYMENT_TARGET='#'
382 AC_MSG_CHECKING(machine type as reported by uname -m)
383 ac_sys_machine=`uname -m`
384 AC_MSG_RESULT($ac_sys_machine)
386 # checks for alternative programs
388 # compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
389 # for debug/optimization stuff. BASECFLAGS is for flags that are required
390 # just to get things to compile and link. Users are free to override OPT
391 # when running configure or make. The build should not break if they do.
392 # BASECFLAGS should generally not be messed with, however.
394 # XXX shouldn't some/most/all of this code be merged with the stuff later
395 # on that fiddles with OPT and BASECFLAGS?
396 AC_MSG_CHECKING(for --without-gcc)
398 AC_HELP_STRING(--without-gcc,never use gcc),
406 without_gcc=$withval;;
408 case $ac_sys_system in
416 AC_MSG_RESULT($without_gcc)
418 # If the user switches compilers, we can't believe the cache
419 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
421 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
422 (it is also a good idea to do 'make clean' before compiling)])
429 AC_MSG_CHECKING(for --with-cxx-main=<compiler>)
430 AC_ARG_WITH(cxx_main,
431 AC_HELP_STRING([--with-cxx-main=<compiler>],
432 [compile main() and link python executable with C++ compiler]),
438 yes) with_cxx_main=yes
450 AC_MSG_RESULT($with_cxx_main)
456 gcc) AC_PATH_PROG(CXX, [g++], [g++], [notfound]) ;;
457 cc) AC_PATH_PROG(CXX, [c++], [c++], [notfound]) ;;
459 if test "$CXX" = "notfound"
466 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
467 if test "$CXX" = "notfound"
472 if test "$preset_cxx" != "$CXX"
476 By default, distutils will build C++ extension modules with "$CXX".
477 If this is not intended, then set CXX on the configure command line.
482 # checks for UNIX variants that set C preprocessor variables
485 # Check for unsupported systems
486 case $ac_sys_system/$ac_sys_release in
488 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
489 echo See README for details.
494 AC_MSG_CHECKING(for --with-suffix)
496 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
503 AC_MSG_RESULT($EXEEXT)
505 # Test whether we're running on a non-case-sensitive system, in which
506 # case we give a warning if no ext is given
507 AC_SUBST(BUILDEXEEXT)
508 AC_MSG_CHECKING(for case-insensitive build directory)
509 if test ! -d CaseSensitiveTestDir; then
510 mkdir CaseSensitiveTestDir
513 if test -d casesensitivetestdir
521 rmdir CaseSensitiveTestDir
526 gcc) CC="$CC -D_HAVE_BSDI";;
530 case $ac_sys_system in
533 cc|*/cc) CC="$CC -Ae";;
537 cc) CC="$CC -Wl,-Bexport";;
540 # Some functions have a prototype only with that define, e.g. confstr
541 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
547 AC_MSG_CHECKING(LIBRARY)
548 if test -z "$LIBRARY"
550 LIBRARY='libpython$(VERSION).a'
552 AC_MSG_RESULT($LIBRARY)
554 # LDLIBRARY is the name of the library to link against (as opposed to the
555 # name of the library into which to insert object files). BLDLIBRARY is also
556 # the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
557 # is blank as the main program is not linked directly against LDLIBRARY.
558 # LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
559 # systems without shared libraries, LDLIBRARY is the same as LIBRARY
560 # (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
561 # DLLLIBRARY is the shared (i.e., DLL) library.
563 # RUNSHARED is used to run shared python without installed libraries
565 # INSTSONAME is the name of the shared library that will be use to install
566 # on the system - some systems like version suffix, others don't
570 AC_SUBST(LDLIBRARYDIR)
574 BLDLIBRARY='$(LDLIBRARY)'
575 INSTSONAME='$(LDLIBRARY)'
580 # LINKCC is the command that links the python executable -- default is $(CC).
581 # If CXX is set, and if it is needed to link a main function that was
582 # compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
583 # python might then depend on the C++ runtime
584 # This is altered for AIX in order to build the export list before
587 AC_MSG_CHECKING(LINKCC)
590 LINKCC='$(PURIFY) $(MAINCC)'
591 case $ac_sys_system in
594 if test $ac_sys_release -ge 5 -o \
595 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
598 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
600 LINKCC="$LINKCC -L/usr/lib/ia64l64";;
602 # qcc must be used because the other compilers do not
607 AC_MSG_RESULT($LINKCC)
609 # GNULD is set to "yes" if the GNU linker is used. If this goes wrong
610 # make sure we default having it set to "no": this is used by
611 # distutils.unixccompiler to know if it should add --enable-new-dtags
612 # to linker command lines, and failing to detect GNU ld simply results
613 # in the same bahaviour as before.
615 AC_MSG_CHECKING(for GNU ld)
617 if test "$GCC" = yes; then
618 ac_prog=`$CC -print-prog-name=ld`
620 case `"$ac_prog" -V 2>&1 < /dev/null` in
626 AC_MSG_RESULT($GNULD)
628 AC_MSG_CHECKING(for --enable-shared)
629 AC_ARG_ENABLE(shared,
630 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
632 if test -z "$enable_shared"
634 case $ac_sys_system in
636 enable_shared="yes";;
641 AC_MSG_RESULT($enable_shared)
643 AC_MSG_CHECKING(for --enable-profiling)
644 AC_ARG_ENABLE(profiling,
645 AC_HELP_STRING(--enable-profiling, enable C-level code profiling),
648 AC_TRY_RUN([int main() { return 0; }],
649 ac_enable_profiling="yes",
650 ac_enable_profiling="no",
651 ac_enable_profiling="no")
653 AC_MSG_RESULT($ac_enable_profiling)
655 case "$ac_enable_profiling" in
657 BASECFLAGS="-pg $BASECFLAGS"
658 LDFLAGS="-pg $LDFLAGS"
662 AC_MSG_CHECKING(LDLIBRARY)
664 # MacOSX framework builds need more magic. LDLIBRARY is the dynamic
665 # library that we build, but we do not want to link against it (we
666 # will find it with a -framework option). For this reason there is an
667 # extra variable BLDLIBRARY against which Python and the extension
668 # modules are linked, BLDLIBRARY. This is normally the same as
669 # LDLIBRARY, but empty for MacOSX framework builds.
670 if test "$enable_framework"
672 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
673 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
676 BLDLIBRARY='$(LDLIBRARY)'
679 # Other platforms follow
680 if test $enable_shared = "yes"; then
681 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
682 case $ac_sys_system in
684 LDLIBRARY='libpython$(VERSION).dll.a'
685 DLLLIBRARY='libpython$(VERSION).dll'
688 LDLIBRARY='libpython$(VERSION).so'
689 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
690 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
691 INSTSONAME="$LDLIBRARY".$SOVERSION
693 Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*)
694 LDLIBRARY='libpython$(VERSION).so'
695 BLDLIBRARY='-L. -lpython$(VERSION)'
696 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
697 case $ac_sys_system in
699 SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
702 INSTSONAME="$LDLIBRARY".$SOVERSION
707 LDLIBRARY='libpython$(VERSION).so'
710 LDLIBRARY='libpython$(VERSION).sl'
713 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
714 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
717 LDLIBRARY='libpython$(VERSION).so'
718 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
719 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
722 LDLIBRARY='libpython$(VERSION).so'
723 BLDLIBRARY='-L. -lpython$(VERSION)'
724 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
727 LDLIBRARY='libpython$(VERSION).dylib'
728 BLDLIBRARY='-L. -lpython$(VERSION)'
729 RUNSHARED='DYLD_LIBRARY_PATH=`pwd`:${DYLD_LIBRARY_PATH}'
733 else # shared is disabled
734 case $ac_sys_system in
736 BLDLIBRARY='$(LIBRARY)'
737 LDLIBRARY='libpython$(VERSION).dll.a'
742 AC_MSG_RESULT($LDLIBRARY)
746 AC_CHECK_PROGS(AR, ar aal, ar)
748 # tweak ARFLAGS only if the user didn't set it on the command line
750 if test -z "$ARFLAGS"
756 AC_CHECK_PROG(SVNVERSION, svnversion, found, not-found)
757 if test $SVNVERSION = found
759 SVNVERSION="svnversion \$(srcdir)"
761 SVNVERSION="echo Unversioned directory"
766 # install -d does not work on BSDI or HP-UX
767 if test -z "$INSTALL"
769 INSTALL="${srcdir}/install-sh -c"
774 # Not every filesystem supports hard links
776 if test -z "$LN" ; then
777 case $ac_sys_system in
778 CYGWIN*) LN="ln -s";;
779 atheos*) LN="ln -s";;
784 # Check for --with-pydebug
785 AC_MSG_CHECKING(for --with-pydebug)
787 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
789 if test "$withval" != no
791 AC_DEFINE(Py_DEBUG, 1,
792 [Define if you want to build an interpreter with many run-time checks.])
795 else AC_MSG_RESULT(no); Py_DEBUG='false'
799 # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
800 # merged with this chunk of code?
802 # Optimizer/debugger flags
803 # ------------------------
804 # (The following bit of code is complicated enough - please keep things
805 # indented properly. Just pretend you're editing Python code. ;-)
807 # There are two parallel sets of case statements below, one that checks to
808 # see if OPT was set and one that does BASECFLAGS setting based upon
809 # compiler and platform. BASECFLAGS tweaks need to be made even if the
812 # tweak OPT based on compiler and platform, only if the user didn't set
813 # it on the command line
819 if test "$CC" != 'g++' ; then
820 STRICT_PROTO="-Wstrict-prototypes"
822 # For gcc 4.x we need to use -fwrapv so lets check if its supported
823 if "$CC" -v --help 2>/dev/null |grep -- -fwrapv > /dev/null; then
826 case $ac_cv_prog_cc_g in
828 if test "$Py_DEBUG" = 'true' ; then
829 # Optimization messes up debuggers, so turn it off for
831 OPT="-g -Wall $STRICT_PROTO"
833 OPT="-g $WRAP -O3 -Wall $STRICT_PROTO"
837 OPT="-O3 -Wall $STRICT_PROTO"
840 case $ac_sys_system in
841 SCO_SV*) OPT="$OPT -m486 -DSCO5"
851 # The current (beta) Monterey compiler dies with optimizations
852 # XXX what is Monterey? Does it still die w/ -O? Can we get rid of this?
853 case $ac_sys_system in
863 # The -arch flags for universal builds on OSX
864 UNIVERSAL_ARCH_FLAGS=
865 AC_SUBST(UNIVERSAL_ARCH_FLAGS)
867 # tweak BASECFLAGS based on compiler and platform
870 # Python violates C99 rules, by casting between incompatible
871 # pointer types. GCC may generate bad code as a result of that,
872 # so use -fno-strict-aliasing if supported.
873 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
875 CC="$CC -fno-strict-aliasing"
876 AC_TRY_RUN([int main() { return 0; }],
877 ac_cv_no_strict_aliasing_ok=yes,
878 ac_cv_no_strict_aliasing_ok=no,
879 ac_cv_no_strict_aliasing_ok=no)
881 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
882 if test $ac_cv_no_strict_aliasing_ok = yes
884 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
887 # if using gcc on alpha, use -mieee to get (near) full IEEE 754
888 # support. Without this, treatment of subnormals doesn't follow
890 case $ac_sys_machine in
892 BASECFLAGS="$BASECFLAGS -mieee"
896 case $ac_sys_system in
898 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
900 # is there any other compiler on Darwin besides gcc?
902 # -Wno-long-double, -no-cpp-precomp, and -mno-fused-madd
903 # used to be here, but non-Apple gcc doesn't accept them.
906 if test "${enable_universalsdk}"; then
907 UNIVERSAL_ARCH_FLAGS=""
908 if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
909 UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
912 elif test "$UNIVERSAL_ARCHS" = "64-bit" ; then
913 UNIVERSAL_ARCH_FLAGS="-arch ppc64 -arch x86_64"
915 elif test "$UNIVERSAL_ARCHS" = "all" ; then
916 UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
917 ARCH_RUN_32BIT="arch -i386 -ppc"
920 AC_MSG_ERROR([proper usage is --with-universalarch=32-bit|64-bit|all])
925 BASECFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${BASECFLAGS}"
926 tgt=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
927 if test "${UNIVERSALSDK}" != "/" -a "${tgt}" '>' '10.4' ; then
928 CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
932 # Calculate the right deployment target for this build.
934 cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
935 if test ${cur_target} '>' 10.2; then
938 if test "${UNIVERSAL_ARCHS}" = "all"; then
939 # Ensure that the default platform for a 4-way
940 # universal build is OSX 10.5, that's the first
941 # OS release where 4-way builds make sense.
944 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
946 # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
947 # environment with a value that is the same as what we'll use
948 # in the Makefile to ensure that we'll get the same compiler
949 # environment during configure and build time.
950 MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
951 export MACOSX_DEPLOYMENT_TARGET
952 EXPORT_MACOSX_DEPLOYMENT_TARGET=''
956 BASECFLAGS="$BASECFLAGS -mieee"
962 case $ac_sys_system in
964 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
967 BASECFLAGS="$BASECFLAGS -ieee -std"
970 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
976 if test "$Py_DEBUG" = 'true'; then
982 if test "$ac_arch_flags"
984 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
987 # disable check for icc since it seems to pass, but generates a warning
990 ac_cv_opt_olimit_ok=no
993 AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
994 AC_CACHE_VAL(ac_cv_opt_olimit_ok,
996 CC="$CC -OPT:Olimit=0"
997 AC_TRY_RUN([int main() { return 0; }],
998 ac_cv_opt_olimit_ok=yes,
999 ac_cv_opt_olimit_ok=no,
1000 ac_cv_opt_olimit_ok=no)
1002 AC_MSG_RESULT($ac_cv_opt_olimit_ok)
1003 if test $ac_cv_opt_olimit_ok = yes; then
1004 case $ac_sys_system in
1005 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
1006 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
1011 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
1015 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
1016 AC_CACHE_VAL(ac_cv_olimit_ok,
1018 CC="$CC -Olimit 1500"
1019 AC_TRY_RUN([int main() { return 0; }],
1020 ac_cv_olimit_ok=yes,
1024 AC_MSG_RESULT($ac_cv_olimit_ok)
1025 if test $ac_cv_olimit_ok = yes; then
1026 BASECFLAGS="$BASECFLAGS -Olimit 1500"
1030 # Check whether GCC supports PyArg_ParseTuple format
1031 if test "$GCC" = "yes"
1033 AC_MSG_CHECKING(whether gcc supports ParseTuple __format__)
1035 CFLAGS="$CFLAGS -Werror"
1037 void f(char*,...)__attribute((format(PyArg_ParseTuple, 1, 2)));
1039 AC_DEFINE(HAVE_ATTRIBUTE_FORMAT_PARSETUPLE, 1, [Define if GCC supports __attribute__((format(PyArg_ParseTuple, 2, 3)))])
1046 # On some compilers, pthreads are available without further options
1047 # (e.g. MacOS X). On some of these systems, the compiler will not
1048 # complain if unaccepted options are passed (e.g. gcc on Mac OS X).
1049 # So we have to see first whether pthreads are available without
1050 # options before we can check whether -Kpthread improves anything.
1051 AC_MSG_CHECKING(whether pthreads are available without options)
1052 AC_CACHE_VAL(ac_cv_pthread_is_default,
1054 #include <pthread.h>
1056 void* routine(void* p){return NULL;}
1060 if(pthread_create(&p,NULL,routine,NULL)!=0)
1062 (void)pthread_detach(p);
1067 ac_cv_pthread_is_default=yes
1071 ac_cv_pthread_is_default=no,
1072 ac_cv_pthread_is_default=no)
1074 AC_MSG_RESULT($ac_cv_pthread_is_default)
1077 if test $ac_cv_pthread_is_default = yes
1081 # -Kpthread, if available, provides the right #defines
1082 # and linker options to make pthread_create available
1083 # Some compilers won't report that they do not support -Kpthread,
1084 # so we need to run a program to see whether it really made the
1085 # function available.
1086 AC_MSG_CHECKING(whether $CC accepts -Kpthread)
1087 AC_CACHE_VAL(ac_cv_kpthread,
1091 #include <pthread.h>
1093 void* routine(void* p){return NULL;}
1097 if(pthread_create(&p,NULL,routine,NULL)!=0)
1099 (void)pthread_detach(p);
1107 AC_MSG_RESULT($ac_cv_kpthread)
1110 if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
1112 # -Kthread, if available, provides the right #defines
1113 # and linker options to make pthread_create available
1114 # Some compilers won't report that they do not support -Kthread,
1115 # so we need to run a program to see whether it really made the
1116 # function available.
1117 AC_MSG_CHECKING(whether $CC accepts -Kthread)
1118 AC_CACHE_VAL(ac_cv_kthread,
1122 #include <pthread.h>
1124 void* routine(void* p){return NULL;}
1128 if(pthread_create(&p,NULL,routine,NULL)!=0)
1130 (void)pthread_detach(p);
1138 AC_MSG_RESULT($ac_cv_kthread)
1141 if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
1143 # -pthread, if available, provides the right #defines
1144 # and linker options to make pthread_create available
1145 # Some compilers won't report that they do not support -pthread,
1146 # so we need to run a program to see whether it really made the
1147 # function available.
1148 AC_MSG_CHECKING(whether $CC accepts -pthread)
1149 AC_CACHE_VAL(ac_cv_thread,
1153 #include <pthread.h>
1155 void* routine(void* p){return NULL;}
1159 if(pthread_create(&p,NULL,routine,NULL)!=0)
1161 (void)pthread_detach(p);
1169 AC_MSG_RESULT($ac_cv_pthread)
1172 # If we have set a CC compiler flag for thread support then
1173 # check if it works for CXX, too.
1177 AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
1180 if test "$ac_cv_kpthread" = "yes"
1182 CXX="$CXX -Kpthread"
1183 ac_cv_cxx_thread=yes
1184 elif test "$ac_cv_kthread" = "yes"
1187 ac_cv_cxx_thread=yes
1188 elif test "$ac_cv_pthread" = "yes"
1191 ac_cv_cxx_thread=yes
1194 if test $ac_cv_cxx_thread = yes
1196 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
1197 $CXX -c conftest.$ac_ext 2>&5
1198 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
1199 && test -s conftest$ac_exeext && ./conftest$ac_exeext
1201 ac_cv_cxx_thread=yes
1207 AC_MSG_RESULT($ac_cv_cxx_thread)
1211 dnl # check for ANSI or K&R ("traditional") preprocessor
1212 dnl AC_MSG_CHECKING(for C preprocessor type)
1213 dnl AC_TRY_COMPILE([
1214 dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
1216 dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
1217 dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
1218 dnl AC_MSG_RESULT($cpp_type)
1220 # checks for header files
1222 AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
1224 ieeefp.h io.h langinfo.h libintl.h ncurses.h poll.h process.h pthread.h \
1225 shadow.h signal.h stdint.h stropts.h termios.h thread.h \
1227 sys/audioio.h sys/bsdtty.h sys/epoll.h sys/event.h sys/file.h sys/loadavg.h \
1228 sys/lock.h sys/mkdev.h sys/modem.h \
1229 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/statvfs.h sys/stat.h \
1230 sys/termio.h sys/time.h \
1231 sys/times.h sys/types.h sys/un.h sys/utsname.h sys/wait.h pty.h libutil.h \
1232 sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
1233 bluetooth/bluetooth.h linux/tipc.h)
1237 # On Solaris, term.h requires curses.h
1238 AC_CHECK_HEADERS(term.h,,,[
1239 #ifdef HAVE_CURSES_H
1244 # On Linux, netlink.h requires asm/types.h
1245 AC_CHECK_HEADERS(linux/netlink.h,,,[
1246 #ifdef HAVE_ASM_TYPES_H
1247 #include <asm/types.h>
1249 #ifdef HAVE_SYS_SOCKET_H
1250 #include <sys/socket.h>
1254 # checks for typedefs
1256 AC_MSG_CHECKING(for clock_t in time.h)
1257 AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
1258 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
1260 AC_MSG_RESULT($was_it_defined)
1262 # Check whether using makedev requires defining _OSF_SOURCE
1263 AC_MSG_CHECKING(for makedev)
1264 AC_TRY_LINK([#include <sys/types.h> ],
1266 ac_cv_has_makedev=yes,
1267 ac_cv_has_makedev=no)
1268 if test "$ac_cv_has_makedev" = "no"; then
1269 # we didn't link, try if _OSF_SOURCE will allow us to link
1271 #define _OSF_SOURCE 1
1272 #include <sys/types.h>
1275 ac_cv_has_makedev=yes,
1276 ac_cv_has_makedev=no)
1277 if test "$ac_cv_has_makedev" = "yes"; then
1278 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
1281 AC_MSG_RESULT($ac_cv_has_makedev)
1282 if test "$ac_cv_has_makedev" = "yes"; then
1283 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
1286 # Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
1287 # the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
1288 # defined, but the compiler does not support pragma redefine_extname,
1289 # and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
1290 # structures (such as rlimit64) without declaring them. As a
1291 # work-around, disable LFS on such configurations
1294 AC_MSG_CHECKING(Solaris LFS bug)
1296 #define _LARGEFILE_SOURCE 1
1297 #define _FILE_OFFSET_BITS 64
1298 #include <sys/resource.h>
1299 ],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
1300 AC_MSG_RESULT($sol_lfs_bug)
1301 if test "$sol_lfs_bug" = "yes"; then
1305 if test "$use_lfs" = "yes"; then
1306 # Two defines needed to enable largefile support on various platforms
1307 # These may affect some typedefs
1308 AC_DEFINE(_LARGEFILE_SOURCE, 1,
1309 [This must be defined on some systems to enable large file support.])
1310 AC_DEFINE(_FILE_OFFSET_BITS, 64,
1311 [This must be set to 64 on some systems to enable large file support.])
1314 # Add some code to confdefs.h so that the test for off_t works on SCO
1315 cat >> confdefs.h <<\EOF
1321 # Type availability checks
1332 AC_CHECK_TYPE(ssize_t,
1333 AC_DEFINE(HAVE_SSIZE_T, 1, Define if your compiler provides ssize_t),,)
1335 # Sizes of various common basic types
1336 # ANSI C requires sizeof(char) == 1, so no need to check it
1337 AC_CHECK_SIZEOF(int, 4)
1338 AC_CHECK_SIZEOF(long, 4)
1339 AC_CHECK_SIZEOF(void *, 4)
1340 AC_CHECK_SIZEOF(short, 2)
1341 AC_CHECK_SIZEOF(float, 4)
1342 AC_CHECK_SIZEOF(double, 8)
1343 AC_CHECK_SIZEOF(fpos_t, 4)
1344 AC_CHECK_SIZEOF(size_t, 4)
1345 AC_CHECK_SIZEOF(pid_t, 4)
1347 AC_MSG_CHECKING(for long long support)
1349 AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1350 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1353 AC_MSG_RESULT($have_long_long)
1354 if test "$have_long_long" = yes ; then
1355 AC_CHECK_SIZEOF(long long, 8)
1358 AC_MSG_CHECKING(for long double support)
1360 AC_TRY_COMPILE([], [long double x; x = (long double)0;], [
1361 AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define this if you have the type long double.])
1362 have_long_double=yes
1364 AC_MSG_RESULT($have_long_double)
1365 if test "$have_long_double" = yes ; then
1366 AC_CHECK_SIZEOF(long double, 16)
1370 AC_MSG_CHECKING(for _Bool support)
1372 AC_TRY_COMPILE([], [_Bool x; x = (_Bool)0;], [
1373 AC_DEFINE(HAVE_C99_BOOL, 1, [Define this if you have the type _Bool.])
1376 AC_MSG_RESULT($have_c99_bool)
1377 if test "$have_c99_bool" = yes ; then
1378 AC_CHECK_SIZEOF(_Bool, 1)
1381 AC_CHECK_TYPES(uintptr_t,
1382 [AC_CHECK_SIZEOF(uintptr_t, 4)],
1383 [], [#ifdef HAVE_STDINT_H
1388 # Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1389 AC_MSG_CHECKING(size of off_t)
1390 AC_CACHE_VAL(ac_cv_sizeof_off_t,
1391 [AC_TRY_RUN([#include <stdio.h>
1392 #include <sys/types.h>
1395 FILE *f=fopen("conftestval", "w");
1397 fprintf(f, "%d\n", sizeof(off_t));
1400 ac_cv_sizeof_off_t=`cat conftestval`,
1401 ac_cv_sizeof_off_t=0,
1402 ac_cv_sizeof_off_t=4)
1404 AC_MSG_RESULT($ac_cv_sizeof_off_t)
1405 AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1406 [The number of bytes in an off_t.])
1408 AC_MSG_CHECKING(whether to enable large file support)
1409 if test "$have_long_long" = yes -a \
1410 "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1411 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
1412 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1413 [Defined to enable large file support when an off_t is bigger than a long
1414 and long long is available and at least as big as an off_t. You may need
1415 to add some flags for configuration and compilation to enable this mode.
1416 (For Solaris and Linux, the necessary defines are already defined.)])
1422 # AC_CHECK_SIZEOF() doesn't include <time.h>.
1423 AC_MSG_CHECKING(size of time_t)
1424 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1425 [AC_TRY_RUN([#include <stdio.h>
1429 FILE *f=fopen("conftestval", "w");
1431 fprintf(f, "%d\n", sizeof(time_t));
1434 ac_cv_sizeof_time_t=`cat conftestval`,
1435 ac_cv_sizeof_time_t=0,
1436 ac_cv_sizeof_time_t=4)
1438 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1439 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1440 [The number of bytes in a time_t.])
1443 # if have pthread_t then define SIZEOF_PTHREAD_T
1445 if test "$ac_cv_kpthread" = "yes"
1446 then CC="$CC -Kpthread"
1447 elif test "$ac_cv_kthread" = "yes"
1448 then CC="$CC -Kthread"
1449 elif test "$ac_cv_pthread" = "yes"
1450 then CC="$CC -pthread"
1452 AC_MSG_CHECKING(for pthread_t)
1454 AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
1455 AC_MSG_RESULT($have_pthread_t)
1456 if test "$have_pthread_t" = yes ; then
1457 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1458 AC_MSG_CHECKING(size of pthread_t)
1459 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1460 [AC_TRY_RUN([#include <stdio.h>
1461 #include <pthread.h>
1464 FILE *f=fopen("conftestval", "w");
1466 fprintf(f, "%d\n", sizeof(pthread_t));
1469 ac_cv_sizeof_pthread_t=`cat conftestval`,
1470 ac_cv_sizeof_pthread_t=0,
1471 ac_cv_sizeof_pthread_t=4)
1473 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
1474 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1475 [The number of bytes in a pthread_t.])
1481 AC_SUBST(OTHER_LIBTOOL_OPT)
1482 case $ac_sys_system/$ac_sys_release in
1483 Darwin/@<:@01567@:>@\..*)
1484 OTHER_LIBTOOL_OPT="-prebind -seg1addr 0x10000000"
1487 OTHER_LIBTOOL_OPT=""
1491 AC_SUBST(LIBTOOL_CRUFT)
1492 case $ac_sys_system/$ac_sys_release in
1493 Darwin/@<:@01567@:>@\..*)
1494 LIBTOOL_CRUFT="-framework System -lcc_dynamic"
1495 if test "${enable_universalsdk}"; then
1498 LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only `arch`"
1500 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1501 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1503 gcc_version=`gcc -v 2>&1 | grep version | cut -d\ -f3`
1504 if test ${gcc_version} '<' 4.0
1506 LIBTOOL_CRUFT="-lcc_dynamic"
1510 LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only `arch`"
1511 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1512 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1515 AC_MSG_CHECKING(for --enable-framework)
1516 if test "$enable_framework"
1518 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
1519 # -F. is needed to allow linking to the framework while
1520 # in the build location.
1521 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1522 [Define if you want to produce an OpenStep/Rhapsody framework
1523 (shared library plus accessory files).])
1525 if test $enable_shared = "yes"
1527 AC_MSG_ERROR([Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead])
1533 AC_MSG_CHECKING(for dyld)
1534 case $ac_sys_system/$ac_sys_release in
1536 AC_DEFINE(WITH_DYLD, 1,
1537 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1538 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1539 linker (rld). Dyld is necessary to support frameworks.])
1540 AC_MSG_RESULT(always on for Darwin)
1547 # Set info about shared libraries.
1552 AC_SUBST(LINKFORSHARED)
1553 # SO is the extension of shared libraries `(including the dot!)
1554 # -- usually .so, .sl on HP-UX, .dll on Cygwin
1558 case $ac_sys_system in
1569 # this might also be a termcap variable, see #610332
1571 echo '====================================================================='
1573 echo '+ WARNING: You have set SO in your environment. +'
1574 echo '+ Do you really mean to change the extension for shared libraries? +'
1575 echo '+ Continuing in 10 seconds to let you to ponder. +'
1577 echo '====================================================================='
1582 AC_DEFINE_UNQUOTED(SHLIB_EXT, "$SO", [Define this to be extension of shared libraries (including the dot!).])
1583 # LDSHARED is the ld *command* used to create shared library
1584 # -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
1585 # (Shared libraries in this instance are shared modules to be loaded into
1586 # Python, as opposed to building Python itself as a shared library.)
1587 AC_MSG_CHECKING(LDSHARED)
1588 if test -z "$LDSHARED"
1590 case $ac_sys_system/$ac_sys_release in
1592 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
1593 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
1595 IRIX/5*) LDSHARED="ld -shared";;
1596 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
1598 if test "$GCC" = "yes"
1599 then LDSHARED='$(CC) -shared'
1600 else LDSHARED='$(CC) -G';
1603 if test "$GCC" = "yes"
1604 then LDSHARED='$(CC) -shared'
1605 else LDSHARED='ld -b';
1607 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
1609 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1610 if test "$enable_framework" ; then
1611 # Link against the framework. All externals should be defined.
1612 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1613 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1615 # No framework. Ignore undefined symbols, assuming they come from Python
1616 LDSHARED="$LDSHARED -undefined suppress"
1618 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
1619 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1620 if test "$enable_framework" ; then
1621 # Link against the framework. All externals should be defined.
1622 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1623 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1625 # No framework, use the Python app as bundle-loader
1626 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1627 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1630 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1631 # This allows an extension to be used in any Python
1633 if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
1635 if test "${enable_universalsdk}"; then
1636 LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
1638 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1639 BLDSHARED="$LDSHARED"
1641 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1642 if test "$enable_framework" ; then
1643 # Link against the framework. All externals should be defined.
1644 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1645 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1647 # No framework, use the Python app as bundle-loader
1648 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1649 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1653 Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
1654 BSD/OS*/4*) LDSHARED="gcc -shared";;
1656 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1658 LDSHARED="$CC -shared ${LDFLAGS}"
1660 LDSHARED="ld -Bshareable ${LDFLAGS}"
1663 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1665 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1668 [[01]].* | 2.[[0-7]] | 2.[[0-7]].*)
1669 LDSHARED="ld -Bshareable ${LDFLAGS}"
1672 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1676 NetBSD*|DragonFly*) LDSHARED="cc -shared ${LDFLAGS}";;
1677 OpenUNIX*|UnixWare*)
1678 if test "$GCC" = "yes"
1679 then LDSHARED='$(CC) -shared'
1680 else LDSHARED='$(CC) -G'
1682 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
1683 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
1684 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
1685 atheos*) LDSHARED="gcc -shared";;
1689 AC_MSG_RESULT($LDSHARED)
1690 BLDSHARED=${BLDSHARED-$LDSHARED}
1691 # CCSHARED are the C *flags* used to create objects to go into a shared
1692 # library (module) -- this is only needed for a few systems
1693 AC_MSG_CHECKING(CCSHARED)
1694 if test -z "$CCSHARED"
1696 case $ac_sys_system/$ac_sys_release in
1697 SunOS*) if test "$GCC" = yes;
1698 then CCSHARED="-fPIC";
1699 elif test `uname -p` = sparc;
1700 then CCSHARED="-xcode=pic32";
1701 else CCSHARED="-Kpic";
1703 hp*|HP*) if test "$GCC" = yes;
1704 then CCSHARED="-fPIC";
1707 Linux*|GNU*) CCSHARED="-fPIC";;
1708 BSD/OS*/4*) CCSHARED="-fpic";;
1709 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";;
1710 OpenUNIX*|UnixWare*)
1711 if test "$GCC" = "yes"
1712 then CCSHARED="-fPIC"
1713 else CCSHARED="-KPIC"
1716 if test "$GCC" = "yes"
1717 then CCSHARED="-fPIC"
1718 else CCSHARED="-Kpic -belf"
1720 Monterey*) CCSHARED="-G";;
1721 IRIX*/6*) case $CC in
1722 *gcc*) CCSHARED="-shared";;
1725 atheos*) CCSHARED="-fPIC";;
1728 AC_MSG_RESULT($CCSHARED)
1729 # LINKFORSHARED are the flags passed to the $(CC) command that links
1730 # the python executable -- this is only needed for a few systems
1731 AC_MSG_CHECKING(LINKFORSHARED)
1732 if test -z "$LINKFORSHARED"
1734 case $ac_sys_system/$ac_sys_release in
1735 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
1737 LINKFORSHARED="-Wl,-E -Wl,+s";;
1738 # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
1739 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
1740 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
1741 # -u libsys_s pulls in all symbols in libsys
1743 LINKFORSHARED="$extra_undefs -framework CoreFoundation"
1744 if test "$enable_framework"
1746 LINKFORSHARED="$LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1748 LINKFORSHARED="$LINKFORSHARED";;
1749 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
1750 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
1751 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
1752 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*)
1753 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1755 LINKFORSHARED="-Wl,--export-dynamic"
1757 SunOS/5*) case $CC in
1759 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
1761 LINKFORSHARED="-Xlinker --export-dynamic"
1765 if test $enable_shared = "no"
1767 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1770 # -Wl,-E causes the symbols to be added to the dynamic
1771 # symbol table so that they can be found when a module
1772 # is loaded. -N 2048K causes the stack size to be set
1773 # to 2048 kilobytes so that the stack doesn't overflow
1774 # when running test_compile.py.
1775 LINKFORSHARED='-Wl,-E -N 2048K';;
1778 AC_MSG_RESULT($LINKFORSHARED)
1781 AC_SUBST(CFLAGSFORSHARED)
1782 AC_MSG_CHECKING(CFLAGSFORSHARED)
1783 if test ! "$LIBRARY" = "$LDLIBRARY"
1785 case $ac_sys_system in
1787 # Cygwin needs CCSHARED when building extension DLLs
1788 # but not when building the interpreter DLL.
1789 CFLAGSFORSHARED='';;
1791 CFLAGSFORSHARED='$(CCSHARED)'
1794 AC_MSG_RESULT($CFLAGSFORSHARED)
1796 # SHLIBS are libraries (except -lc and -lm) to link to the python shared
1797 # library (with --enable-shared).
1798 # For platforms on which shared libraries are not allowed to have unresolved
1799 # symbols, this must be set to $(LIBS) (expanded by make). We do this even
1800 # if it is not required, since it creates a dependency of the shared library
1801 # to LIBS. This, in turn, means that applications linking the shared libpython
1802 # don't need to link LIBS explicitly. The default should be only changed
1803 # on systems where this approach causes problems.
1805 AC_MSG_CHECKING(SHLIBS)
1806 case "$ac_sys_system" in
1810 AC_MSG_RESULT($SHLIBS)
1813 # checks for libraries
1814 AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1815 AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
1817 # only check for sem_init if thread support is requested
1818 if test "$with_threads" = "yes" -o -z "$with_threads"; then
1819 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1820 # posix4 on Solaris 2.6
1821 # pthread (first!) on Linux
1824 # check if we need libintl for locale functions
1825 AC_CHECK_LIB(intl, textdomain,
1826 [AC_DEFINE(WITH_LIBINTL, 1,
1827 [Define to 1 if libintl is needed for locale functions.])
1828 LIBS="-lintl $LIBS"])
1830 # checks for system dependent C++ extensions support
1831 case "$ac_sys_system" in
1832 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1833 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1834 [loadAndInit("", 0, "")],
1835 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1836 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1837 and you want support for AIX C++ shared extension modules.])
1838 AC_MSG_RESULT(yes)],
1839 [AC_MSG_RESULT(no)]);;
1843 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
1844 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
1845 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
1847 AC_MSG_CHECKING(for --with-libs)
1849 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1851 AC_MSG_RESULT($withval)
1852 LIBS="$withval $LIBS"
1854 [AC_MSG_RESULT(no)])
1856 # Check for use of the system libffi library
1857 AC_MSG_CHECKING(for --with-system-ffi)
1858 AC_ARG_WITH(system_ffi,
1859 AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library))
1861 AC_MSG_RESULT($with_system_ffi)
1863 # Check for --with-dbmliborder
1864 AC_MSG_CHECKING(for --with-dbmliborder)
1865 AC_ARG_WITH(dbmliborder,
1866 AC_HELP_STRING([--with-dbmliborder=db1:db2:...], [order to check db backends for dbm. Valid value is a colon separated string with the backend names `ndbm', `gdbm' and `bdb'.]),
1868 if test x$with_dbmliborder = xyes
1870 AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...])
1872 for db in `echo $with_dbmliborder | sed 's/:/ /g'`; do
1873 if test x$db != xndbm && test x$db != xgdbm && test x$db != xbdb
1875 AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...])
1879 AC_MSG_RESULT($with_dbmliborder)
1881 # Determine if signalmodule should be used.
1882 AC_SUBST(USE_SIGNAL_MODULE)
1883 AC_SUBST(SIGNAL_OBJS)
1884 AC_MSG_CHECKING(for --with-signal-module)
1885 AC_ARG_WITH(signal-module,
1886 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
1888 if test -z "$with_signal_module"
1889 then with_signal_module="yes"
1891 AC_MSG_RESULT($with_signal_module)
1893 if test "${with_signal_module}" = "yes"; then
1894 USE_SIGNAL_MODULE=""
1897 USE_SIGNAL_MODULE="#"
1898 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1901 # This is used to generate Setup.config
1902 AC_SUBST(USE_THREAD_MODULE)
1903 USE_THREAD_MODULE=""
1905 AC_MSG_CHECKING(for --with-dec-threads)
1907 AC_ARG_WITH(dec-threads,
1908 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1910 AC_MSG_RESULT($withval)
1912 if test "${with_thread+set}" != set; then
1913 with_thread="$withval";
1915 [AC_MSG_RESULT(no)])
1917 # Templates for things AC_DEFINEd more than once.
1918 # For a single AC_DEFINE, no template is needed.
1919 AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1920 AH_TEMPLATE(_REENTRANT,
1921 [Define to force use of thread-safe errno, h_errno, and other functions])
1922 AH_TEMPLATE(WITH_THREAD,
1923 [Define if you want to compile in rudimentary thread support])
1925 AC_MSG_CHECKING(for --with-threads)
1926 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1927 AC_ARG_WITH(threads,
1928 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
1930 # --with-thread is deprecated, but check for it anyway
1931 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1933 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1934 [with_threads=$with_thread])
1936 if test -z "$with_threads"
1937 then with_threads="yes"
1939 AC_MSG_RESULT($with_threads)
1942 if test "$with_threads" = "no"
1944 USE_THREAD_MODULE="#"
1945 elif test "$ac_cv_pthread_is_default" = yes
1947 AC_DEFINE(WITH_THREAD)
1948 # Defining _REENTRANT on system with POSIX threads should not hurt.
1949 AC_DEFINE(_REENTRANT)
1951 THREADOBJ="Python/thread.o"
1952 elif test "$ac_cv_kpthread" = "yes"
1955 if test "$ac_cv_cxx_thread" = "yes"; then
1956 CXX="$CXX -Kpthread"
1958 AC_DEFINE(WITH_THREAD)
1960 THREADOBJ="Python/thread.o"
1961 elif test "$ac_cv_kthread" = "yes"
1964 if test "$ac_cv_cxx_thread" = "yes"; then
1967 AC_DEFINE(WITH_THREAD)
1969 THREADOBJ="Python/thread.o"
1970 elif test "$ac_cv_pthread" = "yes"
1973 if test "$ac_cv_cxx_thread" = "yes"; then
1976 AC_DEFINE(WITH_THREAD)
1978 THREADOBJ="Python/thread.o"
1980 if test ! -z "$with_threads" -a -d "$with_threads"
1981 then LDFLAGS="$LDFLAGS -L$with_threads"
1983 if test ! -z "$withval" -a -d "$withval"
1984 then LDFLAGS="$LDFLAGS -L$withval"
1987 # According to the POSIX spec, a pthreads implementation must
1988 # define _POSIX_THREADS in unistd.h. Some apparently don't
1989 # (e.g. gnu pth with pthread emulation)
1990 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
1994 #ifdef _POSIX_THREADS
1997 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
1998 AC_MSG_RESULT($unistd_defines_pthreads)
2000 AC_DEFINE(_REENTRANT)
2001 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
2002 AC_DEFINE(C_THREADS)
2003 AC_DEFINE(HURD_C_THREADS, 1,
2004 [Define if you are using Mach cthreads directly under /include])
2005 LIBS="$LIBS -lthreads"
2006 THREADOBJ="Python/thread.o"],[
2007 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
2008 AC_DEFINE(C_THREADS)
2009 AC_DEFINE(MACH_C_THREADS, 1,
2010 [Define if you are using Mach cthreads under mach /])
2011 THREADOBJ="Python/thread.o"],[
2012 AC_MSG_CHECKING(for --with-pth)
2014 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
2015 [AC_MSG_RESULT($withval)
2016 AC_DEFINE([WITH_THREAD])
2017 AC_DEFINE([HAVE_PTH], 1,
2018 [Define if you have GNU PTH threads.])
2020 THREADOBJ="Python/thread.o"],
2023 # Just looking for pthread_create in libpthread is not enough:
2024 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
2025 # So we really have to include pthread.h, and then link.
2027 LIBS="$LIBS -lpthread"
2028 AC_MSG_CHECKING([for pthread_create in -lpthread])
2029 AC_TRY_LINK([#include <pthread.h>
2031 void * start_routine (void *arg) { exit (0); }], [
2032 pthread_create (NULL, NULL, start_routine, NULL)], [
2034 AC_DEFINE(WITH_THREAD)
2036 THREADOBJ="Python/thread.o"],[
2038 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
2040 THREADOBJ="Python/thread.o"],[
2041 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
2042 AC_DEFINE(ATHEOS_THREADS, 1,
2043 [Define this if you have AtheOS threads.])
2044 THREADOBJ="Python/thread.o"],[
2045 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
2047 LIBS="$LIBS -lpthreads"
2048 THREADOBJ="Python/thread.o"], [
2049 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
2052 THREADOBJ="Python/thread.o"], [
2053 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
2055 LIBS="$LIBS -lpthread"
2056 THREADOBJ="Python/thread.o"], [
2057 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
2060 THREADOBJ="Python/thread.o"],[
2061 USE_THREAD_MODULE="#"])
2064 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
2066 THREADOBJ="Python/thread.o"
2067 USE_THREAD_MODULE=""])
2069 if test "$posix_threads" != "yes"; then
2070 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
2071 LIBS="$LIBS -lthread"
2072 THREADOBJ="Python/thread.o"
2073 USE_THREAD_MODULE=""])
2076 if test "$USE_THREAD_MODULE" != "#"
2078 # If the above checks didn't disable threads, (at least) OSF1
2079 # needs this '-threads' argument during linking.
2080 case $ac_sys_system in
2081 OSF1) LDLAST=-threads;;
2086 if test "$posix_threads" = "yes"; then
2087 if test "$unistd_defines_pthreads" = "no"; then
2088 AC_DEFINE(_POSIX_THREADS, 1,
2089 [Define if you have POSIX threads,
2090 and your system does not define that.])
2093 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
2094 case $ac_sys_system/$ac_sys_release in
2095 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
2096 Defined for Solaris 2.6 bug in pthread header.)
2098 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2099 Define if the Posix semaphores do not work on your system)
2101 AIX/5) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2102 Define if the Posix semaphores do not work on your system)
2106 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
2107 AC_CACHE_VAL(ac_cv_pthread_system_supported,
2108 [AC_TRY_RUN([#include <pthread.h>
2109 void *foo(void *parm) {
2113 pthread_attr_t attr;
2115 if (pthread_attr_init(&attr)) exit(-1);
2116 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
2117 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
2120 ac_cv_pthread_system_supported=yes,
2121 ac_cv_pthread_system_supported=no,
2122 ac_cv_pthread_system_supported=no)
2124 AC_MSG_RESULT($ac_cv_pthread_system_supported)
2125 if test "$ac_cv_pthread_system_supported" = "yes"; then
2126 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
2128 AC_CHECK_FUNCS(pthread_sigmask,
2129 [case $ac_sys_system in
2131 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
2132 [Define if pthread_sigmask() does not work on your system.])
2138 # Check for enable-ipv6
2139 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
2140 AC_MSG_CHECKING([if --enable-ipv6 is specified])
2142 [ --enable-ipv6 Enable ipv6 (with ipv4) support
2143 --disable-ipv6 Disable ipv6 support],
2144 [ case "$enableval" in
2149 *) AC_MSG_RESULT(yes)
2150 AC_DEFINE(ENABLE_IPV6)
2156 dnl the check does not work on cross compilation case...
2157 AC_TRY_RUN([ /* AF_INET6 available check */
2158 #include <sys/types.h>
2159 #include <sys/socket.h>
2162 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
2176 if test "$ipv6" = "yes"; then
2177 AC_MSG_CHECKING(if RFC2553 API is available)
2178 AC_TRY_COMPILE([#include <sys/types.h>
2179 #include <netinet/in.h>],
2180 [struct sockaddr_in6 x;
2184 AC_MSG_RESULT(no, IPv6 disabled)
2188 if test "$ipv6" = "yes"; then
2189 AC_DEFINE(ENABLE_IPV6)
2197 if test "$ipv6" = "yes"; then
2198 AC_MSG_CHECKING([ipv6 stack type])
2199 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
2203 dnl http://www.kame.net/
2205 #include <netinet/in.h>
2206 #ifdef IPV6_INRIA_VERSION
2212 dnl http://www.kame.net/
2214 #include <netinet/in.h>
2220 ipv6libdir=/usr/local/v6/lib
2224 dnl http://www.v6.linux.or.jp/
2226 #include <features.h>
2227 #if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
2234 dnl http://www.v6.linux.or.jp/
2235 if test -d /usr/inet6; then
2238 ipv6libdir=/usr/inet6/lib
2239 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
2243 if test -f /etc/netconfig; then
2244 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
2252 #include <sys/param.h>
2253 #ifdef _TOSHIBA_INET6
2258 ipv6libdir=/usr/local/v6/lib])
2262 #include </usr/local/v6/include/sys/v6config.h>
2268 ipv6libdir=/usr/local/v6/lib;
2269 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
2273 #include <sys/param.h>
2274 #ifdef _ZETA_MINAMI_INET6
2279 ipv6libdir=/usr/local/v6/lib])
2282 if test "$ipv6type" != "unknown"; then
2286 AC_MSG_RESULT($ipv6type)
2289 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
2290 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
2291 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
2292 echo "using lib$ipv6lib"
2294 if test $ipv6trylibc = "yes"; then
2297 echo 'Fatal: no $ipv6lib library found. cannot continue.'
2298 echo "You need to fetch lib$ipv6lib.a from appropriate"
2299 echo 'ipv6 kit and compile beforehand.'
2305 AC_MSG_CHECKING(for OSX 10.5 SDK or later)
2306 AC_TRY_COMPILE([#include <Carbon/Carbon.h>], FSIORefNum fRef = 0,
2307 AC_DEFINE(HAVE_OSX105_SDK, 1, Define if compiling using MacOS X 10.5 SDK or later.)
2312 # Check for --with-doc-strings
2313 AC_MSG_CHECKING(for --with-doc-strings)
2314 AC_ARG_WITH(doc-strings,
2315 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
2317 if test -z "$with_doc_strings"
2318 then with_doc_strings="yes"
2320 if test "$with_doc_strings" != "no"
2322 AC_DEFINE(WITH_DOC_STRINGS, 1,
2323 [Define if you want documentation strings in extension modules])
2325 AC_MSG_RESULT($with_doc_strings)
2327 # Check for Python-specific malloc support
2328 AC_MSG_CHECKING(for --with-tsc)
2330 [ --with(out)-tsc enable/disable timestamp counter profile], [
2331 if test "$withval" != no
2333 AC_DEFINE(WITH_TSC, 1,
2334 [Define to profile with the Pentium timestamp counter])
2336 else AC_MSG_RESULT(no)
2338 [AC_MSG_RESULT(no)])
2340 # Check for Python-specific malloc support
2341 AC_MSG_CHECKING(for --with-pymalloc)
2342 AC_ARG_WITH(pymalloc,
2343 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
2345 if test -z "$with_pymalloc"
2346 then with_pymalloc="yes"
2348 if test "$with_pymalloc" != "no"
2350 AC_DEFINE(WITH_PYMALLOC, 1,
2351 [Define if you want to compile in Python-specific mallocs])
2353 AC_MSG_RESULT($with_pymalloc)
2355 # Check for --with-wctype-functions
2356 AC_MSG_CHECKING(for --with-wctype-functions)
2357 AC_ARG_WITH(wctype-functions,
2358 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
2360 if test "$withval" != no
2362 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2363 [Define if you want wctype.h functions to be used instead of the
2364 one supplied by Python itself. (see Include/unicodectype.h).])
2366 else AC_MSG_RESULT(no)
2368 [AC_MSG_RESULT(no)])
2370 # -I${DLINCLDIR} is added to the compile rule for importdl.o
2374 # the dlopen() function means we might want to use dynload_shlib.o. some
2375 # platforms, such as AIX, have dlopen(), but don't want to use it.
2376 AC_CHECK_FUNCS(dlopen)
2378 # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2379 # loading of modules.
2380 AC_SUBST(DYNLOADFILE)
2381 AC_MSG_CHECKING(DYNLOADFILE)
2382 if test -z "$DYNLOADFILE"
2384 case $ac_sys_system/$ac_sys_release in
2385 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2386 if test "$ac_cv_func_dlopen" = yes
2387 then DYNLOADFILE="dynload_shlib.o"
2388 else DYNLOADFILE="dynload_aix.o"
2391 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
2392 # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
2393 Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
2394 atheos*) DYNLOADFILE="dynload_atheos.o";;
2396 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2397 # out any dynamic loading
2398 if test "$ac_cv_func_dlopen" = yes
2399 then DYNLOADFILE="dynload_shlib.o"
2400 else DYNLOADFILE="dynload_stub.o"
2405 AC_MSG_RESULT($DYNLOADFILE)
2406 if test "$DYNLOADFILE" != "dynload_stub.o"
2408 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2409 [Defined when any dynamic module loading is enabled.])
2412 # MACHDEP_OBJS can be set to platform-specific object files needed by Python
2414 AC_SUBST(MACHDEP_OBJS)
2415 AC_MSG_CHECKING(MACHDEP_OBJS)
2416 if test -z "$MACHDEP_OBJS"
2418 MACHDEP_OBJS=$extra_machdep_objs
2420 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
2422 AC_MSG_RESULT(MACHDEP_OBJS)
2424 # checks for library functions
2425 AC_CHECK_FUNCS(alarm setitimer getitimer bind_textdomain_codeset chown \
2426 clock confstr ctermid execv fchmod fchown fork fpathconf ftime ftruncate \
2427 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
2428 getpriority getpwent getspnam getspent getsid getwd \
2429 kill killpg lchmod lchown lstat mbrtowc mkfifo mknod mktime \
2430 mremap nice pathconf pause plock poll pthread_init \
2431 putenv readlink realpath \
2432 select sem_open sem_timedwait sem_getvalue sem_unlink setegid seteuid \
2434 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
2435 sigaction siginterrupt sigrelse strftime strlcpy \
2436 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
2437 truncate uname unsetenv utimes waitpid wait3 wait4 \
2438 wcscoll wcsftime wcsxfrm _getpty)
2440 # For some functions, having a definition is not sufficient, since
2441 # we want to take their address.
2442 AC_MSG_CHECKING(for chroot)
2443 AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2444 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2448 AC_MSG_CHECKING(for link)
2449 AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2450 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2454 AC_MSG_CHECKING(for symlink)
2455 AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2456 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2460 AC_MSG_CHECKING(for fchdir)
2461 AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2462 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2466 AC_MSG_CHECKING(for fsync)
2467 AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
2468 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
2472 AC_MSG_CHECKING(for fdatasync)
2473 AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2474 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2478 AC_MSG_CHECKING(for epoll)
2479 AC_TRY_COMPILE([#include <sys/epoll.h>], void *x=epoll_create,
2480 AC_DEFINE(HAVE_EPOLL, 1, Define if you have the 'epoll' functions.)
2484 AC_MSG_CHECKING(for kqueue)
2486 #include <sys/types.h>
2487 #include <sys/event.h>
2489 AC_DEFINE(HAVE_KQUEUE, 1, Define if you have the 'kqueue' functions.)
2493 # On some systems (eg. FreeBSD 5), we would find a definition of the
2494 # functions ctermid_r, setgroups in the library, but no prototype
2495 # (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2496 # address to avoid compiler warnings and potential miscompilations
2497 # because of the missing prototypes.
2499 AC_MSG_CHECKING(for ctermid_r)
2501 #include "confdefs.h"
2503 ], void* p = ctermid_r,
2504 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2509 AC_MSG_CHECKING(for flock)
2511 #include "confdefs.h"
2512 #include <sys/file.h>
2514 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2519 AC_MSG_CHECKING(for getpagesize)
2521 #include "confdefs.h"
2523 ], void* p = getpagesize,
2524 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2530 AC_CHECK_PROGS(TRUE, true, /bin/true)
2532 dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2533 dnl On others, they are in the C library, so we to take no action
2534 AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
2535 AC_CHECK_LIB(resolv, inet_aton)
2538 # On Tru64, chflags seems to be present, but calling it will
2540 AC_MSG_CHECKING(for chflags)
2542 #include <sys/stat.h>
2544 int main(int argc, char*argv[])
2546 if(chflags(argv[0], 0) != 0)
2550 ],AC_DEFINE(HAVE_CHFLAGS, 1, Define to 1 if you have the `chflags' function.)
2555 AC_MSG_CHECKING(for lchflags)
2557 #include <sys/stat.h>
2559 int main(int argc, char*argv[])
2561 if(lchflags(argv[0], 0) != 0)
2565 ],AC_DEFINE(HAVE_LCHFLAGS, 1, Define to 1 if you have the `lchflags' function.)
2570 dnl Check if system zlib has *Copy() functions
2572 dnl On MacOSX the linker will search for dylibs on the entire linker path
2573 dnl before searching for static libraries. setup.py adds -Wl,-search_paths_first
2574 dnl to revert to a more traditional unix behaviour and make it possible to
2575 dnl override the system libz with a local static library of libz. Temporarily
2576 dnl add that flag to our CFLAGS as well to ensure that we check the version
2577 dnl of libz that will be used by setup.py.
2578 dnl The -L/usr/local/lib is needed as wel to get the same compilation
2579 dnl environment as setup.py (and leaving it out can cause configure to use the
2580 dnl wrong version of the library)
2581 case $ac_sys_system/$ac_sys_release in
2583 _CUR_CFLAGS="${CFLAGS}"
2584 _CUR_LDFLAGS="${LDFLAGS}"
2585 CFLAGS="${CFLAGS} -Wl,-search_paths_first"
2586 LDFLAGS="${LDFLAGS} -Wl,-search_paths_first -L/usr/local/lib"
2590 AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_ZLIB_COPY, 1, Define if the zlib library has inflateCopy))
2592 case $ac_sys_system/$ac_sys_release in
2594 CFLAGS="${_CUR_CFLAGS}"
2595 LDFLAGS="${_CUR_LDFLAGS}"
2599 AC_MSG_CHECKING(for hstrerror)
2601 #include "confdefs.h"
2603 ], void* p = hstrerror; hstrerror(0),
2604 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2609 AC_MSG_CHECKING(for inet_aton)
2611 #include "confdefs.h"
2612 #include <sys/types.h>
2613 #include <sys/socket.h>
2614 #include <netinet/in.h>
2615 #include <arpa/inet.h>
2616 ], void* p = inet_aton;inet_aton(0,0),
2617 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2622 AC_MSG_CHECKING(for inet_pton)
2624 #include "confdefs.h"
2625 #include <sys/types.h>
2626 #include <sys/socket.h>
2627 #include <netinet/in.h>
2628 #include <arpa/inet.h>
2629 ], void* p = inet_pton,
2630 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2635 # On some systems, setgroups is in unistd.h, on others, in grp.h
2636 AC_MSG_CHECKING(for setgroups)
2638 #include "confdefs.h"
2644 void* p = setgroups,
2645 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2650 # check for openpty and forkpty
2652 AC_CHECK_FUNCS(openpty,,
2653 AC_CHECK_LIB(util,openpty,
2654 [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"],
2655 AC_CHECK_LIB(bsd,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lbsd"])
2658 AC_CHECK_FUNCS(forkpty,,
2659 AC_CHECK_LIB(util,forkpty,
2660 [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"],
2661 AC_CHECK_LIB(bsd,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lbsd"])
2666 AC_CHECK_FUNCS(memmove)
2668 # check for long file support functions
2669 AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2671 AC_REPLACE_FUNCS(dup2 getcwd strdup)
2672 AC_CHECK_FUNCS(getpgrp,
2673 AC_TRY_COMPILE([#include <unistd.h>],
2675 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2676 [Define if getpgrp() must be called as getpgrp(0).])
2679 AC_CHECK_FUNCS(setpgrp,
2680 AC_TRY_COMPILE([#include <unistd.h>],
2682 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2683 [Define if setpgrp() must be called as setpgrp(0, 0).])
2686 AC_CHECK_FUNCS(gettimeofday,
2687 AC_TRY_COMPILE([#include <sys/time.h>],
2688 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2689 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2690 [Define if gettimeofday() does not have second (timezone) argument
2691 This is the case on Motorola V4 (R40V4.2)])
2695 AC_MSG_CHECKING(for major, minor, and makedev)
2697 #if defined(MAJOR_IN_MKDEV)
2698 #include <sys/mkdev.h>
2699 #elif defined(MAJOR_IN_SYSMACROS)
2700 #include <sys/sysmacros.h>
2702 #include <sys/types.h>
2705 makedev(major(0),minor(0));
2707 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2708 [Define to 1 if you have the device macros.])
2714 # On OSF/1 V5.1, getaddrinfo is available, but a define
2715 # for [no]getaddrinfo in netdb.h.
2716 AC_MSG_CHECKING(for getaddrinfo)
2718 #include <sys/types.h>
2719 #include <sys/socket.h>
2723 getaddrinfo(NULL, NULL, NULL, NULL);
2726 AC_MSG_CHECKING(getaddrinfo bug)
2728 #include <sys/types.h>
2731 #include <sys/socket.h>
2732 #include <netinet/in.h>
2736 int passive, gaierr, inet4 = 0, inet6 = 0;
2737 struct addrinfo hints, *ai, *aitop;
2738 char straddr[INET6_ADDRSTRLEN], strport[16];
2740 for (passive = 0; passive <= 1; passive++) {
2741 memset(&hints, 0, sizeof(hints));
2742 hints.ai_family = AF_UNSPEC;
2743 hints.ai_flags = passive ? AI_PASSIVE : 0;
2744 hints.ai_socktype = SOCK_STREAM;
2745 hints.ai_protocol = IPPROTO_TCP;
2746 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2747 (void)gai_strerror(gaierr);
2750 for (ai = aitop; ai; ai = ai->ai_next) {
2751 if (ai->ai_addr == NULL ||
2752 ai->ai_addrlen == 0 ||
2753 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2754 straddr, sizeof(straddr), strport, sizeof(strport),
2755 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2758 switch (ai->ai_family) {
2760 if (strcmp(strport, "54321") != 0) {
2764 if (strcmp(straddr, "0.0.0.0") != 0) {
2768 if (strcmp(straddr, "127.0.0.1") != 0) {
2775 if (strcmp(strport, "54321") != 0) {
2779 if (strcmp(straddr, "::") != 0) {
2783 if (strcmp(straddr, "::1") != 0) {
2793 /* another family support? */
2799 if (!(inet4 == 0 || inet4 == 2))
2801 if (!(inet6 == 0 || inet6 == 2))
2805 freeaddrinfo(aitop);
2810 freeaddrinfo(aitop);
2815 buggygetaddrinfo=no,
2816 AC_MSG_RESULT(buggy)
2817 buggygetaddrinfo=yes,
2818 AC_MSG_RESULT(buggy)
2819 buggygetaddrinfo=yes)], [
2821 buggygetaddrinfo=yes
2824 if test "$buggygetaddrinfo" = "yes"; then
2825 if test "$ipv6" = "yes"; then
2826 echo 'Fatal: You must get working getaddrinfo() function.'
2827 echo ' or you can specify "--disable-ipv6"'.
2831 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
2833 AC_CHECK_FUNCS(getnameinfo)
2835 # checks for structures
2839 AC_CHECK_MEMBERS([struct stat.st_rdev])
2840 AC_CHECK_MEMBERS([struct stat.st_blksize])
2841 AC_CHECK_MEMBERS([struct stat.st_flags])
2842 AC_CHECK_MEMBERS([struct stat.st_gen])
2843 AC_CHECK_MEMBERS([struct stat.st_birthtime])
2846 AC_MSG_CHECKING(for time.h that defines altzone)
2847 AC_CACHE_VAL(ac_cv_header_time_altzone,
2848 [AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2849 ac_cv_header_time_altzone=yes,
2850 ac_cv_header_time_altzone=no)])
2851 AC_MSG_RESULT($ac_cv_header_time_altzone)
2852 if test $ac_cv_header_time_altzone = yes; then
2853 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
2857 AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
2859 #include <sys/types.h>
2860 #include <sys/select.h>
2861 #include <sys/time.h>
2863 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2864 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2865 (which you can't on SCO ODT 3.0).])
2868 AC_MSG_RESULT($was_it_defined)
2870 AC_MSG_CHECKING(for addrinfo)
2871 AC_CACHE_VAL(ac_cv_struct_addrinfo,
2873 # include <netdb.h>],
2874 [struct addrinfo a],
2875 ac_cv_struct_addrinfo=yes,
2876 ac_cv_struct_addrinfo=no))
2877 AC_MSG_RESULT($ac_cv_struct_addrinfo)
2878 if test $ac_cv_struct_addrinfo = yes; then
2879 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
2882 AC_MSG_CHECKING(for sockaddr_storage)
2883 AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2885 # include <sys/types.h>
2886 # include <sys/socket.h>],
2887 [struct sockaddr_storage s],
2888 ac_cv_struct_sockaddr_storage=yes,
2889 ac_cv_struct_sockaddr_storage=no))
2890 AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2891 if test $ac_cv_struct_sockaddr_storage = yes; then
2892 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
2895 # checks for compiler characteristics
2901 AC_MSG_CHECKING(for working volatile)
2902 AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2903 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2905 AC_MSG_RESULT($works)
2908 AC_MSG_CHECKING(for working signed char)
2909 AC_TRY_COMPILE([], [signed char c;], works=yes,
2910 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2912 AC_MSG_RESULT($works)
2915 AC_MSG_CHECKING(for prototypes)
2916 AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2917 AC_DEFINE(HAVE_PROTOTYPES, 1,
2918 [Define if your compiler supports function prototype])
2921 AC_MSG_RESULT($have_prototypes)
2924 AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
2927 int foo(int x, ...) {
2935 ], [return foo(10, "", 3.14);], [
2936 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2937 [Define if your compiler supports variable length function prototypes
2938 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2941 AC_MSG_RESULT($works)
2943 # check for socketpair
2944 AC_MSG_CHECKING(for socketpair)
2946 #include <sys/types.h>
2947 #include <sys/socket.h>
2948 ], void *x=socketpair,
2949 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
2954 # check if sockaddr has sa_len member
2955 AC_MSG_CHECKING(if sockaddr has sa_len member)
2956 AC_TRY_COMPILE([#include <sys/types.h>
2957 #include <sys/socket.h>],
2961 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
2965 AC_MSG_CHECKING(whether va_list is an array)
2967 #ifdef HAVE_STDARG_PROTOTYPES
2970 #include <varargs.h>
2972 ], [va_list list1, list2; list1 = list2;], , [
2973 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
2974 va_list_is_array=yes
2976 AC_MSG_RESULT($va_list_is_array)
2978 # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
2979 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
2980 [Define this if you have some version of gethostbyname_r()])
2982 AC_CHECK_FUNC(gethostbyname_r, [
2983 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2984 AC_MSG_CHECKING([gethostbyname_r with 6 args])
2986 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
2991 struct hostent *he, *res;
2996 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
2998 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2999 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
3000 [Define this if you have the 6-arg version of gethostbyname_r().])
3004 AC_MSG_CHECKING([gethostbyname_r with 5 args])
3014 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
3016 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3017 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
3018 [Define this if you have the 5-arg version of gethostbyname_r().])
3022 AC_MSG_CHECKING([gethostbyname_r with 3 args])
3028 struct hostent_data data;
3030 (void) gethostbyname_r(name, he, &data);
3032 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3033 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
3034 [Define this if you have the 3-arg version of gethostbyname_r().])
3043 AC_CHECK_FUNCS(gethostbyname)
3045 AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
3046 AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
3047 AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
3048 AC_SUBST(HAVE_GETHOSTBYNAME_R)
3049 AC_SUBST(HAVE_GETHOSTBYNAME)
3051 # checks for system services
3054 # Linux requires this for correct f.p. operations
3055 AC_CHECK_FUNC(__fpu_control,
3057 [AC_CHECK_LIB(ieee, __fpu_control)
3060 # Check for --with-fpectl
3061 AC_MSG_CHECKING(for --with-fpectl)
3063 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
3065 if test "$withval" != no
3067 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
3068 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
3070 else AC_MSG_RESULT(no)
3072 [AC_MSG_RESULT(no)])
3074 # check for --with-libm=...
3076 case $ac_sys_system in
3080 AC_MSG_CHECKING(for --with-libm=STRING)
3082 AC_HELP_STRING(--with-libm=STRING, math library),
3084 if test "$withval" = no
3086 AC_MSG_RESULT(force LIBM empty)
3087 elif test "$withval" != yes
3089 AC_MSG_RESULT(set LIBM="$withval")
3090 else AC_MSG_ERROR([proper usage is --with-libm=STRING])
3092 [AC_MSG_RESULT(default LIBM="$LIBM")])
3094 # check for --with-libc=...
3096 AC_MSG_CHECKING(for --with-libc=STRING)
3098 AC_HELP_STRING(--with-libc=STRING, C library),
3100 if test "$withval" = no
3102 AC_MSG_RESULT(force LIBC empty)
3103 elif test "$withval" != yes
3105 AC_MSG_RESULT(set LIBC="$withval")
3106 else AC_MSG_ERROR([proper usage is --with-libc=STRING])
3108 [AC_MSG_RESULT(default LIBC="$LIBC")])
3110 # **************************************************
3111 # * Check for various properties of floating point *
3112 # **************************************************
3114 AC_MSG_CHECKING(whether C doubles are little-endian IEEE 754 binary64)
3115 AC_CACHE_VAL(ac_cv_little_endian_double, [
3119 double x = 9006104071832581.0;
3120 if (memcmp(&x, "\x05\x04\x03\x02\x01\xff\x3f\x43", 8) == 0)
3126 ac_cv_little_endian_double=yes,
3127 ac_cv_little_endian_double=no,
3128 ac_cv_little_endian_double=no)])
3129 AC_MSG_RESULT($ac_cv_little_endian_double)
3130 if test "$ac_cv_little_endian_double" = yes
3132 AC_DEFINE(DOUBLE_IS_LITTLE_ENDIAN_IEEE754, 1,
3133 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3134 with the least significant byte first])
3137 AC_MSG_CHECKING(whether C doubles are big-endian IEEE 754 binary64)
3138 AC_CACHE_VAL(ac_cv_big_endian_double, [
3142 double x = 9006104071832581.0;
3143 if (memcmp(&x, "\x43\x3f\xff\x01\x02\x03\x04\x05", 8) == 0)
3149 ac_cv_big_endian_double=yes,
3150 ac_cv_big_endian_double=no,
3151 ac_cv_big_endian_double=no)])
3152 AC_MSG_RESULT($ac_cv_big_endian_double)
3153 if test "$ac_cv_big_endian_double" = yes
3155 AC_DEFINE(DOUBLE_IS_BIG_ENDIAN_IEEE754, 1,
3156 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3157 with the most significant byte first])
3160 # Some ARM platforms use a mixed-endian representation for doubles.
3161 # While Python doesn't currently have full support for these platforms
3162 # (see e.g., issue 1762561), we can at least make sure that float <-> string
3164 AC_MSG_CHECKING(whether C doubles are ARM mixed-endian IEEE 754 binary64)
3165 AC_CACHE_VAL(ac_cv_mixed_endian_double, [
3169 double x = 9006104071832581.0;
3170 if (memcmp(&x, "\x01\xff\x3f\x43\x05\x04\x03\x02", 8) == 0)
3176 ac_cv_mixed_endian_double=yes,
3177 ac_cv_mixed_endian_double=no,
3178 ac_cv_mixed_endian_double=no)])
3179 AC_MSG_RESULT($ac_cv_mixed_endian_double)
3180 if test "$ac_cv_mixed_endian_double" = yes
3182 AC_DEFINE(DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754, 1,
3183 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3184 in ARM mixed-endian order (byte order 45670123)])
3187 # The short float repr introduced in Python 3.1 requires the
3188 # correctly-rounded string <-> double conversion functions from
3189 # Python/dtoa.c, which in turn require that the FPU uses 53-bit
3190 # rounding; this is a problem on x86, where the x87 FPU has a default
3191 # rounding precision of 64 bits. For gcc/x86, we try to fix this by
3192 # using inline assembler to get and set the x87 FPU control word.
3193 if test "$GCC" = yes && test -n "`$CC -dM -E - </dev/null | grep i386`"
3195 # Check that it's okay to use gcc inline assembler to get and set
3196 # x87 control word. It should be, but you never know...
3197 AC_MSG_CHECKING(whether we can use gcc inline assembler to get and set x87 control word)
3198 AC_TRY_COMPILE([], [
3200 __asm__ __volatile__ ("fnstcw %0" : "=m" (cw));
3201 __asm__ __volatile__ ("fldcw %0" : : "m" (cw));
3203 [have_gcc_asm_for_x87=yes], [have_gcc_asm_for_x87=no])
3204 AC_MSG_RESULT($have_gcc_asm_for_x87)
3205 if test "$have_gcc_asm_for_x87" = yes
3207 AC_DEFINE(HAVE_GCC_ASM_FOR_X87, 1,
3208 [Define if we can use gcc inline assembler to get and set x87 control word])
3212 # Detect whether system arithmetic is subject to x87-style double
3213 # rounding issues. The result of this test has little meaning on non
3214 # IEEE 754 platforms. On IEEE 754, test should return 1 if rounding
3215 # mode is round-to-nearest and double rounding issues are present, and
3216 # 0 otherwise. See http://bugs.python.org/issue2937 for more info.
3217 AC_MSG_CHECKING(for x87-style double rounding)
3218 # $BASECFLAGS may affect the result
3220 CC="$CC $BASECFLAGS"
3225 volatile double x, y, z;
3226 /* 1./(1-2**-53) -> 1+2**-52 (correct), 1.0 (double rounding) */
3227 x = 0.99999999999999989; /* 1-2**-53 */
3231 /* 1e16+2.99999 -> 1e16+2. (correct), 1e16+4. (double rounding) */
3237 /* both tests show evidence of double rounding */
3241 ac_cv_x87_double_rounding=no,
3242 ac_cv_x87_double_rounding=yes,
3243 ac_cv_x87_double_rounding=no)
3245 AC_MSG_RESULT($ac_cv_x87_double_rounding)
3246 if test "$ac_cv_x87_double_rounding" = yes
3248 AC_DEFINE(X87_DOUBLE_ROUNDING, 1,
3249 [Define if arithmetic is subject to x87-style double rounding issue])
3252 # ************************************
3253 # * Check for mathematical functions *
3254 # ************************************
3259 # On FreeBSD 6.2, it appears that tanh(-0.) returns 0. instead of
3260 # -0. on some architectures.
3261 AC_MSG_CHECKING(whether tanh preserves the sign of zero)
3262 AC_CACHE_VAL(ac_cv_tanh_preserves_zero_sign, [
3267 /* return 0 if either negative zeros don't exist
3268 on this platform or if negative zeros exist
3269 and tanh(-0.) == -0. */
3270 if (atan2(0., -1.) == atan2(-0., -1.) ||
3271 atan2(tanh(-0.), -1.) == atan2(-0., -1.)) exit(0);
3275 ac_cv_tanh_preserves_zero_sign=yes,
3276 ac_cv_tanh_preserves_zero_sign=no,
3277 ac_cv_tanh_preserves_zero_sign=no)])
3278 AC_MSG_RESULT($ac_cv_tanh_preserves_zero_sign)
3279 if test "$ac_cv_tanh_preserves_zero_sign" = yes
3281 AC_DEFINE(TANH_PRESERVES_ZERO_SIGN, 1,
3282 [Define if tanh(-0.) is -0., or if platform doesn't have signed zeros])
3285 AC_CHECK_FUNCS([acosh asinh atanh copysign expm1 finite hypot log1p round])
3286 AC_CHECK_DECLS([isinf, isnan, isfinite], [], [], [[#include <math.h>]])
3290 # Multiprocessing check for broken sem_getvalue
3291 AC_MSG_CHECKING(for broken sem_getvalue)
3296 #include <semaphore.h>
3297 #include <sys/stat.h>
3300 sem_t *a = sem_open("/autoconf", O_CREAT, S_IRUSR|S_IWUSR, 0);
3308 res = sem_getvalue(a, &count);
3310 return res==-1 ? 1 : 0;
3315 AC_DEFINE(HAVE_BROKEN_SEM_GETVALUE, 1, define to 1 if your sem_getvalue is broken.)
3318 # determine what size digit to use for Python's longs
3319 AC_MSG_CHECKING([digit size for Python's longs])
3320 AC_ARG_ENABLE(big-digits,
3321 AC_HELP_STRING([--enable-big-digits@<:@=BITS@:>@],[use big digits for Python longs [[BITS=30]]]),
3322 [case $enable_big_digits in
3324 enable_big_digits=30 ;;
3326 enable_big_digits=15 ;;
3330 AC_MSG_ERROR([bad value $enable_big_digits for --enable-big-digits; value should be 15 or 30]) ;;
3332 AC_MSG_RESULT($enable_big_digits)
3333 AC_DEFINE_UNQUOTED(PYLONG_BITS_IN_DIGIT, $enable_big_digits, [Define as the preferred size in bits of long digits])
3335 [AC_MSG_RESULT(no value specified)])
3338 AC_CHECK_HEADER(wchar.h, [
3339 AC_DEFINE(HAVE_WCHAR_H, 1,
3340 [Define if the compiler provides a wchar.h header file.])
3346 # determine wchar_t size
3347 if test "$wchar_h" = yes
3349 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
3352 AC_MSG_CHECKING(for UCS-4 tcl)
3356 #if TCL_UTF_MAX != 6
3357 # error "NOT UCS4_TCL"
3359 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
3362 AC_MSG_RESULT($have_ucs4_tcl)
3364 # check whether wchar_t is signed or not
3365 if test "$wchar_h" = yes
3367 # check whether wchar_t is signed or not
3368 AC_MSG_CHECKING(whether wchar_t is signed)
3369 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
3374 /* Success: exit code 0 */
3375 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1);
3378 ac_cv_wchar_t_signed=yes,
3379 ac_cv_wchar_t_signed=no,
3380 ac_cv_wchar_t_signed=yes)])
3381 AC_MSG_RESULT($ac_cv_wchar_t_signed)
3384 AC_MSG_CHECKING(what type to use for str)
3385 AC_ARG_WITH(wide-unicode,
3386 AC_HELP_STRING(--with-wide-unicode, Use 4-byte Unicode characters (default is 2 bytes)),
3388 if test "$withval" != no
3389 then unicode_size="4"
3390 else unicode_size="2"
3394 case "$have_ucs4_tcl" in
3395 yes) unicode_size="4" ;;
3396 *) unicode_size="2" ;;
3400 AH_TEMPLATE(Py_UNICODE_SIZE,
3401 [Define as the size of the unicode type.])
3402 case "$unicode_size" in
3403 4) AC_DEFINE(Py_UNICODE_SIZE, 4) ;;
3404 *) AC_DEFINE(Py_UNICODE_SIZE, 2) ;;
3407 AH_TEMPLATE(PY_UNICODE_TYPE,
3408 [Define as the integral type used for Unicode representation.])
3410 # wchar_t is only usable if it maps to an unsigned type
3411 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
3412 -a "$ac_cv_wchar_t_signed" = "no"
3414 PY_UNICODE_TYPE="wchar_t"
3415 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
3416 [Define if you have a useable wchar_t type defined in wchar.h; useable
3417 means wchar_t must be an unsigned type with at least 16 bits. (see
3418 Include/unicodeobject.h).])
3419 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
3420 elif test "$ac_cv_sizeof_short" = "$unicode_size"
3422 PY_UNICODE_TYPE="unsigned short"
3423 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
3424 elif test "$ac_cv_sizeof_long" = "$unicode_size"
3426 PY_UNICODE_TYPE="unsigned long"
3427 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
3429 PY_UNICODE_TYPE="no type found"
3431 AC_MSG_RESULT($PY_UNICODE_TYPE)
3433 # check for endianness
3436 # Check whether right shifting a negative integer extends the sign bit
3437 # or fills with zeros (like the Cray J90, according to Tim Peters).
3438 AC_MSG_CHECKING(whether right shift extends the sign bit)
3439 AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
3443 exit(((-1)>>3 == -1) ? 0 : 1);
3446 ac_cv_rshift_extends_sign=yes,
3447 ac_cv_rshift_extends_sign=no,
3448 ac_cv_rshift_extends_sign=yes)])
3449 AC_MSG_RESULT($ac_cv_rshift_extends_sign)
3450 if test "$ac_cv_rshift_extends_sign" = no
3452 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
3453 [Define if i>>j for signed int i does not extend the sign bit
3457 # check for getc_unlocked and related locking functions
3458 AC_MSG_CHECKING(for getc_unlocked() and friends)
3459 AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
3460 AC_TRY_LINK([#include <stdio.h>],[
3461 FILE *f = fopen("/dev/null", "r");
3465 ], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
3466 AC_MSG_RESULT($ac_cv_have_getc_unlocked)
3467 if test "$ac_cv_have_getc_unlocked" = yes
3469 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
3470 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
3473 # check where readline lives
3474 # save the value of LIBS so we don't actually link Python with readline
3475 LIBS_no_readline=$LIBS
3477 # On some systems we need to link readline to a termcap compatible
3478 # library. NOTE: Keep the precedence of listed libraries synchronised
3480 py_cv_lib_readline=no
3481 AC_MSG_CHECKING([how to link readline libs])
3482 for py_libtermcap in "" ncursesw ncurses curses termcap; do
3483 if test -z "$py_libtermcap"; then
3484 READLINE_LIBS="-lreadline"
3486 READLINE_LIBS="-lreadline -l$py_libtermcap"
3488 LIBS="$READLINE_LIBS $LIBS_no_readline"
3490 [AC_LANG_CALL([],[readline])],
3491 [py_cv_lib_readline=yes])
3492 if test $py_cv_lib_readline = yes; then
3496 # Uncomment this line if you want to use READINE_LIBS in Makefile or scripts
3497 #AC_SUBST([READLINE_LIBS])
3498 if test $py_cv_lib_readline = no; then
3499 AC_MSG_RESULT([none])
3501 AC_MSG_RESULT([$READLINE_LIBS])
3502 AC_DEFINE(HAVE_LIBREADLINE, 1,
3503 [Define if you have the readline library (-lreadline).])
3506 # check for readline 2.1
3507 AC_CHECK_LIB(readline, rl_callback_handler_install,
3508 AC_DEFINE(HAVE_RL_CALLBACK, 1,
3509 [Define if you have readline 2.1]), ,$READLINE_LIBS)
3511 # check for readline 2.2
3512 AC_TRY_CPP([#include <readline/readline.h>],
3513 have_readline=yes, have_readline=no)
3514 if test $have_readline = yes
3516 AC_EGREP_HEADER([extern int rl_completion_append_character;],
3517 [readline/readline.h],
3518 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
3519 [Define if you have readline 2.2]), )
3522 # check for readline 4.0
3523 AC_CHECK_LIB(readline, rl_pre_input_hook,
3524 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
3525 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3528 AC_CHECK_LIB(readline, rl_completion_display_matches_hook,
3529 AC_DEFINE(HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK, 1,
3530 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3532 # check for readline 4.2
3533 AC_CHECK_LIB(readline, rl_completion_matches,
3534 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
3535 [Define if you have readline 4.2]), ,$READLINE_LIBS)
3537 # also in readline 4.2
3538 AC_TRY_CPP([#include <readline/readline.h>],
3539 have_readline=yes, have_readline=no)
3540 if test $have_readline = yes
3542 AC_EGREP_HEADER([extern int rl_catch_signals;],
3543 [readline/readline.h],
3544 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
3545 [Define if you can turn off readline's signal handling.]), )
3548 # End of readline checks: restore LIBS
3549 LIBS=$LIBS_no_readline
3551 AC_MSG_CHECKING(for broken nice())
3552 AC_CACHE_VAL(ac_cv_broken_nice, [
3557 if (val1 != -1 && val1 == nice(2))
3562 ac_cv_broken_nice=yes,
3563 ac_cv_broken_nice=no,
3564 ac_cv_broken_nice=no)])
3565 AC_MSG_RESULT($ac_cv_broken_nice)
3566 if test "$ac_cv_broken_nice" = yes
3568 AC_DEFINE(HAVE_BROKEN_NICE, 1,
3569 [Define if nice() returns success/failure instead of the new priority.])
3572 AC_MSG_CHECKING(for broken poll())
3578 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
3582 int poll_test = poll (&poll_struct, 1, 0);
3588 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
3598 ac_cv_broken_poll=yes,
3599 ac_cv_broken_poll=no,
3600 ac_cv_broken_poll=no)
3601 AC_MSG_RESULT($ac_cv_broken_poll)
3602 if test "$ac_cv_broken_poll" = yes
3604 AC_DEFINE(HAVE_BROKEN_POLL, 1,
3605 [Define if poll() sets errno on invalid file descriptors.])
3608 # Before we can test tzset, we need to check if struct tm has a tm_zone
3609 # (which is not required by ISO C or UNIX spec) and/or if we support
3613 # check tzset(3) exists and works like we expect it to
3614 AC_MSG_CHECKING(for working tzset())
3615 AC_CACHE_VAL(ac_cv_working_tzset, [
3622 extern char *tzname[];
3627 /* Note that we need to ensure that not only does tzset(3)
3628 do 'something' with localtime, but it works as documented
3629 in the library reference and as expected by the test suite.
3630 This includes making sure that tzname is set properly if
3631 tm->tm_zone does not exist since it is the alternative way
3632 of getting timezone info.
3634 Red Hat 6.2 doesn't understand the southern hemisphere
3635 after New Year's Day.
3638 time_t groundhogday = 1044144000; /* GMT-based */
3639 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
3643 if (localtime(&groundhogday)->tm_hour != 0)
3646 /* For UTC, tzname[1] is sometimes "", sometimes " " */
3647 if (strcmp(tzname[0], "UTC") ||
3648 (tzname[1][0] != 0 && tzname[1][0] != ' '))
3652 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
3654 if (localtime(&groundhogday)->tm_hour != 19)
3657 if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT"))
3661 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
3663 if (localtime(&groundhogday)->tm_hour != 11)
3666 if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT"))
3670 #if HAVE_STRUCT_TM_TM_ZONE
3671 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
3673 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
3680 ac_cv_working_tzset=yes,
3681 ac_cv_working_tzset=no,
3682 ac_cv_working_tzset=no)])
3683 AC_MSG_RESULT($ac_cv_working_tzset)
3684 if test "$ac_cv_working_tzset" = yes
3686 AC_DEFINE(HAVE_WORKING_TZSET, 1,
3687 [Define if tzset() actually switches the local timezone in a meaningful way.])
3690 # Look for subsecond timestamps in struct stat
3691 AC_MSG_CHECKING(for tv_nsec in struct stat)
3692 AC_CACHE_VAL(ac_cv_stat_tv_nsec,
3693 AC_TRY_COMPILE([#include <sys/stat.h>], [
3695 st.st_mtim.tv_nsec = 1;
3697 ac_cv_stat_tv_nsec=yes,
3698 ac_cv_stat_tv_nsec=no,
3699 ac_cv_stat_tv_nsec=no))
3700 AC_MSG_RESULT($ac_cv_stat_tv_nsec)
3701 if test "$ac_cv_stat_tv_nsec" = yes
3703 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
3704 [Define if you have struct stat.st_mtim.tv_nsec])
3707 # Look for BSD style subsecond timestamps in struct stat
3708 AC_MSG_CHECKING(for tv_nsec2 in struct stat)
3709 AC_CACHE_VAL(ac_cv_stat_tv_nsec2,
3710 AC_TRY_COMPILE([#include <sys/stat.h>], [
3712 st.st_mtimespec.tv_nsec = 1;
3714 ac_cv_stat_tv_nsec2=yes,
3715 ac_cv_stat_tv_nsec2=no,
3716 ac_cv_stat_tv_nsec2=no))
3717 AC_MSG_RESULT($ac_cv_stat_tv_nsec2)
3718 if test "$ac_cv_stat_tv_nsec2" = yes
3720 AC_DEFINE(HAVE_STAT_TV_NSEC2, 1,
3721 [Define if you have struct stat.st_mtimensec])
3724 # On HP/UX 11.0, mvwdelch is a block with a return statement
3725 AC_MSG_CHECKING(whether mvwdelch is an expression)
3726 AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
3727 AC_TRY_COMPILE([#include <curses.h>], [
3729 rtn = mvwdelch(0,0,0);
3730 ], ac_cv_mvwdelch_is_expression=yes,
3731 ac_cv_mvwdelch_is_expression=no,
3732 ac_cv_mvwdelch_is_expression=yes))
3733 AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
3735 if test "$ac_cv_mvwdelch_is_expression" = yes
3737 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
3738 [Define if mvwdelch in curses.h is an expression.])
3741 AC_MSG_CHECKING(whether WINDOW has _flags)
3742 AC_CACHE_VAL(ac_cv_window_has_flags,
3743 AC_TRY_COMPILE([#include <curses.h>], [
3746 ], ac_cv_window_has_flags=yes,
3747 ac_cv_window_has_flags=no,
3748 ac_cv_window_has_flags=no))
3749 AC_MSG_RESULT($ac_cv_window_has_flags)
3752 if test "$ac_cv_window_has_flags" = yes
3754 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3755 [Define if WINDOW in curses.h offers a field _flags.])
3758 AC_MSG_CHECKING(for is_term_resized)
3759 AC_TRY_COMPILE([#include <curses.h>], void *x=is_term_resized,
3760 AC_DEFINE(HAVE_CURSES_IS_TERM_RESIZED, 1, Define if you have the 'is_term_resized' function.)
3765 AC_MSG_CHECKING(for resize_term)
3766 AC_TRY_COMPILE([#include <curses.h>], void *x=resize_term,
3767 AC_DEFINE(HAVE_CURSES_RESIZE_TERM, 1, Define if you have the 'resize_term' function.)
3772 AC_MSG_CHECKING(for resizeterm)
3773 AC_TRY_COMPILE([#include <curses.h>], void *x=resizeterm,
3774 AC_DEFINE(HAVE_CURSES_RESIZETERM, 1, Define if you have the 'resizeterm' function.)
3779 AC_MSG_CHECKING(for /dev/ptmx)
3781 if test -r /dev/ptmx
3784 AC_DEFINE(HAVE_DEV_PTMX, 1,
3785 [Define if we have /dev/ptmx.])
3790 AC_MSG_CHECKING(for /dev/ptc)
3795 AC_DEFINE(HAVE_DEV_PTC, 1,
3796 [Define if we have /dev/ptc.])
3801 AC_MSG_CHECKING(for %zd printf() format support)
3802 AC_TRY_RUN([#include <stdio.h>
3806 #ifdef HAVE_SYS_TYPES_H
3807 #include <sys/types.h>
3811 typedef ssize_t Py_ssize_t;
3812 #elif SIZEOF_VOID_P == SIZEOF_LONG
3813 typedef long Py_ssize_t;
3815 typedef int Py_ssize_t;
3822 if(sprintf(buffer, "%zd", (size_t)123) < 0)
3825 if (strcmp(buffer, "123"))
3828 if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
3831 if (strcmp(buffer, "-123"))
3837 AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
3840 AC_CHECK_TYPE(socklen_t,,
3841 AC_DEFINE(socklen_t,int,
3842 Define to `int' if <sys/socket.h> does not define.),[
3843 #ifdef HAVE_SYS_TYPES_H
3844 #include <sys/types.h>
3846 #ifdef HAVE_SYS_SOCKET_H
3847 #include <sys/socket.h>
3851 AC_MSG_CHECKING(for broken mbstowcs)
3856 const char *str = "text";
3857 len = mbstowcs(NULL, str, 0);
3861 ac_cv_broken_mbstowcs=no,
3862 ac_cv_broken_mbstowcs=yes,
3863 ac_cv_broken_mbstowcs=no)
3864 AC_MSG_RESULT($ac_cv_broken_mbstowcs)
3865 if test "$ac_cv_broken_mbstowcs" = yes
3867 AC_DEFINE(HAVE_BROKEN_MBSTOWCS, 1,
3868 [Define if mbstowcs(NULL, "text", 0) does not return the number of
3869 wide chars that would be converted.])
3872 # Check for --with-computed-gotos
3873 AC_MSG_CHECKING(for --with-computed-gotos)
3874 AC_ARG_WITH(computed-gotos,
3875 AC_HELP_STRING(--with-computed-gotos,
3876 Use computed gotos / threaded dispatch in evaluation loop (not available on all compilers)),
3878 if test "$withval" != no
3880 AC_DEFINE(USE_COMPUTED_GOTOS, 1,
3881 [Define if you want to use computed gotos in ceval.c.])
3883 else AC_MSG_RESULT(no)
3885 [AC_MSG_RESULT(no)])
3888 AC_SUBST(THREADHEADERS)
3890 for h in `(cd $srcdir;echo Python/thread_*.h)`
3892 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3896 SRCDIRS="Parser Grammar Objects Python Modules Mac"
3897 AC_MSG_CHECKING(for build directories)
3898 for dir in $SRCDIRS; do
3899 if test ! -d $dir; then
3905 # generate output files
3906 AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc)
3909 echo "creating Modules/Setup"
3910 if test ! -f Modules/Setup
3912 cp $srcdir/Modules/Setup.dist Modules/Setup
3915 echo "creating Modules/Setup.local"
3916 if test ! -f Modules/Setup.local
3918 echo "# Edit this file for local setup changes" >Modules/Setup.local
3921 echo "creating Makefile"
3922 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3923 -s Modules Modules/Setup.config \
3924 Modules/Setup.local Modules/Setup