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 bininstall maninstall"
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 exported"
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).])
1529 AC_MSG_CHECKING(for dyld)
1530 case $ac_sys_system/$ac_sys_release in
1532 AC_DEFINE(WITH_DYLD, 1,
1533 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1534 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1535 linker (rld). Dyld is necessary to support frameworks.])
1536 AC_MSG_RESULT(always on for Darwin)
1543 # Set info about shared libraries.
1548 AC_SUBST(LINKFORSHARED)
1549 # SO is the extension of shared libraries `(including the dot!)
1550 # -- usually .so, .sl on HP-UX, .dll on Cygwin
1554 case $ac_sys_system in
1565 # this might also be a termcap variable, see #610332
1567 echo '====================================================================='
1569 echo '+ WARNING: You have set SO in your environment. +'
1570 echo '+ Do you really mean to change the extension for shared libraries? +'
1571 echo '+ Continuing in 10 seconds to let you to ponder. +'
1573 echo '====================================================================='
1578 AC_DEFINE_UNQUOTED(SHLIB_EXT, "$SO", [Define this to be extension of shared libraries (including the dot!).])
1579 # LDSHARED is the ld *command* used to create shared library
1580 # -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
1581 # (Shared libraries in this instance are shared modules to be loaded into
1582 # Python, as opposed to building Python itself as a shared library.)
1583 AC_MSG_CHECKING(LDSHARED)
1584 if test -z "$LDSHARED"
1586 case $ac_sys_system/$ac_sys_release in
1588 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
1589 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
1591 IRIX/5*) LDSHARED="ld -shared";;
1592 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
1594 if test "$GCC" = "yes"
1595 then LDSHARED='$(CC) -shared'
1596 else LDSHARED='$(CC) -G';
1599 if test "$GCC" = "yes"
1600 then LDSHARED='$(CC) -shared'
1601 else LDSHARED='ld -b';
1603 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
1605 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1606 if test "$enable_framework" ; then
1607 # Link against the framework. All externals should be defined.
1608 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1609 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1611 # No framework. Ignore undefined symbols, assuming they come from Python
1612 LDSHARED="$LDSHARED -undefined suppress"
1614 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
1615 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1616 if test "$enable_framework" ; then
1617 # Link against the framework. All externals should be defined.
1618 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1619 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1621 # No framework, use the Python app as bundle-loader
1622 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1623 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1626 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1627 # This allows an extension to be used in any Python
1629 if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
1631 if test "${enable_universalsdk}"; then
1632 LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
1634 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1635 BLDSHARED="$LDSHARED"
1637 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1638 if test "$enable_framework" ; then
1639 # Link against the framework. All externals should be defined.
1640 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1641 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1643 # No framework, use the Python app as bundle-loader
1644 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1645 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1649 Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
1650 BSD/OS*/4*) LDSHARED="gcc -shared";;
1652 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1654 LDSHARED="$CC -shared ${LDFLAGS}"
1656 LDSHARED="ld -Bshareable ${LDFLAGS}"
1659 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1661 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1664 [[01]].* | 2.[[0-7]] | 2.[[0-7]].*)
1665 LDSHARED="ld -Bshareable ${LDFLAGS}"
1668 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1672 NetBSD*|DragonFly*) LDSHARED="cc -shared ${LDFLAGS}";;
1673 OpenUNIX*|UnixWare*)
1674 if test "$GCC" = "yes"
1675 then LDSHARED='$(CC) -shared'
1676 else LDSHARED='$(CC) -G'
1678 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
1679 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
1680 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
1681 atheos*) LDSHARED="gcc -shared";;
1685 AC_MSG_RESULT($LDSHARED)
1686 BLDSHARED=${BLDSHARED-$LDSHARED}
1687 # CCSHARED are the C *flags* used to create objects to go into a shared
1688 # library (module) -- this is only needed for a few systems
1689 AC_MSG_CHECKING(CCSHARED)
1690 if test -z "$CCSHARED"
1692 case $ac_sys_system/$ac_sys_release in
1693 SunOS*) if test "$GCC" = yes;
1694 then CCSHARED="-fPIC";
1695 elif test `uname -p` = sparc;
1696 then CCSHARED="-xcode=pic32";
1697 else CCSHARED="-Kpic";
1699 hp*|HP*) if test "$GCC" = yes;
1700 then CCSHARED="-fPIC";
1703 Linux*|GNU*) CCSHARED="-fPIC";;
1704 BSD/OS*/4*) CCSHARED="-fpic";;
1705 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";;
1706 OpenUNIX*|UnixWare*)
1707 if test "$GCC" = "yes"
1708 then CCSHARED="-fPIC"
1709 else CCSHARED="-KPIC"
1712 if test "$GCC" = "yes"
1713 then CCSHARED="-fPIC"
1714 else CCSHARED="-Kpic -belf"
1716 Monterey*) CCSHARED="-G";;
1717 IRIX*/6*) case $CC in
1718 *gcc*) CCSHARED="-shared";;
1721 atheos*) CCSHARED="-fPIC";;
1724 AC_MSG_RESULT($CCSHARED)
1725 # LINKFORSHARED are the flags passed to the $(CC) command that links
1726 # the python executable -- this is only needed for a few systems
1727 AC_MSG_CHECKING(LINKFORSHARED)
1728 if test -z "$LINKFORSHARED"
1730 case $ac_sys_system/$ac_sys_release in
1731 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
1733 LINKFORSHARED="-Wl,-E -Wl,+s";;
1734 # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
1735 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
1736 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
1737 # -u libsys_s pulls in all symbols in libsys
1739 # -u _PyMac_Error is needed to pull in the mac toolbox glue,
1741 # not used by the core itself but which needs to be in the core so
1742 # that dynamically loaded extension modules have access to it.
1743 # -prebind is no longer used, because it actually seems to give a
1744 # slowdown in stead of a speedup, maybe due to the large number of
1745 # dynamic loads Python does.
1747 LINKFORSHARED="$extra_undefs -framework CoreFoundation"
1748 if test "$enable_framework"
1750 LINKFORSHARED="$LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1752 LINKFORSHARED="$LINKFORSHARED";;
1753 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
1754 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
1755 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
1756 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*)
1757 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1759 LINKFORSHARED="-Wl,--export-dynamic"
1761 SunOS/5*) case $CC in
1763 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
1765 LINKFORSHARED="-Xlinker --export-dynamic"
1769 if test $enable_shared = "no"
1771 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1774 # -Wl,-E causes the symbols to be added to the dynamic
1775 # symbol table so that they can be found when a module
1776 # is loaded. -N 2048K causes the stack size to be set
1777 # to 2048 kilobytes so that the stack doesn't overflow
1778 # when running test_compile.py.
1779 LINKFORSHARED='-Wl,-E -N 2048K';;
1782 AC_MSG_RESULT($LINKFORSHARED)
1785 AC_SUBST(CFLAGSFORSHARED)
1786 AC_MSG_CHECKING(CFLAGSFORSHARED)
1787 if test ! "$LIBRARY" = "$LDLIBRARY"
1789 case $ac_sys_system in
1791 # Cygwin needs CCSHARED when building extension DLLs
1792 # but not when building the interpreter DLL.
1793 CFLAGSFORSHARED='';;
1795 CFLAGSFORSHARED='$(CCSHARED)'
1798 AC_MSG_RESULT($CFLAGSFORSHARED)
1800 # SHLIBS are libraries (except -lc and -lm) to link to the python shared
1801 # library (with --enable-shared).
1802 # For platforms on which shared libraries are not allowed to have unresolved
1803 # symbols, this must be set to $(LIBS) (expanded by make). We do this even
1804 # if it is not required, since it creates a dependency of the shared library
1805 # to LIBS. This, in turn, means that applications linking the shared libpython
1806 # don't need to link LIBS explicitly. The default should be only changed
1807 # on systems where this approach causes problems.
1809 AC_MSG_CHECKING(SHLIBS)
1810 case "$ac_sys_system" in
1814 AC_MSG_RESULT($SHLIBS)
1817 # checks for libraries
1818 AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1819 AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
1821 # only check for sem_init if thread support is requested
1822 if test "$with_threads" = "yes" -o -z "$with_threads"; then
1823 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1824 # posix4 on Solaris 2.6
1825 # pthread (first!) on Linux
1828 # check if we need libintl for locale functions
1829 AC_CHECK_LIB(intl, textdomain,
1830 AC_DEFINE(WITH_LIBINTL, 1,
1831 [Define to 1 if libintl is needed for locale functions.]))
1833 # checks for system dependent C++ extensions support
1834 case "$ac_sys_system" in
1835 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1836 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1837 [loadAndInit("", 0, "")],
1838 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1839 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1840 and you want support for AIX C++ shared extension modules.])
1841 AC_MSG_RESULT(yes)],
1842 [AC_MSG_RESULT(no)]);;
1846 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
1847 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
1848 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
1850 AC_MSG_CHECKING(for --with-libs)
1852 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1854 AC_MSG_RESULT($withval)
1855 LIBS="$withval $LIBS"
1857 [AC_MSG_RESULT(no)])
1859 # Check for use of the system libffi library
1860 AC_MSG_CHECKING(for --with-system-ffi)
1861 AC_ARG_WITH(system_ffi,
1862 AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library))
1864 AC_MSG_RESULT($with_system_ffi)
1866 # Check for --with-dbmliborder
1867 AC_MSG_CHECKING(for --with-dbmliborder)
1868 AC_ARG_WITH(dbmliborder,
1869 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'.]),
1871 if test x$with_dbmliborder = xyes
1873 AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...])
1875 for db in `echo $with_dbmliborder | sed 's/:/ /g'`; do
1876 if test x$db != xndbm && test x$db != xgdbm && test x$db != xbdb
1878 AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...])
1882 AC_MSG_RESULT($with_dbmliborder)
1884 # Determine if signalmodule should be used.
1885 AC_SUBST(USE_SIGNAL_MODULE)
1886 AC_SUBST(SIGNAL_OBJS)
1887 AC_MSG_CHECKING(for --with-signal-module)
1888 AC_ARG_WITH(signal-module,
1889 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
1891 if test -z "$with_signal_module"
1892 then with_signal_module="yes"
1894 AC_MSG_RESULT($with_signal_module)
1896 if test "${with_signal_module}" = "yes"; then
1897 USE_SIGNAL_MODULE=""
1900 USE_SIGNAL_MODULE="#"
1901 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1904 # This is used to generate Setup.config
1905 AC_SUBST(USE_THREAD_MODULE)
1906 USE_THREAD_MODULE=""
1908 AC_MSG_CHECKING(for --with-dec-threads)
1910 AC_ARG_WITH(dec-threads,
1911 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1913 AC_MSG_RESULT($withval)
1915 if test "${with_thread+set}" != set; then
1916 with_thread="$withval";
1918 [AC_MSG_RESULT(no)])
1920 # Templates for things AC_DEFINEd more than once.
1921 # For a single AC_DEFINE, no template is needed.
1922 AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1923 AH_TEMPLATE(_REENTRANT,
1924 [Define to force use of thread-safe errno, h_errno, and other functions])
1925 AH_TEMPLATE(WITH_THREAD,
1926 [Define if you want to compile in rudimentary thread support])
1928 AC_MSG_CHECKING(for --with-threads)
1929 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1930 AC_ARG_WITH(threads,
1931 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
1933 # --with-thread is deprecated, but check for it anyway
1934 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1936 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1937 [with_threads=$with_thread])
1939 if test -z "$with_threads"
1940 then with_threads="yes"
1942 AC_MSG_RESULT($with_threads)
1945 if test "$with_threads" = "no"
1947 USE_THREAD_MODULE="#"
1948 elif test "$ac_cv_pthread_is_default" = yes
1950 AC_DEFINE(WITH_THREAD)
1951 # Defining _REENTRANT on system with POSIX threads should not hurt.
1952 AC_DEFINE(_REENTRANT)
1954 THREADOBJ="Python/thread.o"
1955 elif test "$ac_cv_kpthread" = "yes"
1958 if test "$ac_cv_cxx_thread" = "yes"; then
1959 CXX="$CXX -Kpthread"
1961 AC_DEFINE(WITH_THREAD)
1963 THREADOBJ="Python/thread.o"
1964 elif test "$ac_cv_kthread" = "yes"
1967 if test "$ac_cv_cxx_thread" = "yes"; then
1970 AC_DEFINE(WITH_THREAD)
1972 THREADOBJ="Python/thread.o"
1973 elif test "$ac_cv_pthread" = "yes"
1976 if test "$ac_cv_cxx_thread" = "yes"; then
1979 AC_DEFINE(WITH_THREAD)
1981 THREADOBJ="Python/thread.o"
1983 if test ! -z "$with_threads" -a -d "$with_threads"
1984 then LDFLAGS="$LDFLAGS -L$with_threads"
1986 if test ! -z "$withval" -a -d "$withval"
1987 then LDFLAGS="$LDFLAGS -L$withval"
1990 # According to the POSIX spec, a pthreads implementation must
1991 # define _POSIX_THREADS in unistd.h. Some apparently don't
1992 # (e.g. gnu pth with pthread emulation)
1993 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
1997 #ifdef _POSIX_THREADS
2000 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
2001 AC_MSG_RESULT($unistd_defines_pthreads)
2003 AC_DEFINE(_REENTRANT)
2004 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
2005 AC_DEFINE(C_THREADS)
2006 AC_DEFINE(HURD_C_THREADS, 1,
2007 [Define if you are using Mach cthreads directly under /include])
2008 LIBS="$LIBS -lthreads"
2009 THREADOBJ="Python/thread.o"],[
2010 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
2011 AC_DEFINE(C_THREADS)
2012 AC_DEFINE(MACH_C_THREADS, 1,
2013 [Define if you are using Mach cthreads under mach /])
2014 THREADOBJ="Python/thread.o"],[
2015 AC_MSG_CHECKING(for --with-pth)
2017 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
2018 [AC_MSG_RESULT($withval)
2019 AC_DEFINE([WITH_THREAD])
2020 AC_DEFINE([HAVE_PTH], 1,
2021 [Define if you have GNU PTH threads.])
2023 THREADOBJ="Python/thread.o"],
2026 # Just looking for pthread_create in libpthread is not enough:
2027 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
2028 # So we really have to include pthread.h, and then link.
2030 LIBS="$LIBS -lpthread"
2031 AC_MSG_CHECKING([for pthread_create in -lpthread])
2032 AC_TRY_LINK([#include <pthread.h>
2034 void * start_routine (void *arg) { exit (0); }], [
2035 pthread_create (NULL, NULL, start_routine, NULL)], [
2037 AC_DEFINE(WITH_THREAD)
2039 THREADOBJ="Python/thread.o"],[
2041 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
2043 THREADOBJ="Python/thread.o"],[
2044 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
2045 AC_DEFINE(ATHEOS_THREADS, 1,
2046 [Define this if you have AtheOS threads.])
2047 THREADOBJ="Python/thread.o"],[
2048 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
2050 LIBS="$LIBS -lpthreads"
2051 THREADOBJ="Python/thread.o"], [
2052 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
2055 THREADOBJ="Python/thread.o"], [
2056 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
2058 LIBS="$LIBS -lpthread"
2059 THREADOBJ="Python/thread.o"], [
2060 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
2063 THREADOBJ="Python/thread.o"],[
2064 USE_THREAD_MODULE="#"])
2067 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
2069 THREADOBJ="Python/thread.o"
2070 USE_THREAD_MODULE=""])
2072 if test "$posix_threads" != "yes"; then
2073 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
2074 LIBS="$LIBS -lthread"
2075 THREADOBJ="Python/thread.o"
2076 USE_THREAD_MODULE=""])
2079 if test "$USE_THREAD_MODULE" != "#"
2081 # If the above checks didn't disable threads, (at least) OSF1
2082 # needs this '-threads' argument during linking.
2083 case $ac_sys_system in
2084 OSF1) LDLAST=-threads;;
2089 if test "$posix_threads" = "yes"; then
2090 if test "$unistd_defines_pthreads" = "no"; then
2091 AC_DEFINE(_POSIX_THREADS, 1,
2092 [Define if you have POSIX threads,
2093 and your system does not define that.])
2096 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
2097 case $ac_sys_system/$ac_sys_release in
2098 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
2099 Defined for Solaris 2.6 bug in pthread header.)
2101 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2102 Define if the Posix semaphores do not work on your system)
2104 AIX/5) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2105 Define if the Posix semaphores do not work on your system)
2109 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
2110 AC_CACHE_VAL(ac_cv_pthread_system_supported,
2111 [AC_TRY_RUN([#include <pthread.h>
2112 void *foo(void *parm) {
2116 pthread_attr_t attr;
2118 if (pthread_attr_init(&attr)) exit(-1);
2119 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
2120 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
2123 ac_cv_pthread_system_supported=yes,
2124 ac_cv_pthread_system_supported=no,
2125 ac_cv_pthread_system_supported=no)
2127 AC_MSG_RESULT($ac_cv_pthread_system_supported)
2128 if test "$ac_cv_pthread_system_supported" = "yes"; then
2129 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
2131 AC_CHECK_FUNCS(pthread_sigmask,
2132 [case $ac_sys_system in
2134 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
2135 [Define if pthread_sigmask() does not work on your system.])
2141 # Check for enable-ipv6
2142 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
2143 AC_MSG_CHECKING([if --enable-ipv6 is specified])
2145 [ --enable-ipv6 Enable ipv6 (with ipv4) support
2146 --disable-ipv6 Disable ipv6 support],
2147 [ case "$enableval" in
2152 *) AC_MSG_RESULT(yes)
2153 AC_DEFINE(ENABLE_IPV6)
2159 dnl the check does not work on cross compilation case...
2160 AC_TRY_RUN([ /* AF_INET6 available check */
2161 #include <sys/types.h>
2162 #include <sys/socket.h>
2165 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
2179 if test "$ipv6" = "yes"; then
2180 AC_MSG_CHECKING(if RFC2553 API is available)
2181 AC_TRY_COMPILE([#include <sys/types.h>
2182 #include <netinet/in.h>],
2183 [struct sockaddr_in6 x;
2187 AC_MSG_RESULT(no, IPv6 disabled)
2191 if test "$ipv6" = "yes"; then
2192 AC_DEFINE(ENABLE_IPV6)
2200 if test "$ipv6" = "yes"; then
2201 AC_MSG_CHECKING([ipv6 stack type])
2202 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
2206 dnl http://www.kame.net/
2208 #include <netinet/in.h>
2209 #ifdef IPV6_INRIA_VERSION
2215 dnl http://www.kame.net/
2217 #include <netinet/in.h>
2223 ipv6libdir=/usr/local/v6/lib
2227 dnl http://www.v6.linux.or.jp/
2229 #include <features.h>
2230 #if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
2237 dnl http://www.v6.linux.or.jp/
2238 if test -d /usr/inet6; then
2241 ipv6libdir=/usr/inet6/lib
2242 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
2246 if test -f /etc/netconfig; then
2247 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
2255 #include <sys/param.h>
2256 #ifdef _TOSHIBA_INET6
2261 ipv6libdir=/usr/local/v6/lib])
2265 #include </usr/local/v6/include/sys/v6config.h>
2271 ipv6libdir=/usr/local/v6/lib;
2272 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
2276 #include <sys/param.h>
2277 #ifdef _ZETA_MINAMI_INET6
2282 ipv6libdir=/usr/local/v6/lib])
2285 if test "$ipv6type" != "unknown"; then
2289 AC_MSG_RESULT($ipv6type)
2292 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
2293 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
2294 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
2295 echo "using lib$ipv6lib"
2297 if test $ipv6trylibc = "yes"; then
2300 echo 'Fatal: no $ipv6lib library found. cannot continue.'
2301 echo "You need to fetch lib$ipv6lib.a from appropriate"
2302 echo 'ipv6 kit and compile beforehand.'
2308 AC_MSG_CHECKING(for OSX 10.5 SDK or later)
2309 AC_TRY_COMPILE([#include <Carbon/Carbon.h>], FSIORefNum fRef = 0,
2310 AC_DEFINE(HAVE_OSX105_SDK, 1, Define if compiling using MacOS X 10.5 SDK or later.)
2315 # Check for --with-doc-strings
2316 AC_MSG_CHECKING(for --with-doc-strings)
2317 AC_ARG_WITH(doc-strings,
2318 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
2320 if test -z "$with_doc_strings"
2321 then with_doc_strings="yes"
2323 if test "$with_doc_strings" != "no"
2325 AC_DEFINE(WITH_DOC_STRINGS, 1,
2326 [Define if you want documentation strings in extension modules])
2328 AC_MSG_RESULT($with_doc_strings)
2330 # Check for Python-specific malloc support
2331 AC_MSG_CHECKING(for --with-tsc)
2333 [ --with(out)-tsc enable/disable timestamp counter profile], [
2334 if test "$withval" != no
2336 AC_DEFINE(WITH_TSC, 1,
2337 [Define to profile with the Pentium timestamp counter])
2339 else AC_MSG_RESULT(no)
2341 [AC_MSG_RESULT(no)])
2343 # Check for Python-specific malloc support
2344 AC_MSG_CHECKING(for --with-pymalloc)
2345 AC_ARG_WITH(pymalloc,
2346 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
2348 if test -z "$with_pymalloc"
2349 then with_pymalloc="yes"
2351 if test "$with_pymalloc" != "no"
2353 AC_DEFINE(WITH_PYMALLOC, 1,
2354 [Define if you want to compile in Python-specific mallocs])
2356 AC_MSG_RESULT($with_pymalloc)
2358 # Check for --with-wctype-functions
2359 AC_MSG_CHECKING(for --with-wctype-functions)
2360 AC_ARG_WITH(wctype-functions,
2361 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
2363 if test "$withval" != no
2365 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2366 [Define if you want wctype.h functions to be used instead of the
2367 one supplied by Python itself. (see Include/unicodectype.h).])
2369 else AC_MSG_RESULT(no)
2371 [AC_MSG_RESULT(no)])
2373 # -I${DLINCLDIR} is added to the compile rule for importdl.o
2377 # the dlopen() function means we might want to use dynload_shlib.o. some
2378 # platforms, such as AIX, have dlopen(), but don't want to use it.
2379 AC_CHECK_FUNCS(dlopen)
2381 # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2382 # loading of modules.
2383 AC_SUBST(DYNLOADFILE)
2384 AC_MSG_CHECKING(DYNLOADFILE)
2385 if test -z "$DYNLOADFILE"
2387 case $ac_sys_system/$ac_sys_release in
2388 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2389 if test "$ac_cv_func_dlopen" = yes
2390 then DYNLOADFILE="dynload_shlib.o"
2391 else DYNLOADFILE="dynload_aix.o"
2394 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
2395 # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
2396 Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
2397 atheos*) DYNLOADFILE="dynload_atheos.o";;
2399 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2400 # out any dynamic loading
2401 if test "$ac_cv_func_dlopen" = yes
2402 then DYNLOADFILE="dynload_shlib.o"
2403 else DYNLOADFILE="dynload_stub.o"
2408 AC_MSG_RESULT($DYNLOADFILE)
2409 if test "$DYNLOADFILE" != "dynload_stub.o"
2411 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2412 [Defined when any dynamic module loading is enabled.])
2415 # MACHDEP_OBJS can be set to platform-specific object files needed by Python
2417 AC_SUBST(MACHDEP_OBJS)
2418 AC_MSG_CHECKING(MACHDEP_OBJS)
2419 if test -z "$MACHDEP_OBJS"
2421 MACHDEP_OBJS=$extra_machdep_objs
2423 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
2425 AC_MSG_RESULT(MACHDEP_OBJS)
2427 # checks for library functions
2428 AC_CHECK_FUNCS(alarm setitimer getitimer bind_textdomain_codeset chown \
2429 clock confstr ctermid execv fchmod fchown fork fpathconf ftime ftruncate \
2430 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
2431 getpriority getpwent getspnam getspent getsid getwd \
2432 kill killpg lchmod lchown lstat mbrtowc mkfifo mknod mktime \
2433 mremap nice pathconf pause plock poll pthread_init \
2434 putenv readlink realpath \
2435 select sem_open sem_timedwait sem_getvalue sem_unlink setegid seteuid \
2437 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
2438 sigaction siginterrupt sigrelse strftime strlcpy \
2439 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
2440 truncate uname unsetenv utimes waitpid wait3 wait4 wcscoll wcsxfrm _getpty)
2442 # For some functions, having a definition is not sufficient, since
2443 # we want to take their address.
2444 AC_MSG_CHECKING(for chroot)
2445 AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2446 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2450 AC_MSG_CHECKING(for link)
2451 AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2452 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2456 AC_MSG_CHECKING(for symlink)
2457 AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2458 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2462 AC_MSG_CHECKING(for fchdir)
2463 AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2464 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2468 AC_MSG_CHECKING(for fsync)
2469 AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
2470 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
2474 AC_MSG_CHECKING(for fdatasync)
2475 AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2476 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2480 AC_MSG_CHECKING(for epoll)
2481 AC_TRY_COMPILE([#include <sys/epoll.h>], void *x=epoll_create,
2482 AC_DEFINE(HAVE_EPOLL, 1, Define if you have the 'epoll' functions.)
2486 AC_MSG_CHECKING(for kqueue)
2488 #include <sys/types.h>
2489 #include <sys/event.h>
2491 AC_DEFINE(HAVE_KQUEUE, 1, Define if you have the 'kqueue' functions.)
2495 # On some systems (eg. FreeBSD 5), we would find a definition of the
2496 # functions ctermid_r, setgroups in the library, but no prototype
2497 # (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2498 # address to avoid compiler warnings and potential miscompilations
2499 # because of the missing prototypes.
2501 AC_MSG_CHECKING(for ctermid_r)
2503 #include "confdefs.h"
2505 ], void* p = ctermid_r,
2506 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2511 AC_MSG_CHECKING(for flock)
2513 #include "confdefs.h"
2514 #include <sys/file.h>
2516 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2521 AC_MSG_CHECKING(for getpagesize)
2523 #include "confdefs.h"
2525 ], void* p = getpagesize,
2526 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2532 AC_CHECK_PROGS(TRUE, true, /bin/true)
2534 dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2535 dnl On others, they are in the C library, so we to take no action
2536 AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
2537 AC_CHECK_LIB(resolv, inet_aton)
2540 # On Tru64, chflags seems to be present, but calling it will
2542 AC_MSG_CHECKING(for chflags)
2544 #include <sys/stat.h>
2546 int main(int argc, char*argv[])
2548 if(chflags(argv[0], 0) != 0)
2552 ],AC_DEFINE(HAVE_CHFLAGS, 1, Define to 1 if you have the `chflags' function.)
2557 AC_MSG_CHECKING(for lchflags)
2559 #include <sys/stat.h>
2561 int main(int argc, char*argv[])
2563 if(lchflags(argv[0], 0) != 0)
2567 ],AC_DEFINE(HAVE_LCHFLAGS, 1, Define to 1 if you have the `lchflags' function.)
2572 dnl Check if system zlib has *Copy() functions
2574 dnl On MacOSX the linker will search for dylibs on the entire linker path
2575 dnl before searching for static libraries. setup.py adds -Wl,-search_paths_first
2576 dnl to revert to a more traditional unix behaviour and make it possible to
2577 dnl override the system libz with a local static library of libz. Temporarily
2578 dnl add that flag to our CFLAGS as well to ensure that we check the version
2579 dnl of libz that will be used by setup.py.
2580 dnl The -L/usr/local/lib is needed as wel to get the same compilation
2581 dnl environment as setup.py (and leaving it out can cause configure to use the
2582 dnl wrong version of the library)
2583 case $ac_sys_system/$ac_sys_release in
2585 _CUR_CFLAGS="${CFLAGS}"
2586 _CUR_LDFLAGS="${LDFLAGS}"
2587 CFLAGS="${CFLAGS} -Wl,-search_paths_first"
2588 LDFLAGS="${LDFLAGS} -Wl,-search_paths_first -L/usr/local/lib"
2592 AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_ZLIB_COPY, 1, Define if the zlib library has inflateCopy))
2594 case $ac_sys_system/$ac_sys_release in
2596 CFLAGS="${_CUR_CFLAGS}"
2597 LDFLAGS="${_CUR_LDFLAGS}"
2601 AC_MSG_CHECKING(for hstrerror)
2603 #include "confdefs.h"
2605 ], void* p = hstrerror; hstrerror(0),
2606 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2611 AC_MSG_CHECKING(for inet_aton)
2613 #include "confdefs.h"
2614 #include <sys/types.h>
2615 #include <sys/socket.h>
2616 #include <netinet/in.h>
2617 #include <arpa/inet.h>
2618 ], void* p = inet_aton;inet_aton(0,0),
2619 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2624 AC_MSG_CHECKING(for inet_pton)
2626 #include "confdefs.h"
2627 #include <sys/types.h>
2628 #include <sys/socket.h>
2629 #include <netinet/in.h>
2630 #include <arpa/inet.h>
2631 ], void* p = inet_pton,
2632 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2637 # On some systems, setgroups is in unistd.h, on others, in grp.h
2638 AC_MSG_CHECKING(for setgroups)
2640 #include "confdefs.h"
2646 void* p = setgroups,
2647 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2652 # check for openpty and forkpty
2654 AC_CHECK_FUNCS(openpty,,
2655 AC_CHECK_LIB(util,openpty,
2656 [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"],
2657 AC_CHECK_LIB(bsd,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lbsd"])
2660 AC_CHECK_FUNCS(forkpty,,
2661 AC_CHECK_LIB(util,forkpty,
2662 [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"],
2663 AC_CHECK_LIB(bsd,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lbsd"])
2668 AC_CHECK_FUNCS(memmove)
2670 # check for long file support functions
2671 AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2673 AC_REPLACE_FUNCS(dup2 getcwd strdup)
2674 AC_CHECK_FUNCS(getpgrp,
2675 AC_TRY_COMPILE([#include <unistd.h>],
2677 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2678 [Define if getpgrp() must be called as getpgrp(0).])
2681 AC_CHECK_FUNCS(setpgrp,
2682 AC_TRY_COMPILE([#include <unistd.h>],
2684 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2685 [Define if setpgrp() must be called as setpgrp(0, 0).])
2688 AC_CHECK_FUNCS(gettimeofday,
2689 AC_TRY_COMPILE([#include <sys/time.h>],
2690 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2691 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2692 [Define if gettimeofday() does not have second (timezone) argument
2693 This is the case on Motorola V4 (R40V4.2)])
2697 AC_MSG_CHECKING(for major, minor, and makedev)
2699 #if defined(MAJOR_IN_MKDEV)
2700 #include <sys/mkdev.h>
2701 #elif defined(MAJOR_IN_SYSMACROS)
2702 #include <sys/sysmacros.h>
2704 #include <sys/types.h>
2707 makedev(major(0),minor(0));
2709 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2710 [Define to 1 if you have the device macros.])
2716 # On OSF/1 V5.1, getaddrinfo is available, but a define
2717 # for [no]getaddrinfo in netdb.h.
2718 AC_MSG_CHECKING(for getaddrinfo)
2720 #include <sys/types.h>
2721 #include <sys/socket.h>
2725 getaddrinfo(NULL, NULL, NULL, NULL);
2728 AC_MSG_CHECKING(getaddrinfo bug)
2730 #include <sys/types.h>
2733 #include <sys/socket.h>
2734 #include <netinet/in.h>
2738 int passive, gaierr, inet4 = 0, inet6 = 0;
2739 struct addrinfo hints, *ai, *aitop;
2740 char straddr[INET6_ADDRSTRLEN], strport[16];
2742 for (passive = 0; passive <= 1; passive++) {
2743 memset(&hints, 0, sizeof(hints));
2744 hints.ai_family = AF_UNSPEC;
2745 hints.ai_flags = passive ? AI_PASSIVE : 0;
2746 hints.ai_socktype = SOCK_STREAM;
2747 hints.ai_protocol = IPPROTO_TCP;
2748 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2749 (void)gai_strerror(gaierr);
2752 for (ai = aitop; ai; ai = ai->ai_next) {
2753 if (ai->ai_addr == NULL ||
2754 ai->ai_addrlen == 0 ||
2755 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2756 straddr, sizeof(straddr), strport, sizeof(strport),
2757 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2760 switch (ai->ai_family) {
2762 if (strcmp(strport, "54321") != 0) {
2766 if (strcmp(straddr, "0.0.0.0") != 0) {
2770 if (strcmp(straddr, "127.0.0.1") != 0) {
2777 if (strcmp(strport, "54321") != 0) {
2781 if (strcmp(straddr, "::") != 0) {
2785 if (strcmp(straddr, "::1") != 0) {
2795 /* another family support? */
2801 if (!(inet4 == 0 || inet4 == 2))
2803 if (!(inet6 == 0 || inet6 == 2))
2807 freeaddrinfo(aitop);
2812 freeaddrinfo(aitop);
2817 buggygetaddrinfo=no,
2818 AC_MSG_RESULT(buggy)
2819 buggygetaddrinfo=yes,
2820 AC_MSG_RESULT(buggy)
2821 buggygetaddrinfo=yes)], [
2823 buggygetaddrinfo=yes
2826 if test "$buggygetaddrinfo" = "yes"; then
2827 if test "$ipv6" = "yes"; then
2828 echo 'Fatal: You must get working getaddrinfo() function.'
2829 echo ' or you can specify "--disable-ipv6"'.
2833 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
2835 AC_CHECK_FUNCS(getnameinfo)
2837 # checks for structures
2841 AC_CHECK_MEMBERS([struct stat.st_rdev])
2842 AC_CHECK_MEMBERS([struct stat.st_blksize])
2843 AC_CHECK_MEMBERS([struct stat.st_flags])
2844 AC_CHECK_MEMBERS([struct stat.st_gen])
2845 AC_CHECK_MEMBERS([struct stat.st_birthtime])
2848 AC_MSG_CHECKING(for time.h that defines altzone)
2849 AC_CACHE_VAL(ac_cv_header_time_altzone,
2850 [AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2851 ac_cv_header_time_altzone=yes,
2852 ac_cv_header_time_altzone=no)])
2853 AC_MSG_RESULT($ac_cv_header_time_altzone)
2854 if test $ac_cv_header_time_altzone = yes; then
2855 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
2859 AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
2861 #include <sys/types.h>
2862 #include <sys/select.h>
2863 #include <sys/time.h>
2865 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2866 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2867 (which you can't on SCO ODT 3.0).])
2870 AC_MSG_RESULT($was_it_defined)
2872 AC_MSG_CHECKING(for addrinfo)
2873 AC_CACHE_VAL(ac_cv_struct_addrinfo,
2875 # include <netdb.h>],
2876 [struct addrinfo a],
2877 ac_cv_struct_addrinfo=yes,
2878 ac_cv_struct_addrinfo=no))
2879 AC_MSG_RESULT($ac_cv_struct_addrinfo)
2880 if test $ac_cv_struct_addrinfo = yes; then
2881 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
2884 AC_MSG_CHECKING(for sockaddr_storage)
2885 AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2887 # include <sys/types.h>
2888 # include <sys/socket.h>],
2889 [struct sockaddr_storage s],
2890 ac_cv_struct_sockaddr_storage=yes,
2891 ac_cv_struct_sockaddr_storage=no))
2892 AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2893 if test $ac_cv_struct_sockaddr_storage = yes; then
2894 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
2897 # checks for compiler characteristics
2903 AC_MSG_CHECKING(for working volatile)
2904 AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2905 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2907 AC_MSG_RESULT($works)
2910 AC_MSG_CHECKING(for working signed char)
2911 AC_TRY_COMPILE([], [signed char c;], works=yes,
2912 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2914 AC_MSG_RESULT($works)
2917 AC_MSG_CHECKING(for prototypes)
2918 AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2919 AC_DEFINE(HAVE_PROTOTYPES, 1,
2920 [Define if your compiler supports function prototype])
2923 AC_MSG_RESULT($have_prototypes)
2926 AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
2929 int foo(int x, ...) {
2937 ], [return foo(10, "", 3.14);], [
2938 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2939 [Define if your compiler supports variable length function prototypes
2940 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2943 AC_MSG_RESULT($works)
2945 # check for socketpair
2946 AC_MSG_CHECKING(for socketpair)
2948 #include <sys/types.h>
2949 #include <sys/socket.h>
2950 ], void *x=socketpair,
2951 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
2956 # check if sockaddr has sa_len member
2957 AC_MSG_CHECKING(if sockaddr has sa_len member)
2958 AC_TRY_COMPILE([#include <sys/types.h>
2959 #include <sys/socket.h>],
2963 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
2967 AC_MSG_CHECKING(whether va_list is an array)
2969 #ifdef HAVE_STDARG_PROTOTYPES
2972 #include <varargs.h>
2974 ], [va_list list1, list2; list1 = list2;], , [
2975 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
2976 va_list_is_array=yes
2978 AC_MSG_RESULT($va_list_is_array)
2980 # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
2981 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
2982 [Define this if you have some version of gethostbyname_r()])
2984 AC_CHECK_FUNC(gethostbyname_r, [
2985 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2986 AC_MSG_CHECKING([gethostbyname_r with 6 args])
2988 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
2993 struct hostent *he, *res;
2998 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
3000 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3001 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
3002 [Define this if you have the 6-arg version of gethostbyname_r().])
3006 AC_MSG_CHECKING([gethostbyname_r with 5 args])
3016 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
3018 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3019 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
3020 [Define this if you have the 5-arg version of gethostbyname_r().])
3024 AC_MSG_CHECKING([gethostbyname_r with 3 args])
3030 struct hostent_data data;
3032 (void) gethostbyname_r(name, he, &data);
3034 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3035 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
3036 [Define this if you have the 3-arg version of gethostbyname_r().])
3045 AC_CHECK_FUNCS(gethostbyname)
3047 AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
3048 AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
3049 AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
3050 AC_SUBST(HAVE_GETHOSTBYNAME_R)
3051 AC_SUBST(HAVE_GETHOSTBYNAME)
3053 # checks for system services
3056 # Linux requires this for correct f.p. operations
3057 AC_CHECK_FUNC(__fpu_control,
3059 [AC_CHECK_LIB(ieee, __fpu_control)
3062 # Check for --with-fpectl
3063 AC_MSG_CHECKING(for --with-fpectl)
3065 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
3067 if test "$withval" != no
3069 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
3070 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
3072 else AC_MSG_RESULT(no)
3074 [AC_MSG_RESULT(no)])
3076 # check for --with-libm=...
3078 case $ac_sys_system in
3082 AC_MSG_CHECKING(for --with-libm=STRING)
3084 AC_HELP_STRING(--with-libm=STRING, math library),
3086 if test "$withval" = no
3088 AC_MSG_RESULT(force LIBM empty)
3089 elif test "$withval" != yes
3091 AC_MSG_RESULT(set LIBM="$withval")
3092 else AC_MSG_ERROR([proper usage is --with-libm=STRING])
3094 [AC_MSG_RESULT(default LIBM="$LIBM")])
3096 # check for --with-libc=...
3098 AC_MSG_CHECKING(for --with-libc=STRING)
3100 AC_HELP_STRING(--with-libc=STRING, C library),
3102 if test "$withval" = no
3104 AC_MSG_RESULT(force LIBC empty)
3105 elif test "$withval" != yes
3107 AC_MSG_RESULT(set LIBC="$withval")
3108 else AC_MSG_ERROR([proper usage is --with-libc=STRING])
3110 [AC_MSG_RESULT(default LIBC="$LIBC")])
3112 # **************************************************
3113 # * Check for various properties of floating point *
3114 # **************************************************
3116 AC_MSG_CHECKING(whether C doubles are little-endian IEEE 754 binary64)
3117 AC_CACHE_VAL(ac_cv_little_endian_double, [
3121 double x = 9006104071832581.0;
3122 if (memcmp(&x, "\x05\x04\x03\x02\x01\xff\x3f\x43", 8) == 0)
3128 ac_cv_little_endian_double=yes,
3129 ac_cv_little_endian_double=no,
3130 ac_cv_little_endian_double=no)])
3131 AC_MSG_RESULT($ac_cv_little_endian_double)
3132 if test "$ac_cv_little_endian_double" = yes
3134 AC_DEFINE(DOUBLE_IS_LITTLE_ENDIAN_IEEE754, 1,
3135 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3136 with the least significant byte first])
3139 AC_MSG_CHECKING(whether C doubles are big-endian IEEE 754 binary64)
3140 AC_CACHE_VAL(ac_cv_big_endian_double, [
3144 double x = 9006104071832581.0;
3145 if (memcmp(&x, "\x43\x3f\xff\x01\x02\x03\x04\x05", 8) == 0)
3151 ac_cv_big_endian_double=yes,
3152 ac_cv_big_endian_double=no,
3153 ac_cv_big_endian_double=no)])
3154 AC_MSG_RESULT($ac_cv_big_endian_double)
3155 if test "$ac_cv_big_endian_double" = yes
3157 AC_DEFINE(DOUBLE_IS_BIG_ENDIAN_IEEE754, 1,
3158 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3159 with the most significant byte first])
3162 # Some ARM platforms use a mixed-endian representation for doubles.
3163 # While Python doesn't currently have full support for these platforms
3164 # (see e.g., issue 1762561), we can at least make sure that float <-> string
3166 AC_MSG_CHECKING(whether C doubles are ARM mixed-endian IEEE 754 binary64)
3167 AC_CACHE_VAL(ac_cv_mixed_endian_double, [
3171 double x = 9006104071832581.0;
3172 if (memcmp(&x, "\x01\xff\x3f\x43\x05\x04\x03\x02", 8) == 0)
3178 ac_cv_mixed_endian_double=yes,
3179 ac_cv_mixed_endian_double=no,
3180 ac_cv_mixed_endian_double=no)])
3181 AC_MSG_RESULT($ac_cv_mixed_endian_double)
3182 if test "$ac_cv_mixed_endian_double" = yes
3184 AC_DEFINE(DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754, 1,
3185 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3186 in ARM mixed-endian order (byte order 45670123)])
3189 # The short float repr introduced in Python 3.1 requires the
3190 # correctly-rounded string <-> double conversion functions from
3191 # Python/dtoa.c, which in turn require that the FPU uses 53-bit
3192 # rounding; this is a problem on x86, where the x87 FPU has a default
3193 # rounding precision of 64 bits. For gcc/x86, we try to fix this by
3194 # using inline assembler to get and set the x87 FPU control word.
3195 if test "$GCC" = yes && test -n "`$CC -dM -E - </dev/null | grep i386`"
3197 # Check that it's okay to use gcc inline assembler to get and set
3198 # x87 control word. It should be, but you never know...
3199 AC_MSG_CHECKING(whether we can use gcc inline assembler to get and set x87 control word)
3200 AC_TRY_COMPILE([], [
3202 __asm__ __volatile__ ("fnstcw %0" : "=m" (cw));
3203 __asm__ __volatile__ ("fldcw %0" : : "m" (cw));
3205 [have_gcc_asm_for_x87=yes], [have_gcc_asm_for_x87=no])
3206 AC_MSG_RESULT($have_gcc_asm_for_x87)
3207 if test "$have_gcc_asm_for_x87" = yes
3209 AC_DEFINE(HAVE_GCC_ASM_FOR_X87, 1,
3210 [Define if we can use gcc inline assembler to get and set x87 control word])
3214 # Detect whether system arithmetic is subject to x87-style double
3215 # rounding issues. The result of this test has little meaning on non
3216 # IEEE 754 platforms. On IEEE 754, test should return 1 if rounding
3217 # mode is round-to-nearest and double rounding issues are present, and
3218 # 0 otherwise. See http://bugs.python.org/issue2937 for more info.
3219 AC_MSG_CHECKING(for x87-style double rounding)
3220 # $BASECFLAGS may affect the result
3222 CC="$CC $BASECFLAGS"
3227 volatile double x, y, z;
3228 /* 1./(1-2**-53) -> 1+2**-52 (correct), 1.0 (double rounding) */
3229 x = 0.99999999999999989; /* 1-2**-53 */
3233 /* 1e16+2.99999 -> 1e16+2. (correct), 1e16+4. (double rounding) */
3239 /* both tests show evidence of double rounding */
3243 ac_cv_x87_double_rounding=no,
3244 ac_cv_x87_double_rounding=yes,
3245 ac_cv_x87_double_rounding=no)
3247 AC_MSG_RESULT($ac_cv_x87_double_rounding)
3248 if test "$ac_cv_x87_double_rounding" = yes
3250 AC_DEFINE(X87_DOUBLE_ROUNDING, 1,
3251 [Define if arithmetic is subject to x87-style double rounding issue])
3254 # ************************************
3255 # * Check for mathematical functions *
3256 # ************************************
3261 # On FreeBSD 6.2, it appears that tanh(-0.) returns 0. instead of
3262 # -0. on some architectures.
3263 AC_MSG_CHECKING(whether tanh preserves the sign of zero)
3264 AC_CACHE_VAL(ac_cv_tanh_preserves_zero_sign, [
3269 /* return 0 if either negative zeros don't exist
3270 on this platform or if negative zeros exist
3271 and tanh(-0.) == -0. */
3272 if (atan2(0., -1.) == atan2(-0., -1.) ||
3273 atan2(tanh(-0.), -1.) == atan2(-0., -1.)) exit(0);
3277 ac_cv_tanh_preserves_zero_sign=yes,
3278 ac_cv_tanh_preserves_zero_sign=no,
3279 ac_cv_tanh_preserves_zero_sign=no)])
3280 AC_MSG_RESULT($ac_cv_tanh_preserves_zero_sign)
3281 if test "$ac_cv_tanh_preserves_zero_sign" = yes
3283 AC_DEFINE(TANH_PRESERVES_ZERO_SIGN, 1,
3284 [Define if tanh(-0.) is -0., or if platform doesn't have signed zeros])
3287 AC_CHECK_FUNCS([acosh asinh atanh copysign expm1 finite hypot log1p round])
3288 AC_CHECK_DECLS([isinf, isnan, isfinite], [], [], [[#include <math.h>]])
3292 # Multiprocessing check for broken sem_getvalue
3293 AC_MSG_CHECKING(for broken sem_getvalue)
3298 #include <semaphore.h>
3299 #include <sys/stat.h>
3302 sem_t *a = sem_open("/autoconf", O_CREAT, S_IRUSR|S_IWUSR, 0);
3310 res = sem_getvalue(a, &count);
3312 return res==-1 ? 1 : 0;
3317 AC_DEFINE(HAVE_BROKEN_SEM_GETVALUE, 1, define to 1 if your sem_getvalue is broken.)
3320 # determine what size digit to use for Python's longs
3321 AC_MSG_CHECKING([digit size for Python's longs])
3322 AC_ARG_ENABLE(big-digits,
3323 AC_HELP_STRING([--enable-big-digits@<:@=BITS@:>@],[use big digits for Python longs [[BITS=30]]]),
3324 [case $enable_big_digits in
3326 enable_big_digits=30 ;;
3328 enable_big_digits=15 ;;
3332 AC_MSG_ERROR([bad value $enable_big_digits for --enable-big-digits; value should be 15 or 30]) ;;
3334 AC_MSG_RESULT($enable_big_digits)
3335 AC_DEFINE_UNQUOTED(PYLONG_BITS_IN_DIGIT, $enable_big_digits, [Define as the preferred size in bits of long digits])
3337 [AC_MSG_RESULT(no value specified)])
3340 AC_CHECK_HEADER(wchar.h, [
3341 AC_DEFINE(HAVE_WCHAR_H, 1,
3342 [Define if the compiler provides a wchar.h header file.])
3348 # determine wchar_t size
3349 if test "$wchar_h" = yes
3351 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
3354 AC_MSG_CHECKING(for UCS-4 tcl)
3358 #if TCL_UTF_MAX != 6
3359 # error "NOT UCS4_TCL"
3361 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
3364 AC_MSG_RESULT($have_ucs4_tcl)
3366 # check whether wchar_t is signed or not
3367 if test "$wchar_h" = yes
3369 # check whether wchar_t is signed or not
3370 AC_MSG_CHECKING(whether wchar_t is signed)
3371 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
3376 /* Success: exit code 0 */
3377 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1);
3380 ac_cv_wchar_t_signed=yes,
3381 ac_cv_wchar_t_signed=no,
3382 ac_cv_wchar_t_signed=yes)])
3383 AC_MSG_RESULT($ac_cv_wchar_t_signed)
3386 AC_MSG_CHECKING(what type to use for str)
3387 AC_ARG_WITH(wide-unicode,
3388 AC_HELP_STRING(--with-wide-unicode, Use 4-byte Unicode characters (default is 2 bytes)),
3390 if test "$withval" != no
3391 then unicode_size="4"
3392 else unicode_size="2"
3396 case "$have_ucs4_tcl" in
3397 yes) unicode_size="4" ;;
3398 *) unicode_size="2" ;;
3402 AH_TEMPLATE(Py_UNICODE_SIZE,
3403 [Define as the size of the unicode type.])
3404 case "$unicode_size" in
3405 4) AC_DEFINE(Py_UNICODE_SIZE, 4) ;;
3406 *) AC_DEFINE(Py_UNICODE_SIZE, 2) ;;
3409 AH_TEMPLATE(PY_UNICODE_TYPE,
3410 [Define as the integral type used for Unicode representation.])
3412 # wchar_t is only usable if it maps to an unsigned type
3413 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
3414 -a "$ac_cv_wchar_t_signed" = "no"
3416 PY_UNICODE_TYPE="wchar_t"
3417 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
3418 [Define if you have a useable wchar_t type defined in wchar.h; useable
3419 means wchar_t must be an unsigned type with at least 16 bits. (see
3420 Include/unicodeobject.h).])
3421 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
3422 elif test "$ac_cv_sizeof_short" = "$unicode_size"
3424 PY_UNICODE_TYPE="unsigned short"
3425 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
3426 elif test "$ac_cv_sizeof_long" = "$unicode_size"
3428 PY_UNICODE_TYPE="unsigned long"
3429 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
3431 PY_UNICODE_TYPE="no type found"
3433 AC_MSG_RESULT($PY_UNICODE_TYPE)
3435 # check for endianness
3438 # Check whether right shifting a negative integer extends the sign bit
3439 # or fills with zeros (like the Cray J90, according to Tim Peters).
3440 AC_MSG_CHECKING(whether right shift extends the sign bit)
3441 AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
3445 exit(((-1)>>3 == -1) ? 0 : 1);
3448 ac_cv_rshift_extends_sign=yes,
3449 ac_cv_rshift_extends_sign=no,
3450 ac_cv_rshift_extends_sign=yes)])
3451 AC_MSG_RESULT($ac_cv_rshift_extends_sign)
3452 if test "$ac_cv_rshift_extends_sign" = no
3454 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
3455 [Define if i>>j for signed int i does not extend the sign bit
3459 # check for getc_unlocked and related locking functions
3460 AC_MSG_CHECKING(for getc_unlocked() and friends)
3461 AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
3462 AC_TRY_LINK([#include <stdio.h>],[
3463 FILE *f = fopen("/dev/null", "r");
3467 ], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
3468 AC_MSG_RESULT($ac_cv_have_getc_unlocked)
3469 if test "$ac_cv_have_getc_unlocked" = yes
3471 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
3472 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
3475 # check where readline lives
3476 # save the value of LIBS so we don't actually link Python with readline
3477 LIBS_no_readline=$LIBS
3479 # On some systems we need to link readline to a termcap compatible
3480 # library. NOTE: Keep the precedence of listed libraries synchronised
3482 py_cv_lib_readline=no
3483 AC_MSG_CHECKING([how to link readline libs])
3484 for py_libtermcap in "" ncursesw ncurses curses termcap; do
3485 if test -z "$py_libtermcap"; then
3486 READLINE_LIBS="-lreadline"
3488 READLINE_LIBS="-lreadline -l$py_libtermcap"
3490 LIBS="$READLINE_LIBS $LIBS_no_readline"
3492 [AC_LANG_CALL([],[readline])],
3493 [py_cv_lib_readline=yes])
3494 if test $py_cv_lib_readline = yes; then
3498 # Uncomment this line if you want to use READINE_LIBS in Makefile or scripts
3499 #AC_SUBST([READLINE_LIBS])
3500 if test $py_cv_lib_readline = no; then
3501 AC_MSG_RESULT([none])
3503 AC_MSG_RESULT([$READLINE_LIBS])
3504 AC_DEFINE(HAVE_LIBREADLINE, 1,
3505 [Define if you have the readline library (-lreadline).])
3508 # check for readline 2.1
3509 AC_CHECK_LIB(readline, rl_callback_handler_install,
3510 AC_DEFINE(HAVE_RL_CALLBACK, 1,
3511 [Define if you have readline 2.1]), ,$READLINE_LIBS)
3513 # check for readline 2.2
3514 AC_TRY_CPP([#include <readline/readline.h>],
3515 have_readline=yes, have_readline=no)
3516 if test $have_readline = yes
3518 AC_EGREP_HEADER([extern int rl_completion_append_character;],
3519 [readline/readline.h],
3520 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
3521 [Define if you have readline 2.2]), )
3524 # check for readline 4.0
3525 AC_CHECK_LIB(readline, rl_pre_input_hook,
3526 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
3527 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3530 AC_CHECK_LIB(readline, rl_completion_display_matches_hook,
3531 AC_DEFINE(HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK, 1,
3532 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3534 # check for readline 4.2
3535 AC_CHECK_LIB(readline, rl_completion_matches,
3536 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
3537 [Define if you have readline 4.2]), ,$READLINE_LIBS)
3539 # also in readline 4.2
3540 AC_TRY_CPP([#include <readline/readline.h>],
3541 have_readline=yes, have_readline=no)
3542 if test $have_readline = yes
3544 AC_EGREP_HEADER([extern int rl_catch_signals;],
3545 [readline/readline.h],
3546 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
3547 [Define if you can turn off readline's signal handling.]), )
3550 # End of readline checks: restore LIBS
3551 LIBS=$LIBS_no_readline
3553 AC_MSG_CHECKING(for broken nice())
3554 AC_CACHE_VAL(ac_cv_broken_nice, [
3559 if (val1 != -1 && val1 == nice(2))
3564 ac_cv_broken_nice=yes,
3565 ac_cv_broken_nice=no,
3566 ac_cv_broken_nice=no)])
3567 AC_MSG_RESULT($ac_cv_broken_nice)
3568 if test "$ac_cv_broken_nice" = yes
3570 AC_DEFINE(HAVE_BROKEN_NICE, 1,
3571 [Define if nice() returns success/failure instead of the new priority.])
3574 AC_MSG_CHECKING(for broken poll())
3580 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
3584 int poll_test = poll (&poll_struct, 1, 0);
3590 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
3600 ac_cv_broken_poll=yes,
3601 ac_cv_broken_poll=no,
3602 ac_cv_broken_poll=no)
3603 AC_MSG_RESULT($ac_cv_broken_poll)
3604 if test "$ac_cv_broken_poll" = yes
3606 AC_DEFINE(HAVE_BROKEN_POLL, 1,
3607 [Define if poll() sets errno on invalid file descriptors.])
3610 # Before we can test tzset, we need to check if struct tm has a tm_zone
3611 # (which is not required by ISO C or UNIX spec) and/or if we support
3615 # check tzset(3) exists and works like we expect it to
3616 AC_MSG_CHECKING(for working tzset())
3617 AC_CACHE_VAL(ac_cv_working_tzset, [
3624 extern char *tzname[];
3629 /* Note that we need to ensure that not only does tzset(3)
3630 do 'something' with localtime, but it works as documented
3631 in the library reference and as expected by the test suite.
3632 This includes making sure that tzname is set properly if
3633 tm->tm_zone does not exist since it is the alternative way
3634 of getting timezone info.
3636 Red Hat 6.2 doesn't understand the southern hemisphere
3637 after New Year's Day.
3640 time_t groundhogday = 1044144000; /* GMT-based */
3641 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
3645 if (localtime(&groundhogday)->tm_hour != 0)
3648 /* For UTC, tzname[1] is sometimes "", sometimes " " */
3649 if (strcmp(tzname[0], "UTC") ||
3650 (tzname[1][0] != 0 && tzname[1][0] != ' '))
3654 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
3656 if (localtime(&groundhogday)->tm_hour != 19)
3659 if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT"))
3663 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
3665 if (localtime(&groundhogday)->tm_hour != 11)
3668 if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT"))
3672 #if HAVE_STRUCT_TM_TM_ZONE
3673 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
3675 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
3682 ac_cv_working_tzset=yes,
3683 ac_cv_working_tzset=no,
3684 ac_cv_working_tzset=no)])
3685 AC_MSG_RESULT($ac_cv_working_tzset)
3686 if test "$ac_cv_working_tzset" = yes
3688 AC_DEFINE(HAVE_WORKING_TZSET, 1,
3689 [Define if tzset() actually switches the local timezone in a meaningful way.])
3692 # Look for subsecond timestamps in struct stat
3693 AC_MSG_CHECKING(for tv_nsec in struct stat)
3694 AC_CACHE_VAL(ac_cv_stat_tv_nsec,
3695 AC_TRY_COMPILE([#include <sys/stat.h>], [
3697 st.st_mtim.tv_nsec = 1;
3699 ac_cv_stat_tv_nsec=yes,
3700 ac_cv_stat_tv_nsec=no,
3701 ac_cv_stat_tv_nsec=no))
3702 AC_MSG_RESULT($ac_cv_stat_tv_nsec)
3703 if test "$ac_cv_stat_tv_nsec" = yes
3705 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
3706 [Define if you have struct stat.st_mtim.tv_nsec])
3709 # Look for BSD style subsecond timestamps in struct stat
3710 AC_MSG_CHECKING(for tv_nsec2 in struct stat)
3711 AC_CACHE_VAL(ac_cv_stat_tv_nsec2,
3712 AC_TRY_COMPILE([#include <sys/stat.h>], [
3714 st.st_mtimespec.tv_nsec = 1;
3716 ac_cv_stat_tv_nsec2=yes,
3717 ac_cv_stat_tv_nsec2=no,
3718 ac_cv_stat_tv_nsec2=no))
3719 AC_MSG_RESULT($ac_cv_stat_tv_nsec2)
3720 if test "$ac_cv_stat_tv_nsec2" = yes
3722 AC_DEFINE(HAVE_STAT_TV_NSEC2, 1,
3723 [Define if you have struct stat.st_mtimensec])
3726 # On HP/UX 11.0, mvwdelch is a block with a return statement
3727 AC_MSG_CHECKING(whether mvwdelch is an expression)
3728 AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
3729 AC_TRY_COMPILE([#include <curses.h>], [
3731 rtn = mvwdelch(0,0,0);
3732 ], ac_cv_mvwdelch_is_expression=yes,
3733 ac_cv_mvwdelch_is_expression=no,
3734 ac_cv_mvwdelch_is_expression=yes))
3735 AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
3737 if test "$ac_cv_mvwdelch_is_expression" = yes
3739 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
3740 [Define if mvwdelch in curses.h is an expression.])
3743 AC_MSG_CHECKING(whether WINDOW has _flags)
3744 AC_CACHE_VAL(ac_cv_window_has_flags,
3745 AC_TRY_COMPILE([#include <curses.h>], [
3748 ], ac_cv_window_has_flags=yes,
3749 ac_cv_window_has_flags=no,
3750 ac_cv_window_has_flags=no))
3751 AC_MSG_RESULT($ac_cv_window_has_flags)
3754 if test "$ac_cv_window_has_flags" = yes
3756 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3757 [Define if WINDOW in curses.h offers a field _flags.])
3760 AC_MSG_CHECKING(for is_term_resized)
3761 AC_TRY_COMPILE([#include <curses.h>], void *x=is_term_resized,
3762 AC_DEFINE(HAVE_CURSES_IS_TERM_RESIZED, 1, Define if you have the 'is_term_resized' function.)
3767 AC_MSG_CHECKING(for resize_term)
3768 AC_TRY_COMPILE([#include <curses.h>], void *x=resize_term,
3769 AC_DEFINE(HAVE_CURSES_RESIZE_TERM, 1, Define if you have the 'resize_term' function.)
3774 AC_MSG_CHECKING(for resizeterm)
3775 AC_TRY_COMPILE([#include <curses.h>], void *x=resizeterm,
3776 AC_DEFINE(HAVE_CURSES_RESIZETERM, 1, Define if you have the 'resizeterm' function.)
3781 AC_MSG_CHECKING(for /dev/ptmx)
3783 if test -r /dev/ptmx
3786 AC_DEFINE(HAVE_DEV_PTMX, 1,
3787 [Define if we have /dev/ptmx.])
3792 AC_MSG_CHECKING(for /dev/ptc)
3797 AC_DEFINE(HAVE_DEV_PTC, 1,
3798 [Define if we have /dev/ptc.])
3803 AC_MSG_CHECKING(for %zd printf() format support)
3804 AC_TRY_RUN([#include <stdio.h>
3808 #ifdef HAVE_SYS_TYPES_H
3809 #include <sys/types.h>
3813 typedef ssize_t Py_ssize_t;
3814 #elif SIZEOF_VOID_P == SIZEOF_LONG
3815 typedef long Py_ssize_t;
3817 typedef int Py_ssize_t;
3824 if(sprintf(buffer, "%zd", (size_t)123) < 0)
3827 if (strcmp(buffer, "123"))
3830 if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
3833 if (strcmp(buffer, "-123"))
3839 AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
3842 AC_CHECK_TYPE(socklen_t,,
3843 AC_DEFINE(socklen_t,int,
3844 Define to `int' if <sys/socket.h> does not define.),[
3845 #ifdef HAVE_SYS_TYPES_H
3846 #include <sys/types.h>
3848 #ifdef HAVE_SYS_SOCKET_H
3849 #include <sys/socket.h>
3853 AC_MSG_CHECKING(for broken mbstowcs)
3858 const char *str = "text";
3859 len = mbstowcs(NULL, str, 0);
3863 ac_cv_broken_mbstowcs=no,
3864 ac_cv_broken_mbstowcs=yes,
3865 ac_cv_broken_mbstowcs=no)
3866 AC_MSG_RESULT($ac_cv_broken_mbstowcs)
3867 if test "$ac_cv_broken_mbstowcs" = yes
3869 AC_DEFINE(HAVE_BROKEN_MBSTOWCS, 1,
3870 [Define if mbstowcs(NULL, "text", 0) does not return the number of
3871 wide chars that would be converted.])
3874 # Check for --with-computed-gotos
3875 AC_MSG_CHECKING(for --with-computed-gotos)
3876 AC_ARG_WITH(computed-gotos,
3877 AC_HELP_STRING(--with-computed-gotos,
3878 Use computed gotos / threaded dispatch in evaluation loop (not available on all compilers)),
3880 if test "$withval" != no
3882 AC_DEFINE(USE_COMPUTED_GOTOS, 1,
3883 [Define if you want to use computed gotos in ceval.c.])
3885 else AC_MSG_RESULT(no)
3887 [AC_MSG_RESULT(no)])
3890 AC_SUBST(THREADHEADERS)
3892 for h in `(cd $srcdir;echo Python/thread_*.h)`
3894 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3898 SRCDIRS="Parser Grammar Objects Python Modules Mac"
3899 AC_MSG_CHECKING(for build directories)
3900 for dir in $SRCDIRS; do
3901 if test ! -d $dir; then
3907 # generate output files
3908 AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
3911 echo "creating Modules/Setup"
3912 if test ! -f Modules/Setup
3914 cp $srcdir/Modules/Setup.dist Modules/Setup
3917 echo "creating Modules/Setup.local"
3918 if test ! -f Modules/Setup.local
3920 echo "# Edit this file for local setup changes" >Modules/Setup.local
3923 echo "creating Makefile"
3924 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3925 -s Modules Modules/Setup.config \
3926 Modules/Setup.local Modules/Setup