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_MSG_CHECKING([for --enable-universalsdk])
82 AC_ARG_ENABLE(universalsdk,
83 AC_HELP_STRING(--enable-universalsdk@<:@=SDKDIR@:>@, Build against Mac OS X 10.4u SDK (ppc/i386)),
87 enableval=/Developer/SDKs/MacOSX10.4u.sdk
88 if test ! -d "${enableval}"
100 UNIVERSALSDK=$enableval
101 if test ! -d "${UNIVERSALSDK}"
103 AC_MSG_ERROR([--enable-universalsdk specifies non-existing SDK: ${UNIVERSALSDK}])
112 if test -n "${UNIVERSALSDK}"
114 AC_MSG_RESULT(${UNIVERSALSDK})
118 AC_SUBST(UNIVERSALSDK)
120 AC_SUBST(ARCH_RUN_32BIT)
122 UNIVERSAL_ARCHS="32-bit"
123 AC_SUBST(LIPO_32BIT_FLAGS)
124 AC_SUBST(LIPO_64BIT_FLAGS)
125 AC_MSG_CHECKING(for --with-universal-archs)
126 AC_ARG_WITH(universal-archs,
127 AC_HELP_STRING(--with-universal-archs=ARCH, select architectures for universal build ("32-bit", "64-bit", "3-way", "intel" or "all")),
129 AC_MSG_RESULT($withval)
130 UNIVERSAL_ARCHS="$withval"
133 AC_MSG_RESULT(32-bit)
138 AC_ARG_WITH(framework-name,
139 AC_HELP_STRING(--with-framework-name=FRAMEWORK,
140 specify an alternate name of the framework built with --enable-framework),
142 PYTHONFRAMEWORK=${withval}
143 PYTHONFRAMEWORKDIR=${withval}.framework
144 PYTHONFRAMEWORKIDENTIFIER=org.python.`echo $withval | tr '[A-Z]' '[a-z]'`
146 PYTHONFRAMEWORK=Python
147 PYTHONFRAMEWORKDIR=Python.framework
148 PYTHONFRAMEWORKIDENTIFIER=org.python.python
150 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
151 AC_ARG_ENABLE(framework,
152 AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework),
156 enableval=/Library/Frameworks
161 PYTHONFRAMEWORKDIR=no-framework
162 PYTHONFRAMEWORKPREFIX=
163 PYTHONFRAMEWORKINSTALLDIR=
164 FRAMEWORKINSTALLFIRST=
165 FRAMEWORKINSTALLLAST=
166 FRAMEWORKALTINSTALLFIRST=
167 FRAMEWORKALTINSTALLLAST=
168 if test "x${prefix}" = "xNONE"; then
169 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
171 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
176 PYTHONFRAMEWORKPREFIX=$enableval
177 PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
178 FRAMEWORKINSTALLFIRST="frameworkinstallstructure"
179 FRAMEWORKALTINSTALLFIRST="frameworkinstallstructure "
180 case "${UNIVERSAL_ARCHS}" in
182 FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps4way frameworkinstallunixtools4way"
183 FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps4way frameworkaltinstallunixtools4way"
186 FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools"
187 FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools"
191 if test "x${prefix}" = "xNONE" ; then
192 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
194 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
196 prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
198 # Add files for Mac specific code to the list of output
200 AC_CONFIG_FILES(Mac/Makefile)
201 AC_CONFIG_FILES(Mac/PythonLauncher/Makefile)
202 AC_CONFIG_FILES(Mac/Resources/framework/Info.plist)
203 AC_CONFIG_FILES(Mac/Resources/app/Info.plist)
207 PYTHONFRAMEWORKDIR=no-framework
208 PYTHONFRAMEWORKPREFIX=
209 PYTHONFRAMEWORKINSTALLDIR=
210 FRAMEWORKINSTALLFIRST=
211 FRAMEWORKINSTALLLAST=
212 FRAMEWORKALTINSTALLFIRST=
213 FRAMEWORKALTINSTALLLAST=
214 if test "x${prefix}" = "xNONE" ; then
215 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
217 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
221 if test "$UNIVERSAL_ARCHS" = "all"
223 FRAMEWORKINSTALLLAST=update4wayuniversal
224 FRAMEWORKALTINSTALLLAST=update4wayuniversal
227 AC_SUBST(PYTHONFRAMEWORK)
228 AC_SUBST(PYTHONFRAMEWORKIDENTIFIER)
229 AC_SUBST(PYTHONFRAMEWORKDIR)
230 AC_SUBST(PYTHONFRAMEWORKPREFIX)
231 AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)
232 AC_SUBST(FRAMEWORKINSTALLFIRST)
233 AC_SUBST(FRAMEWORKINSTALLLAST)
234 AC_SUBST(FRAMEWORKALTINSTALLFIRST)
235 AC_SUBST(FRAMEWORKALTINSTALLLAST)
236 AC_SUBST(FRAMEWORKUNIXTOOLSPREFIX)
239 ## AC_HELP_STRING(--with-dyld,
240 ## Use (OpenStep|Rhapsody) dynamic linker))
242 # Set name for machine-dependent library files
244 AC_MSG_CHECKING(MACHDEP)
245 if test -z "$MACHDEP"
247 ac_sys_system=`uname -s`
248 if test "$ac_sys_system" = "AIX" \
249 -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
250 ac_sys_release=`uname -v`
252 ac_sys_release=`uname -r`
254 ac_md_system=`echo $ac_sys_system |
255 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
256 ac_md_release=`echo $ac_sys_release |
257 tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
258 MACHDEP="$ac_md_system$ac_md_release"
261 cygwin*) MACHDEP="cygwin";;
262 darwin*) MACHDEP="darwin";;
263 atheos*) MACHDEP="atheos";;
264 irix646) MACHDEP="irix6";;
265 '') MACHDEP="unknown";;
269 # Some systems cannot stand _XOPEN_SOURCE being defined at all; they
270 # disable features if it is defined, without any means to access these
271 # features as extensions. For these systems, we skip the definition of
272 # _XOPEN_SOURCE. Before adding a system to the list to gain access to
273 # some feature, make sure there is no alternative way to access this
274 # feature. Also, when using wildcards, make sure you have verified the
275 # need for not defining _XOPEN_SOURCE on all systems matching the
276 # wildcard, and that the wildcard does not include future systems
277 # (which may remove their limitations).
278 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
279 case $ac_sys_system/$ac_sys_release in
280 # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined,
281 # even though select is a POSIX function. Reported by J. Ribbens.
282 # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
283 # In addition, Stefan Krah confirms that issue #1244610 exists through
284 # OpenBSD 4.6, but is fixed in 4.7.
285 OpenBSD/2.* | OpenBSD/3.@<:@0123456789@:>@ | OpenBSD/4.@<:@0123456@:>@)
286 define_xopen_source=no
287 # OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is
288 # also defined. This can be overridden by defining _BSD_SOURCE
289 # As this has a different meaning on Linux, only define it on OpenBSD
290 AC_DEFINE(_BSD_SOURCE, 1, [Define on OpenBSD to activate all library features])
292 OpenBSD/4.@<:@789@:>@)
293 # OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is
294 # also defined. This can be overridden by defining _BSD_SOURCE
295 # As this has a different meaning on Linux, only define it on OpenBSD
296 AC_DEFINE(_BSD_SOURCE, 1, [Define on OpenBSD to activate all library features])
298 # Defining _XOPEN_SOURCE on NetBSD version prior to the introduction of
299 # _NETBSD_SOURCE disables certain features (eg. setgroups). Reported by
301 NetBSD/1.5 | NetBSD/1.5.* | NetBSD/1.6 | NetBSD/1.6.* | NetBSD/1.6@<:@A-S@:>@)
302 define_xopen_source=no;;
303 # On Solaris 2.6, sys/wait.h is inconsistent in the usage
304 # of union __?sigval. Reported by Stuart Bishop.
306 define_xopen_source=no;;
307 # On UnixWare 7, u_long is never defined with _XOPEN_SOURCE,
308 # but used in /usr/include/netinet/tcp.h. Reported by Tim Rice.
309 # Reconfirmed for 7.1.4 by Martin v. Loewis.
310 OpenUNIX/8.0.0| UnixWare/7.1.@<:@0-4@:>@)
311 define_xopen_source=no;;
312 # On OpenServer 5, u_short is never defined with _XOPEN_SOURCE,
313 # but used in struct sockaddr.sa_family. Reported by Tim Rice.
315 define_xopen_source=no;;
316 # On FreeBSD 4, the math functions C89 does not cover are never defined
317 # with _XOPEN_SOURCE and __BSD_VISIBLE does not re-enable them.
319 define_xopen_source=no;;
320 # On MacOS X 10.2, a bug in ncurses.h means that it craps out if
321 # _XOPEN_EXTENDED_SOURCE is defined. Apparently, this is fixed in 10.3, which
322 # identifies itself as Darwin/7.*
323 # On Mac OS X 10.4, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
324 # disables platform specific features beyond repair.
325 # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
326 # has no effect, don't bother defining them
327 Darwin/@<:@6789@:>@.*)
328 define_xopen_source=no;;
329 Darwin/1@<:@0-9@:>@.*)
330 define_xopen_source=no;;
331 # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
332 # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
333 # or has another value. By not (re)defining it, the defaults come in place.
335 define_xopen_source=no;;
337 if test `uname -r` -eq 1; then
338 define_xopen_source=no
341 # On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from
342 # defining NI_NUMERICHOST.
344 define_xopen_source=no
349 if test $define_xopen_source = yes
351 # On Solaris w/ g++ it appears that _XOPEN_SOURCE has to be
352 # defined precisely as g++ defines it
353 # Furthermore, on Solaris 10, XPG6 requires the use of a C99
355 case $ac_sys_system/$ac_sys_release in
356 SunOS/5.8|SunOS/5.9|SunOS/5.10|SunOS/5.11)
357 AC_DEFINE(_XOPEN_SOURCE, 500,
358 Define to the level of X/Open that your system supports)
361 AC_DEFINE(_XOPEN_SOURCE, 600,
362 Define to the level of X/Open that your system supports)
366 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
367 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
368 # several APIs are not declared. Since this is also needed in some
369 # cases for HP-UX, we define it globally.
370 # except for Solaris 10, where it must not be defined,
371 # as it implies XPG4.2
372 case $ac_sys_system/$ac_sys_release in
373 SunOS/5.10|SunOS/5.11)
376 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1,
377 Define to activate Unix95-and-earlier features)
381 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
386 # SGI compilers allow the specification of the both the ABI and the
387 # ISA on the command line. Depending on the values of these switches,
388 # different and often incompatable code will be generated.
390 # The SGI_ABI variable can be used to modify the CC and LDFLAGS and
391 # thus supply support for various ABI/ISA combinations. The MACHDEP
392 # variable is also adjusted.
395 if test ! -z "$SGI_ABI"
398 LDFLAGS="$SGI_ABI $LDFLAGS"
399 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
401 AC_MSG_RESULT($MACHDEP)
403 # Record the configure-time value of MACOSX_DEPLOYMENT_TARGET,
404 # it may influence the way we can build extensions, so distutils
406 AC_SUBST(CONFIGURE_MACOSX_DEPLOYMENT_TARGET)
407 AC_SUBST(EXPORT_MACOSX_DEPLOYMENT_TARGET)
408 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
409 EXPORT_MACOSX_DEPLOYMENT_TARGET='#'
411 AC_MSG_CHECKING(machine type as reported by uname -m)
412 ac_sys_machine=`uname -m`
413 AC_MSG_RESULT($ac_sys_machine)
415 # checks for alternative programs
417 # compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
418 # for debug/optimization stuff. BASECFLAGS is for flags that are required
419 # just to get things to compile and link. Users are free to override OPT
420 # when running configure or make. The build should not break if they do.
421 # BASECFLAGS should generally not be messed with, however.
423 # XXX shouldn't some/most/all of this code be merged with the stuff later
424 # on that fiddles with OPT and BASECFLAGS?
425 AC_MSG_CHECKING(for --without-gcc)
427 AC_HELP_STRING(--without-gcc,never use gcc),
435 without_gcc=$withval;;
437 case $ac_sys_system in
438 AIX*) CC=${CC:-xlc_r}
442 AC_MSG_RESULT($without_gcc)
444 # If the user switches compilers, we can't believe the cache
445 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
447 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
448 (it is also a good idea to do 'make clean' before compiling)])
455 AC_MSG_CHECKING(for --with-cxx-main=<compiler>)
456 AC_ARG_WITH(cxx_main,
457 AC_HELP_STRING([--with-cxx-main=<compiler>],
458 [compile main() and link python executable with C++ compiler]),
464 yes) with_cxx_main=yes
476 AC_MSG_RESULT($with_cxx_main)
482 gcc) AC_PATH_PROG(CXX, [g++], [g++], [notfound]) ;;
483 cc) AC_PATH_PROG(CXX, [c++], [c++], [notfound]) ;;
485 if test "$CXX" = "notfound"
492 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
493 if test "$CXX" = "notfound"
498 if test "$preset_cxx" != "$CXX"
502 By default, distutils will build C++ extension modules with "$CXX".
503 If this is not intended, then set CXX on the configure command line.
508 # checks for UNIX variants that set C preprocessor variables
511 # Check for unsupported systems
512 case $ac_sys_system/$ac_sys_release in
514 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
515 echo See README for details.
520 AC_MSG_CHECKING(for --with-suffix)
522 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
529 AC_MSG_RESULT($EXEEXT)
531 # Test whether we're running on a non-case-sensitive system, in which
532 # case we give a warning if no ext is given
533 AC_SUBST(BUILDEXEEXT)
534 AC_MSG_CHECKING(for case-insensitive build directory)
535 if test ! -d CaseSensitiveTestDir; then
536 mkdir CaseSensitiveTestDir
539 if test -d casesensitivetestdir
547 rmdir CaseSensitiveTestDir
552 gcc) CC="$CC -D_HAVE_BSDI";;
556 case $ac_sys_system in
559 cc|*/cc) CC="$CC -Ae";;
562 # Some functions have a prototype only with that define, e.g. confstr
563 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
569 AC_MSG_CHECKING(LIBRARY)
570 if test -z "$LIBRARY"
572 LIBRARY='libpython$(VERSION).a'
574 AC_MSG_RESULT($LIBRARY)
576 # LDLIBRARY is the name of the library to link against (as opposed to the
577 # name of the library into which to insert object files). BLDLIBRARY is also
578 # the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
579 # is blank as the main program is not linked directly against LDLIBRARY.
580 # LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
581 # systems without shared libraries, LDLIBRARY is the same as LIBRARY
582 # (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
583 # DLLLIBRARY is the shared (i.e., DLL) library.
585 # RUNSHARED is used to run shared python without installed libraries
587 # INSTSONAME is the name of the shared library that will be use to install
588 # on the system - some systems like version suffix, others don't
592 AC_SUBST(LDLIBRARYDIR)
596 BLDLIBRARY='$(LDLIBRARY)'
597 INSTSONAME='$(LDLIBRARY)'
602 # LINKCC is the command that links the python executable -- default is $(CC).
603 # If CXX is set, and if it is needed to link a main function that was
604 # compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
605 # python might then depend on the C++ runtime
606 # This is altered for AIX in order to build the export list before
609 AC_MSG_CHECKING(LINKCC)
612 LINKCC='$(PURIFY) $(MAINCC)'
613 case $ac_sys_system in
616 if test $ac_sys_release -ge 5 -o \
617 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
620 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
622 # qcc must be used because the other compilers do not
627 AC_MSG_RESULT($LINKCC)
629 # GNULD is set to "yes" if the GNU linker is used. If this goes wrong
630 # make sure we default having it set to "no": this is used by
631 # distutils.unixccompiler to know if it should add --enable-new-dtags
632 # to linker command lines, and failing to detect GNU ld simply results
633 # in the same bahaviour as before.
635 AC_MSG_CHECKING(for GNU ld)
637 if test "$GCC" = yes; then
638 ac_prog=`$CC -print-prog-name=ld`
640 case `"$ac_prog" -V 2>&1 < /dev/null` in
646 AC_MSG_RESULT($GNULD)
648 AC_MSG_CHECKING(for --enable-shared)
649 AC_ARG_ENABLE(shared,
650 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
652 if test -z "$enable_shared"
654 case $ac_sys_system in
656 enable_shared="yes";;
661 AC_MSG_RESULT($enable_shared)
663 AC_MSG_CHECKING(for --enable-profiling)
664 AC_ARG_ENABLE(profiling,
665 AC_HELP_STRING(--enable-profiling, enable C-level code profiling),
668 AC_TRY_RUN([int main() { return 0; }],
669 ac_enable_profiling="yes",
670 ac_enable_profiling="no",
671 ac_enable_profiling="no")
673 AC_MSG_RESULT($ac_enable_profiling)
675 case "$ac_enable_profiling" in
677 BASECFLAGS="-pg $BASECFLAGS"
678 LDFLAGS="-pg $LDFLAGS"
682 AC_MSG_CHECKING(LDLIBRARY)
684 # MacOSX framework builds need more magic. LDLIBRARY is the dynamic
685 # library that we build, but we do not want to link against it (we
686 # will find it with a -framework option). For this reason there is an
687 # extra variable BLDLIBRARY against which Python and the extension
688 # modules are linked, BLDLIBRARY. This is normally the same as
689 # LDLIBRARY, but empty for MacOSX framework builds.
690 if test "$enable_framework"
692 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
693 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
696 BLDLIBRARY='$(LDLIBRARY)'
699 # Other platforms follow
700 if test $enable_shared = "yes"; then
701 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
702 case $ac_sys_system in
704 LDLIBRARY='libpython$(VERSION).dll.a'
705 DLLLIBRARY='libpython$(VERSION).dll'
708 LDLIBRARY='libpython$(VERSION).so'
709 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
710 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
711 INSTSONAME="$LDLIBRARY".$SOVERSION
713 Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*)
714 LDLIBRARY='libpython$(VERSION).so'
715 BLDLIBRARY='-L. -lpython$(VERSION)'
716 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
717 case $ac_sys_system in
719 SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
722 INSTSONAME="$LDLIBRARY".$SOVERSION
727 LDLIBRARY='libpython$(VERSION).so'
730 LDLIBRARY='libpython$(VERSION).sl'
733 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
734 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
737 LDLIBRARY='libpython$(VERSION).so'
738 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
739 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
742 LDLIBRARY='libpython$(VERSION).so'
743 BLDLIBRARY='-L. -lpython$(VERSION)'
744 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
747 LDLIBRARY='libpython$(VERSION).dylib'
748 BLDLIBRARY='-L. -lpython$(VERSION)'
749 RUNSHARED='DYLD_LIBRARY_PATH=`pwd`:${DYLD_LIBRARY_PATH}'
752 LDLIBRARY='libpython$(VERSION).so'
753 RUNSHARED=LIBPATH=`pwd`:${LIBPATH}
757 else # shared is disabled
758 case $ac_sys_system in
760 BLDLIBRARY='$(LIBRARY)'
761 LDLIBRARY='libpython$(VERSION).dll.a'
766 AC_MSG_RESULT($LDLIBRARY)
770 AC_CHECK_PROGS(AR, ar aal, ar)
772 # tweak ARFLAGS only if the user didn't set it on the command line
774 if test -z "$ARFLAGS"
780 AC_CHECK_PROG(SVNVERSION, svnversion, found, not-found)
781 if test $SVNVERSION = found
783 SVNVERSION="svnversion \$(srcdir)"
785 SVNVERSION="echo Unversioned directory"
790 # install -d does not work on BSDI or HP-UX
791 if test -z "$INSTALL"
793 INSTALL="${srcdir}/install-sh -c"
798 # Not every filesystem supports hard links
800 if test -z "$LN" ; then
801 case $ac_sys_system in
802 CYGWIN*) LN="ln -s";;
803 atheos*) LN="ln -s";;
808 # Check for --with-pydebug
809 AC_MSG_CHECKING(for --with-pydebug)
811 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
813 if test "$withval" != no
815 AC_DEFINE(Py_DEBUG, 1,
816 [Define if you want to build an interpreter with many run-time checks.])
819 else AC_MSG_RESULT(no); Py_DEBUG='false'
823 # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
824 # merged with this chunk of code?
826 # Optimizer/debugger flags
827 # ------------------------
828 # (The following bit of code is complicated enough - please keep things
829 # indented properly. Just pretend you're editing Python code. ;-)
831 # There are two parallel sets of case statements below, one that checks to
832 # see if OPT was set and one that does BASECFLAGS setting based upon
833 # compiler and platform. BASECFLAGS tweaks need to be made even if the
836 # tweak OPT based on compiler and platform, only if the user didn't set
837 # it on the command line
839 if test "${OPT-unset}" = "unset"
843 if test "$CC" != 'g++' ; then
844 STRICT_PROTO="-Wstrict-prototypes"
846 # For gcc 4.x we need to use -fwrapv so lets check if its supported
847 if "$CC" -v --help 2>/dev/null |grep -- -fwrapv > /dev/null; then
850 case $ac_cv_prog_cc_g in
852 if test "$Py_DEBUG" = 'true' ; then
853 # Optimization messes up debuggers, so turn it off for
855 OPT="-g -Wall $STRICT_PROTO"
857 OPT="-g $WRAP -O3 -Wall $STRICT_PROTO"
861 OPT="-O3 -Wall $STRICT_PROTO"
864 case $ac_sys_system in
865 SCO_SV*) OPT="$OPT -m486 -DSCO5"
878 # The -arch flags for universal builds on OSX
879 UNIVERSAL_ARCH_FLAGS=
880 AC_SUBST(UNIVERSAL_ARCH_FLAGS)
882 # tweak BASECFLAGS based on compiler and platform
885 # Python doesn't violate C99 aliasing rules, but older versions of
886 # GCC produce warnings for legal Python code. Enable
887 # -fno-strict-aliasing on versions of GCC that support but produce
888 # warnings. See Issue3326
889 AC_MSG_CHECKING(whether $CC accepts and needs -fno-strict-aliasing)
891 CC="$CC -fno-strict-aliasing"
892 save_CFLAGS="$CFLAGS"
893 AC_CACHE_VAL(ac_cv_no_strict_aliasing,
896 AC_LANG_PROGRAM([[]], [[]])
898 CC="$ac_save_cc -fstrict-aliasing"
899 CFLAGS="$CFLAGS -Werror -Wstrict-aliasing"
902 AC_LANG_PROGRAM([[void f(int **x) {}]],
903 [[double *x; f((int **) &x);]])
905 ac_cv_no_strict_aliasing=no
907 ac_cv_no_strict_aliasing=yes
910 ac_cv_no_strict_aliasing=no
912 CFLAGS="$save_CFLAGS"
914 AC_MSG_RESULT($ac_cv_no_strict_aliasing)
915 if test $ac_cv_no_strict_aliasing = yes
917 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
920 # if using gcc on alpha, use -mieee to get (near) full IEEE 754
921 # support. Without this, treatment of subnormals doesn't follow
923 case $ac_sys_machine in
925 BASECFLAGS="$BASECFLAGS -mieee"
929 case $ac_sys_system in
931 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
933 # is there any other compiler on Darwin besides gcc?
935 # -Wno-long-double, -no-cpp-precomp, and -mno-fused-madd
936 # used to be here, but non-Apple gcc doesn't accept them.
937 if test "${CC}" = gcc
939 AC_MSG_CHECKING(which compiler should be used)
940 case "${UNIVERSALSDK}" in
942 # Build using 10.4 SDK, force usage of gcc when the
943 # compiler is gcc, otherwise the user will get very
944 # confusing error messages when building on OSX 10.6
953 if test "${enable_universalsdk}"; then
954 UNIVERSAL_ARCH_FLAGS=""
955 if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
957 UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
959 elif test "$UNIVERSAL_ARCHS" = "64-bit" ; then
960 ARCH_RUN_32BIT="true"
961 UNIVERSAL_ARCH_FLAGS="-arch ppc64 -arch x86_64"
963 elif test "$UNIVERSAL_ARCHS" = "all" ; then
964 ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
965 UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
966 LIPO_32BIT_FLAGS="-extract i386 -extract ppc7400"
967 LIPO_64BIT_FLAGS="-extract x86_64 -extract ppc64"
969 elif test "$UNIVERSAL_ARCHS" = "intel" ; then
970 ARCH_RUN_32BIT="/usr/bin/arch -i386"
971 UNIVERSAL_ARCH_FLAGS="-arch i386 -arch x86_64"
972 LIPO_32BIT_FLAGS="-extract i386"
973 LIPO_64BIT_FLAGS="-extract x86_64"
975 elif test "$UNIVERSAL_ARCHS" = "3-way" ; then
976 ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
977 UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch x86_64"
978 LIPO_32BIT_FLAGS="-extract i386 -extract ppc7400"
979 LIPO_64BIT_FLAGS="-extract x86_64"
982 AC_MSG_ERROR([proper usage is --with-universal-arch=32-bit|64-bit|all|intel|3-way])
987 CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
988 if test "${UNIVERSALSDK}" != "/"
990 CFLAGS="-isysroot ${UNIVERSALSDK} ${CFLAGS}"
991 LDFLAGS="-isysroot ${UNIVERSALSDK} ${LDFLAGS}"
992 CPPFLAGSFLAGS="-isysroot ${UNIVERSALSDK} ${CPPFLAGS}"
996 # Calculate the right deployment target for this build.
998 cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
999 if test ${cur_target} '>' 10.2; then
1001 if test ${enable_universalsdk}; then
1002 if test "${UNIVERSAL_ARCHS}" = "all"; then
1003 # Ensure that the default platform for a
1004 # 4-way universal build is OSX 10.5,
1005 # that's the first OS release where
1006 # 4-way builds make sense.
1009 elif test "${UNIVERSAL_ARCHS}" = "3-way"; then
1012 elif test "${UNIVERSAL_ARCHS}" = "intel"; then
1015 elif test "${UNIVERSAL_ARCHS}" = "64-bit"; then
1019 if test `/usr/bin/arch` = "i386"; then
1020 # On Intel macs default to a deployment
1021 # target of 10.4, that's the first OSX
1022 # release with Intel support.
1027 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
1029 # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
1030 # environment with a value that is the same as what we'll use
1031 # in the Makefile to ensure that we'll get the same compiler
1032 # environment during configure and build time.
1033 MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
1034 export MACOSX_DEPLOYMENT_TARGET
1035 EXPORT_MACOSX_DEPLOYMENT_TARGET=''
1039 BASECFLAGS="$BASECFLAGS -mieee"
1045 case $ac_sys_system in
1046 OpenUNIX*|UnixWare*)
1047 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
1050 BASECFLAGS="$BASECFLAGS -ieee -std"
1053 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
1059 if test "$Py_DEBUG" = 'true'; then
1065 if test "$ac_arch_flags"
1067 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
1070 # disable check for icc since it seems to pass, but generates a warning
1073 ac_cv_opt_olimit_ok=no
1076 AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
1077 AC_CACHE_VAL(ac_cv_opt_olimit_ok,
1079 CC="$CC -OPT:Olimit=0"
1080 AC_TRY_RUN([int main() { return 0; }],
1081 ac_cv_opt_olimit_ok=yes,
1082 ac_cv_opt_olimit_ok=no,
1083 ac_cv_opt_olimit_ok=no)
1085 AC_MSG_RESULT($ac_cv_opt_olimit_ok)
1086 if test $ac_cv_opt_olimit_ok = yes; then
1087 case $ac_sys_system in
1088 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
1089 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
1094 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
1098 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
1099 AC_CACHE_VAL(ac_cv_olimit_ok,
1101 CC="$CC -Olimit 1500"
1102 AC_TRY_RUN([int main() { return 0; }],
1103 ac_cv_olimit_ok=yes,
1107 AC_MSG_RESULT($ac_cv_olimit_ok)
1108 if test $ac_cv_olimit_ok = yes; then
1109 BASECFLAGS="$BASECFLAGS -Olimit 1500"
1113 # Check whether GCC supports PyArg_ParseTuple format
1114 if test "$GCC" = "yes"
1116 AC_MSG_CHECKING(whether gcc supports ParseTuple __format__)
1118 CFLAGS="$CFLAGS -Werror"
1120 void f(char*,...)__attribute((format(PyArg_ParseTuple, 1, 2)));
1122 AC_DEFINE(HAVE_ATTRIBUTE_FORMAT_PARSETUPLE, 1, [Define if GCC supports __attribute__((format(PyArg_ParseTuple, 2, 3)))])
1129 # On some compilers, pthreads are available without further options
1130 # (e.g. MacOS X). On some of these systems, the compiler will not
1131 # complain if unaccepted options are passed (e.g. gcc on Mac OS X).
1132 # So we have to see first whether pthreads are available without
1133 # options before we can check whether -Kpthread improves anything.
1134 AC_MSG_CHECKING(whether pthreads are available without options)
1135 AC_CACHE_VAL(ac_cv_pthread_is_default,
1137 #include <pthread.h>
1139 void* routine(void* p){return NULL;}
1143 if(pthread_create(&p,NULL,routine,NULL)!=0)
1145 (void)pthread_detach(p);
1150 ac_cv_pthread_is_default=yes
1154 ac_cv_pthread_is_default=no,
1155 ac_cv_pthread_is_default=no)
1157 AC_MSG_RESULT($ac_cv_pthread_is_default)
1160 if test $ac_cv_pthread_is_default = yes
1164 # -Kpthread, if available, provides the right #defines
1165 # and linker options to make pthread_create available
1166 # Some compilers won't report that they do not support -Kpthread,
1167 # so we need to run a program to see whether it really made the
1168 # function available.
1169 AC_MSG_CHECKING(whether $CC accepts -Kpthread)
1170 AC_CACHE_VAL(ac_cv_kpthread,
1174 #include <pthread.h>
1176 void* routine(void* p){return NULL;}
1180 if(pthread_create(&p,NULL,routine,NULL)!=0)
1182 (void)pthread_detach(p);
1190 AC_MSG_RESULT($ac_cv_kpthread)
1193 if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
1195 # -Kthread, if available, provides the right #defines
1196 # and linker options to make pthread_create available
1197 # Some compilers won't report that they do not support -Kthread,
1198 # so we need to run a program to see whether it really made the
1199 # function available.
1200 AC_MSG_CHECKING(whether $CC accepts -Kthread)
1201 AC_CACHE_VAL(ac_cv_kthread,
1205 #include <pthread.h>
1207 void* routine(void* p){return NULL;}
1211 if(pthread_create(&p,NULL,routine,NULL)!=0)
1213 (void)pthread_detach(p);
1221 AC_MSG_RESULT($ac_cv_kthread)
1224 if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
1226 # -pthread, if available, provides the right #defines
1227 # and linker options to make pthread_create available
1228 # Some compilers won't report that they do not support -pthread,
1229 # so we need to run a program to see whether it really made the
1230 # function available.
1231 AC_MSG_CHECKING(whether $CC accepts -pthread)
1232 AC_CACHE_VAL(ac_cv_thread,
1236 #include <pthread.h>
1238 void* routine(void* p){return NULL;}
1242 if(pthread_create(&p,NULL,routine,NULL)!=0)
1244 (void)pthread_detach(p);
1252 AC_MSG_RESULT($ac_cv_pthread)
1255 # If we have set a CC compiler flag for thread support then
1256 # check if it works for CXX, too.
1260 AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
1263 if test "$ac_cv_kpthread" = "yes"
1265 CXX="$CXX -Kpthread"
1266 ac_cv_cxx_thread=yes
1267 elif test "$ac_cv_kthread" = "yes"
1270 ac_cv_cxx_thread=yes
1271 elif test "$ac_cv_pthread" = "yes"
1274 ac_cv_cxx_thread=yes
1277 if test $ac_cv_cxx_thread = yes
1279 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
1280 $CXX -c conftest.$ac_ext 2>&5
1281 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
1282 && test -s conftest$ac_exeext && ./conftest$ac_exeext
1284 ac_cv_cxx_thread=yes
1290 AC_MSG_RESULT($ac_cv_cxx_thread)
1294 dnl # check for ANSI or K&R ("traditional") preprocessor
1295 dnl AC_MSG_CHECKING(for C preprocessor type)
1296 dnl AC_TRY_COMPILE([
1297 dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
1299 dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
1300 dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
1301 dnl AC_MSG_RESULT($cpp_type)
1303 # checks for header files
1305 AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
1307 ieeefp.h io.h langinfo.h libintl.h ncurses.h poll.h process.h pthread.h \
1308 shadow.h signal.h stdint.h stropts.h termios.h thread.h \
1310 sys/audioio.h sys/bsdtty.h sys/epoll.h sys/event.h sys/file.h sys/loadavg.h \
1311 sys/lock.h sys/mkdev.h sys/modem.h \
1312 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/statvfs.h sys/stat.h \
1313 sys/termio.h sys/time.h \
1314 sys/times.h sys/types.h sys/un.h sys/utsname.h sys/wait.h pty.h libutil.h \
1315 sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
1316 bluetooth/bluetooth.h linux/tipc.h)
1320 # On Solaris, term.h requires curses.h
1321 AC_CHECK_HEADERS(term.h,,,[
1322 #ifdef HAVE_CURSES_H
1327 # On Linux, netlink.h requires asm/types.h
1328 AC_CHECK_HEADERS(linux/netlink.h,,,[
1329 #ifdef HAVE_ASM_TYPES_H
1330 #include <asm/types.h>
1332 #ifdef HAVE_SYS_SOCKET_H
1333 #include <sys/socket.h>
1337 # checks for typedefs
1339 AC_MSG_CHECKING(for clock_t in time.h)
1340 AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
1341 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
1343 AC_MSG_RESULT($was_it_defined)
1345 # Check whether using makedev requires defining _OSF_SOURCE
1346 AC_MSG_CHECKING(for makedev)
1348 #if defined(MAJOR_IN_MKDEV)
1349 #include <sys/mkdev.h>
1350 #elif defined(MAJOR_IN_SYSMACROS)
1351 #include <sys/sysmacros.h>
1353 #include <sys/types.h>
1356 ac_cv_has_makedev=yes,
1357 ac_cv_has_makedev=no)
1358 if test "$ac_cv_has_makedev" = "no"; then
1359 # we didn't link, try if _OSF_SOURCE will allow us to link
1361 #define _OSF_SOURCE 1
1362 #include <sys/types.h>
1365 ac_cv_has_makedev=yes,
1366 ac_cv_has_makedev=no)
1367 if test "$ac_cv_has_makedev" = "yes"; then
1368 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
1371 AC_MSG_RESULT($ac_cv_has_makedev)
1372 if test "$ac_cv_has_makedev" = "yes"; then
1373 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
1376 # Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
1377 # the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
1378 # defined, but the compiler does not support pragma redefine_extname,
1379 # and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
1380 # structures (such as rlimit64) without declaring them. As a
1381 # work-around, disable LFS on such configurations
1384 AC_MSG_CHECKING(Solaris LFS bug)
1386 #define _LARGEFILE_SOURCE 1
1387 #define _FILE_OFFSET_BITS 64
1388 #include <sys/resource.h>
1389 ],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
1390 AC_MSG_RESULT($sol_lfs_bug)
1391 if test "$sol_lfs_bug" = "yes"; then
1395 if test "$use_lfs" = "yes"; then
1396 # Two defines needed to enable largefile support on various platforms
1397 # These may affect some typedefs
1398 AC_DEFINE(_LARGEFILE_SOURCE, 1,
1399 [This must be defined on some systems to enable large file support.])
1400 AC_DEFINE(_FILE_OFFSET_BITS, 64,
1401 [This must be set to 64 on some systems to enable large file support.])
1404 # Add some code to confdefs.h so that the test for off_t works on SCO
1405 cat >> confdefs.h <<\EOF
1411 # Type availability checks
1422 AC_CHECK_TYPE(ssize_t,
1423 AC_DEFINE(HAVE_SSIZE_T, 1, Define if your compiler provides ssize_t),,)
1425 # Sizes of various common basic types
1426 # ANSI C requires sizeof(char) == 1, so no need to check it
1427 AC_CHECK_SIZEOF(int, 4)
1428 AC_CHECK_SIZEOF(long, 4)
1429 AC_CHECK_SIZEOF(void *, 4)
1430 AC_CHECK_SIZEOF(short, 2)
1431 AC_CHECK_SIZEOF(float, 4)
1432 AC_CHECK_SIZEOF(double, 8)
1433 AC_CHECK_SIZEOF(fpos_t, 4)
1434 AC_CHECK_SIZEOF(size_t, 4)
1435 AC_CHECK_SIZEOF(pid_t, 4)
1437 AC_MSG_CHECKING(for long long support)
1439 AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1440 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1443 AC_MSG_RESULT($have_long_long)
1444 if test "$have_long_long" = yes ; then
1445 AC_CHECK_SIZEOF(long long, 8)
1448 AC_MSG_CHECKING(for long double support)
1450 AC_TRY_COMPILE([], [long double x; x = (long double)0;], [
1451 AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define this if you have the type long double.])
1452 have_long_double=yes
1454 AC_MSG_RESULT($have_long_double)
1455 if test "$have_long_double" = yes ; then
1456 AC_CHECK_SIZEOF(long double, 16)
1460 AC_MSG_CHECKING(for _Bool support)
1462 AC_TRY_COMPILE([], [_Bool x; x = (_Bool)0;], [
1463 AC_DEFINE(HAVE_C99_BOOL, 1, [Define this if you have the type _Bool.])
1466 AC_MSG_RESULT($have_c99_bool)
1467 if test "$have_c99_bool" = yes ; then
1468 AC_CHECK_SIZEOF(_Bool, 1)
1471 AC_CHECK_TYPES(uintptr_t,
1472 [AC_CHECK_SIZEOF(uintptr_t, 4)],
1473 [], [#ifdef HAVE_STDINT_H
1476 #ifdef HAVE_INTTYPES_H
1477 #include <inttypes.h>
1481 # Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1482 AC_MSG_CHECKING(size of off_t)
1483 AC_CACHE_VAL(ac_cv_sizeof_off_t,
1484 [AC_TRY_RUN([#include <stdio.h>
1485 #include <sys/types.h>
1488 FILE *f=fopen("conftestval", "w");
1490 fprintf(f, "%d\n", sizeof(off_t));
1493 ac_cv_sizeof_off_t=`cat conftestval`,
1494 ac_cv_sizeof_off_t=0,
1495 ac_cv_sizeof_off_t=4)
1497 AC_MSG_RESULT($ac_cv_sizeof_off_t)
1498 AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1499 [The number of bytes in an off_t.])
1501 AC_MSG_CHECKING(whether to enable large file support)
1502 if test "$have_long_long" = yes
1504 if test "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1505 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
1506 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1507 [Defined to enable large file support when an off_t is bigger than a long
1508 and long long is available and at least as big as an off_t. You may need
1509 to add some flags for configuration and compilation to enable this mode.
1510 (For Solaris and Linux, the necessary defines are already defined.)])
1519 # AC_CHECK_SIZEOF() doesn't include <time.h>.
1520 AC_MSG_CHECKING(size of time_t)
1521 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1522 [AC_TRY_RUN([#include <stdio.h>
1526 FILE *f=fopen("conftestval", "w");
1528 fprintf(f, "%d\n", sizeof(time_t));
1531 ac_cv_sizeof_time_t=`cat conftestval`,
1532 ac_cv_sizeof_time_t=0,
1533 ac_cv_sizeof_time_t=4)
1535 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1536 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1537 [The number of bytes in a time_t.])
1540 # if have pthread_t then define SIZEOF_PTHREAD_T
1542 if test "$ac_cv_kpthread" = "yes"
1543 then CC="$CC -Kpthread"
1544 elif test "$ac_cv_kthread" = "yes"
1545 then CC="$CC -Kthread"
1546 elif test "$ac_cv_pthread" = "yes"
1547 then CC="$CC -pthread"
1549 AC_MSG_CHECKING(for pthread_t)
1551 AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
1552 AC_MSG_RESULT($have_pthread_t)
1553 if test "$have_pthread_t" = yes ; then
1554 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1555 AC_MSG_CHECKING(size of pthread_t)
1556 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1557 [AC_TRY_RUN([#include <stdio.h>
1558 #include <pthread.h>
1561 FILE *f=fopen("conftestval", "w");
1563 fprintf(f, "%d\n", sizeof(pthread_t));
1566 ac_cv_sizeof_pthread_t=`cat conftestval`,
1567 ac_cv_sizeof_pthread_t=0,
1568 ac_cv_sizeof_pthread_t=4)
1570 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
1571 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1572 [The number of bytes in a pthread_t.])
1578 AC_SUBST(OTHER_LIBTOOL_OPT)
1579 case $ac_sys_system/$ac_sys_release in
1580 Darwin/@<:@01567@:>@\..*)
1581 OTHER_LIBTOOL_OPT="-prebind -seg1addr 0x10000000"
1584 OTHER_LIBTOOL_OPT=""
1590 AC_SUBST(LIBTOOL_CRUFT)
1591 case $ac_sys_system/$ac_sys_release in
1592 Darwin/@<:@01567@:>@\..*)
1593 LIBTOOL_CRUFT="-framework System -lcc_dynamic"
1594 if test "${enable_universalsdk}"; then
1597 LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only `/usr/bin/arch`"
1599 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1600 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1602 gcc_version=`gcc -dumpversion`
1603 if test ${gcc_version} '<' 4.0
1605 LIBTOOL_CRUFT="-lcc_dynamic"
1611 int main(int argc, char*argv[])
1613 if (sizeof(long) == 4) {
1619 ], ac_osx_32bit=yes,
1623 if test "${ac_osx_32bit}" = "yes"; then
1624 case `/usr/bin/arch` in
1626 MACOSX_DEFAULT_ARCH="i386"
1629 MACOSX_DEFAULT_ARCH="ppc"
1632 AC_MSG_ERROR([Unexpected output of 'arch' on OSX])
1636 case `/usr/bin/arch` in
1638 MACOSX_DEFAULT_ARCH="x86_64"
1641 MACOSX_DEFAULT_ARCH="ppc64"
1644 AC_MSG_ERROR([Unexpected output of 'arch' on OSX])
1648 #ARCH_RUN_32BIT="true"
1651 LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only ${MACOSX_DEFAULT_ARCH}"
1652 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1653 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1656 AC_MSG_CHECKING(for --enable-framework)
1657 if test "$enable_framework"
1659 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
1660 # -F. is needed to allow linking to the framework while
1661 # in the build location.
1662 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1663 [Define if you want to produce an OpenStep/Rhapsody framework
1664 (shared library plus accessory files).])
1666 if test $enable_shared = "yes"
1668 AC_MSG_ERROR([Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead])
1674 AC_MSG_CHECKING(for dyld)
1675 case $ac_sys_system/$ac_sys_release in
1677 AC_DEFINE(WITH_DYLD, 1,
1678 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1679 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1680 linker (rld). Dyld is necessary to support frameworks.])
1681 AC_MSG_RESULT(always on for Darwin)
1688 # Set info about shared libraries.
1693 AC_SUBST(LINKFORSHARED)
1694 # SO is the extension of shared libraries `(including the dot!)
1695 # -- usually .so, .sl on HP-UX, .dll on Cygwin
1699 case $ac_sys_system in
1710 # this might also be a termcap variable, see #610332
1712 echo '====================================================================='
1714 echo '+ WARNING: You have set SO in your environment. +'
1715 echo '+ Do you really mean to change the extension for shared libraries? +'
1716 echo '+ Continuing in 10 seconds to let you to ponder. +'
1718 echo '====================================================================='
1723 AC_DEFINE_UNQUOTED(SHLIB_EXT, "$SO", [Define this to be extension of shared libraries (including the dot!).])
1724 # LDSHARED is the ld *command* used to create shared library
1725 # -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
1726 # (Shared libraries in this instance are shared modules to be loaded into
1727 # Python, as opposed to building Python itself as a shared library.)
1728 AC_MSG_CHECKING(LDSHARED)
1729 if test -z "$LDSHARED"
1731 case $ac_sys_system/$ac_sys_release in
1733 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp -L\$(srcdir)"
1734 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
1736 IRIX/5*) LDSHARED="ld -shared";;
1737 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
1739 if test "$GCC" = "yes"
1740 then LDSHARED='$(CC) -shared'
1741 else LDSHARED='$(CC) -G';
1744 if test "$GCC" = "yes"
1745 then LDSHARED='$(CC) -shared'
1746 else LDSHARED='ld -b';
1748 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
1750 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1751 if test "$enable_framework" ; then
1752 # Link against the framework. All externals should be defined.
1753 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1754 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1756 # No framework. Ignore undefined symbols, assuming they come from Python
1757 LDSHARED="$LDSHARED -undefined suppress"
1759 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
1760 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1761 if test "$enable_framework" ; then
1762 # Link against the framework. All externals should be defined.
1763 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1764 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1766 # No framework, use the Python app as bundle-loader
1767 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1768 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1771 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1772 # This allows an extension to be used in any Python
1774 if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
1776 if test "${enable_universalsdk}"; then
1777 LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
1779 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1780 BLDSHARED="$LDSHARED"
1782 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1783 if test "$enable_framework" ; then
1784 # Link against the framework. All externals should be defined.
1785 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1786 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1788 # No framework, use the Python app as bundle-loader
1789 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1790 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1794 Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
1795 BSD/OS*/4*) LDSHARED="gcc -shared";;
1797 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1799 LDSHARED='$(CC) -shared ${LDFLAGS}'
1801 LDSHARED="ld -Bshareable ${LDFLAGS}"
1804 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1806 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1809 [[01]].* | 2.[[0-7]] | 2.[[0-7]].*)
1810 LDSHARED="ld -Bshareable ${LDFLAGS}"
1813 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1817 NetBSD*|DragonFly*) LDSHARED="cc -shared ${LDFLAGS}";;
1818 OpenUNIX*|UnixWare*)
1819 if test "$GCC" = "yes"
1820 then LDSHARED='$(CC) -shared'
1821 else LDSHARED='$(CC) -G'
1823 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
1824 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
1825 atheos*) LDSHARED="gcc -shared";;
1829 AC_MSG_RESULT($LDSHARED)
1830 BLDSHARED=${BLDSHARED-$LDSHARED}
1831 # CCSHARED are the C *flags* used to create objects to go into a shared
1832 # library (module) -- this is only needed for a few systems
1833 AC_MSG_CHECKING(CCSHARED)
1834 if test -z "$CCSHARED"
1836 case $ac_sys_system/$ac_sys_release in
1837 SunOS*) if test "$GCC" = yes;
1838 then CCSHARED="-fPIC";
1839 elif test `uname -p` = sparc;
1840 then CCSHARED="-xcode=pic32";
1841 else CCSHARED="-Kpic";
1843 hp*|HP*) if test "$GCC" = yes;
1844 then CCSHARED="-fPIC";
1847 Linux*|GNU*) CCSHARED="-fPIC";;
1848 BSD/OS*/4*) CCSHARED="-fpic";;
1849 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";;
1850 OpenUNIX*|UnixWare*)
1851 if test "$GCC" = "yes"
1852 then CCSHARED="-fPIC"
1853 else CCSHARED="-KPIC"
1856 if test "$GCC" = "yes"
1857 then CCSHARED="-fPIC"
1858 else CCSHARED="-Kpic -belf"
1860 IRIX*/6*) case $CC in
1861 *gcc*) CCSHARED="-shared";;
1864 atheos*) CCSHARED="-fPIC";;
1867 AC_MSG_RESULT($CCSHARED)
1868 # LINKFORSHARED are the flags passed to the $(CC) command that links
1869 # the python executable -- this is only needed for a few systems
1870 AC_MSG_CHECKING(LINKFORSHARED)
1871 if test -z "$LINKFORSHARED"
1873 case $ac_sys_system/$ac_sys_release in
1874 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
1876 LINKFORSHARED="-Wl,-E -Wl,+s";;
1877 # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
1878 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
1879 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
1880 # -u libsys_s pulls in all symbols in libsys
1882 LINKFORSHARED="$extra_undefs -framework CoreFoundation"
1883 if test "$enable_framework"
1885 LINKFORSHARED="$LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1887 LINKFORSHARED="$LINKFORSHARED";;
1888 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
1889 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
1890 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
1891 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*)
1892 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1894 LINKFORSHARED="-Wl,--export-dynamic"
1896 SunOS/5*) case $CC in
1898 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
1900 LINKFORSHARED="-Xlinker --export-dynamic"
1904 if test $enable_shared = "no"
1906 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1909 # -Wl,-E causes the symbols to be added to the dynamic
1910 # symbol table so that they can be found when a module
1911 # is loaded. -N 2048K causes the stack size to be set
1912 # to 2048 kilobytes so that the stack doesn't overflow
1913 # when running test_compile.py.
1914 LINKFORSHARED='-Wl,-E -N 2048K';;
1917 AC_MSG_RESULT($LINKFORSHARED)
1920 AC_SUBST(CFLAGSFORSHARED)
1921 AC_MSG_CHECKING(CFLAGSFORSHARED)
1922 if test ! "$LIBRARY" = "$LDLIBRARY"
1924 case $ac_sys_system in
1926 # Cygwin needs CCSHARED when building extension DLLs
1927 # but not when building the interpreter DLL.
1928 CFLAGSFORSHARED='';;
1930 CFLAGSFORSHARED='$(CCSHARED)'
1933 AC_MSG_RESULT($CFLAGSFORSHARED)
1935 # SHLIBS are libraries (except -lc and -lm) to link to the python shared
1936 # library (with --enable-shared).
1937 # For platforms on which shared libraries are not allowed to have unresolved
1938 # symbols, this must be set to $(LIBS) (expanded by make). We do this even
1939 # if it is not required, since it creates a dependency of the shared library
1940 # to LIBS. This, in turn, means that applications linking the shared libpython
1941 # don't need to link LIBS explicitly. The default should be only changed
1942 # on systems where this approach causes problems.
1944 AC_MSG_CHECKING(SHLIBS)
1945 case "$ac_sys_system" in
1949 AC_MSG_RESULT($SHLIBS)
1952 # checks for libraries
1953 AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1954 AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
1956 # only check for sem_init if thread support is requested
1957 if test "$with_threads" = "yes" -o -z "$with_threads"; then
1958 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1959 # posix4 on Solaris 2.6
1960 # pthread (first!) on Linux
1963 # check if we need libintl for locale functions
1964 AC_CHECK_LIB(intl, textdomain,
1965 [AC_DEFINE(WITH_LIBINTL, 1,
1966 [Define to 1 if libintl is needed for locale functions.])
1967 LIBS="-lintl $LIBS"])
1969 # checks for system dependent C++ extensions support
1970 case "$ac_sys_system" in
1971 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1972 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1973 [loadAndInit("", 0, "")],
1974 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1975 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1976 and you want support for AIX C++ shared extension modules.])
1977 AC_MSG_RESULT(yes)],
1978 [AC_MSG_RESULT(no)]);;
1982 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
1983 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
1984 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
1986 AC_MSG_CHECKING(for --with-libs)
1988 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1990 AC_MSG_RESULT($withval)
1991 LIBS="$withval $LIBS"
1993 [AC_MSG_RESULT(no)])
1995 # Check for use of the system libffi library
1996 AC_MSG_CHECKING(for --with-system-ffi)
1997 AC_ARG_WITH(system_ffi,
1998 AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library),
2000 [with_system_ffi="no"])
2002 AC_MSG_RESULT($with_system_ffi)
2004 # Check for --with-dbmliborder
2005 AC_MSG_CHECKING(for --with-dbmliborder)
2006 AC_ARG_WITH(dbmliborder,
2007 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'.]),
2009 if test x$with_dbmliborder = xyes
2011 AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...])
2013 for db in `echo $with_dbmliborder | sed 's/:/ /g'`; do
2014 if test x$db != xndbm && test x$db != xgdbm && test x$db != xbdb
2016 AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...])
2020 AC_MSG_RESULT($with_dbmliborder)
2022 # Determine if signalmodule should be used.
2023 AC_SUBST(USE_SIGNAL_MODULE)
2024 AC_SUBST(SIGNAL_OBJS)
2025 AC_MSG_CHECKING(for --with-signal-module)
2026 AC_ARG_WITH(signal-module,
2027 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
2029 if test -z "$with_signal_module"
2030 then with_signal_module="yes"
2032 AC_MSG_RESULT($with_signal_module)
2034 if test "${with_signal_module}" = "yes"; then
2035 USE_SIGNAL_MODULE=""
2038 USE_SIGNAL_MODULE="#"
2039 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
2042 # This is used to generate Setup.config
2043 AC_SUBST(USE_THREAD_MODULE)
2044 USE_THREAD_MODULE=""
2046 AC_MSG_CHECKING(for --with-dec-threads)
2048 AC_ARG_WITH(dec-threads,
2049 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
2051 AC_MSG_RESULT($withval)
2053 if test "${with_thread+set}" != set; then
2054 with_thread="$withval";
2056 [AC_MSG_RESULT(no)])
2058 # Templates for things AC_DEFINEd more than once.
2059 # For a single AC_DEFINE, no template is needed.
2060 AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
2061 AH_TEMPLATE(_REENTRANT,
2062 [Define to force use of thread-safe errno, h_errno, and other functions])
2063 AH_TEMPLATE(WITH_THREAD,
2064 [Define if you want to compile in rudimentary thread support])
2066 AC_MSG_CHECKING(for --with-threads)
2067 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
2068 AC_ARG_WITH(threads,
2069 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
2071 # --with-thread is deprecated, but check for it anyway
2072 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
2074 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
2075 [with_threads=$with_thread])
2077 if test -z "$with_threads"
2078 then with_threads="yes"
2080 AC_MSG_RESULT($with_threads)
2083 if test "$with_threads" = "no"
2085 USE_THREAD_MODULE="#"
2086 elif test "$ac_cv_pthread_is_default" = yes
2088 AC_DEFINE(WITH_THREAD)
2089 # Defining _REENTRANT on system with POSIX threads should not hurt.
2090 AC_DEFINE(_REENTRANT)
2092 THREADOBJ="Python/thread.o"
2093 elif test "$ac_cv_kpthread" = "yes"
2096 if test "$ac_cv_cxx_thread" = "yes"; then
2097 CXX="$CXX -Kpthread"
2099 AC_DEFINE(WITH_THREAD)
2101 THREADOBJ="Python/thread.o"
2102 elif test "$ac_cv_kthread" = "yes"
2105 if test "$ac_cv_cxx_thread" = "yes"; then
2108 AC_DEFINE(WITH_THREAD)
2110 THREADOBJ="Python/thread.o"
2111 elif test "$ac_cv_pthread" = "yes"
2114 if test "$ac_cv_cxx_thread" = "yes"; then
2117 AC_DEFINE(WITH_THREAD)
2119 THREADOBJ="Python/thread.o"
2121 if test ! -z "$with_threads" -a -d "$with_threads"
2122 then LDFLAGS="$LDFLAGS -L$with_threads"
2124 if test ! -z "$withval" -a -d "$withval"
2125 then LDFLAGS="$LDFLAGS -L$withval"
2128 # According to the POSIX spec, a pthreads implementation must
2129 # define _POSIX_THREADS in unistd.h. Some apparently don't
2130 # (e.g. gnu pth with pthread emulation)
2131 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
2135 #ifdef _POSIX_THREADS
2138 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
2139 AC_MSG_RESULT($unistd_defines_pthreads)
2141 AC_DEFINE(_REENTRANT)
2142 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
2143 AC_DEFINE(C_THREADS)
2144 AC_DEFINE(HURD_C_THREADS, 1,
2145 [Define if you are using Mach cthreads directly under /include])
2146 LIBS="$LIBS -lthreads"
2147 THREADOBJ="Python/thread.o"],[
2148 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
2149 AC_DEFINE(C_THREADS)
2150 AC_DEFINE(MACH_C_THREADS, 1,
2151 [Define if you are using Mach cthreads under mach /])
2152 THREADOBJ="Python/thread.o"],[
2153 AC_MSG_CHECKING(for --with-pth)
2155 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
2156 [AC_MSG_RESULT($withval)
2157 AC_DEFINE([WITH_THREAD])
2158 AC_DEFINE([HAVE_PTH], 1,
2159 [Define if you have GNU PTH threads.])
2161 THREADOBJ="Python/thread.o"],
2164 # Just looking for pthread_create in libpthread is not enough:
2165 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
2166 # So we really have to include pthread.h, and then link.
2168 LIBS="$LIBS -lpthread"
2169 AC_MSG_CHECKING([for pthread_create in -lpthread])
2170 AC_TRY_LINK([#include <pthread.h>
2172 void * start_routine (void *arg) { exit (0); }], [
2173 pthread_create (NULL, NULL, start_routine, NULL)], [
2175 AC_DEFINE(WITH_THREAD)
2177 THREADOBJ="Python/thread.o"],[
2179 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
2181 THREADOBJ="Python/thread.o"],[
2182 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
2183 AC_DEFINE(ATHEOS_THREADS, 1,
2184 [Define this if you have AtheOS threads.])
2185 THREADOBJ="Python/thread.o"],[
2186 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
2188 LIBS="$LIBS -lpthreads"
2189 THREADOBJ="Python/thread.o"], [
2190 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
2193 THREADOBJ="Python/thread.o"], [
2194 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
2196 LIBS="$LIBS -lpthread"
2197 THREADOBJ="Python/thread.o"], [
2198 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
2201 THREADOBJ="Python/thread.o"],[
2202 USE_THREAD_MODULE="#"])
2205 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
2207 THREADOBJ="Python/thread.o"
2208 USE_THREAD_MODULE=""])
2210 if test "$posix_threads" != "yes"; then
2211 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
2212 LIBS="$LIBS -lthread"
2213 THREADOBJ="Python/thread.o"
2214 USE_THREAD_MODULE=""])
2217 if test "$USE_THREAD_MODULE" != "#"
2219 # If the above checks didn't disable threads, (at least) OSF1
2220 # needs this '-threads' argument during linking.
2221 case $ac_sys_system in
2222 OSF1) LDLAST=-threads;;
2227 if test "$posix_threads" = "yes"; then
2228 if test "$unistd_defines_pthreads" = "no"; then
2229 AC_DEFINE(_POSIX_THREADS, 1,
2230 [Define if you have POSIX threads,
2231 and your system does not define that.])
2234 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
2235 case $ac_sys_system/$ac_sys_release in
2236 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
2237 Defined for Solaris 2.6 bug in pthread header.)
2239 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2240 Define if the Posix semaphores do not work on your system)
2242 AIX/5) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2243 Define if the Posix semaphores do not work on your system)
2245 AIX/6) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2246 Define if the Posix semaphores do not work on your system)
2250 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
2251 AC_CACHE_VAL(ac_cv_pthread_system_supported,
2252 [AC_TRY_RUN([#include <pthread.h>
2253 void *foo(void *parm) {
2257 pthread_attr_t attr;
2259 if (pthread_attr_init(&attr)) exit(-1);
2260 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
2261 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
2264 ac_cv_pthread_system_supported=yes,
2265 ac_cv_pthread_system_supported=no,
2266 ac_cv_pthread_system_supported=no)
2268 AC_MSG_RESULT($ac_cv_pthread_system_supported)
2269 if test "$ac_cv_pthread_system_supported" = "yes"; then
2270 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
2272 AC_CHECK_FUNCS(pthread_sigmask,
2273 [case $ac_sys_system in
2275 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
2276 [Define if pthread_sigmask() does not work on your system.])
2282 # Check for enable-ipv6
2283 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
2284 AC_MSG_CHECKING([if --enable-ipv6 is specified])
2286 [ --enable-ipv6 Enable ipv6 (with ipv4) support
2287 --disable-ipv6 Disable ipv6 support],
2288 [ case "$enableval" in
2293 *) AC_MSG_RESULT(yes)
2294 AC_DEFINE(ENABLE_IPV6)
2300 dnl the check does not work on cross compilation case...
2301 AC_TRY_RUN([ /* AF_INET6 available check */
2302 #include <sys/types.h>
2303 #include <sys/socket.h>
2306 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
2320 if test "$ipv6" = "yes"; then
2321 AC_MSG_CHECKING(if RFC2553 API is available)
2322 AC_TRY_COMPILE([#include <sys/types.h>
2323 #include <netinet/in.h>],
2324 [struct sockaddr_in6 x;
2328 AC_MSG_RESULT(no, IPv6 disabled)
2332 if test "$ipv6" = "yes"; then
2333 AC_DEFINE(ENABLE_IPV6)
2341 if test "$ipv6" = "yes"; then
2342 AC_MSG_CHECKING([ipv6 stack type])
2343 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
2347 dnl http://www.kame.net/
2349 #include <netinet/in.h>
2350 #ifdef IPV6_INRIA_VERSION
2356 dnl http://www.kame.net/
2358 #include <netinet/in.h>
2364 ipv6libdir=/usr/local/v6/lib
2368 dnl http://www.v6.linux.or.jp/
2370 #include <features.h>
2371 #if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
2378 dnl http://www.v6.linux.or.jp/
2379 if test -d /usr/inet6; then
2382 ipv6libdir=/usr/inet6/lib
2383 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
2387 if test -f /etc/netconfig; then
2388 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
2396 #include <sys/param.h>
2397 #ifdef _TOSHIBA_INET6
2402 ipv6libdir=/usr/local/v6/lib])
2406 #include </usr/local/v6/include/sys/v6config.h>
2412 ipv6libdir=/usr/local/v6/lib;
2413 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
2417 #include <sys/param.h>
2418 #ifdef _ZETA_MINAMI_INET6
2423 ipv6libdir=/usr/local/v6/lib])
2426 if test "$ipv6type" != "unknown"; then
2430 AC_MSG_RESULT($ipv6type)
2433 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
2434 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
2435 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
2436 echo "using lib$ipv6lib"
2438 if test $ipv6trylibc = "yes"; then
2441 echo 'Fatal: no $ipv6lib library found. cannot continue.'
2442 echo "You need to fetch lib$ipv6lib.a from appropriate"
2443 echo 'ipv6 kit and compile beforehand.'
2449 AC_MSG_CHECKING(for OSX 10.5 SDK or later)
2450 AC_TRY_COMPILE([#include <Carbon/Carbon.h>], FSIORefNum fRef = 0,
2451 AC_DEFINE(HAVE_OSX105_SDK, 1, Define if compiling using MacOS X 10.5 SDK or later.)
2456 # Check for --with-doc-strings
2457 AC_MSG_CHECKING(for --with-doc-strings)
2458 AC_ARG_WITH(doc-strings,
2459 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
2461 if test -z "$with_doc_strings"
2462 then with_doc_strings="yes"
2464 if test "$with_doc_strings" != "no"
2466 AC_DEFINE(WITH_DOC_STRINGS, 1,
2467 [Define if you want documentation strings in extension modules])
2469 AC_MSG_RESULT($with_doc_strings)
2471 # Check if eval loop should use timestamp counter profiling
2472 AC_MSG_CHECKING(for --with-tsc)
2474 [ --with(out)-tsc enable/disable timestamp counter profile], [
2475 if test "$withval" != no
2477 AC_DEFINE(WITH_TSC, 1,
2478 [Define to profile with the Pentium timestamp counter])
2480 else AC_MSG_RESULT(no)
2482 [AC_MSG_RESULT(no)])
2484 # Check for Python-specific malloc support
2485 AC_MSG_CHECKING(for --with-pymalloc)
2486 AC_ARG_WITH(pymalloc,
2487 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
2489 if test -z "$with_pymalloc"
2490 then with_pymalloc="yes"
2492 if test "$with_pymalloc" != "no"
2494 AC_DEFINE(WITH_PYMALLOC, 1,
2495 [Define if you want to compile in Python-specific mallocs])
2497 AC_MSG_RESULT($with_pymalloc)
2499 # Check for --with-wctype-functions
2500 AC_MSG_CHECKING(for --with-wctype-functions)
2501 AC_ARG_WITH(wctype-functions,
2502 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
2504 if test "$withval" != no
2506 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2507 [Define if you want wctype.h functions to be used instead of the
2508 one supplied by Python itself. (see Include/unicodectype.h).])
2510 else AC_MSG_RESULT(no)
2512 [AC_MSG_RESULT(no)])
2514 # -I${DLINCLDIR} is added to the compile rule for importdl.o
2518 # the dlopen() function means we might want to use dynload_shlib.o. some
2519 # platforms, such as AIX, have dlopen(), but don't want to use it.
2520 AC_CHECK_FUNCS(dlopen)
2522 # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2523 # loading of modules.
2524 AC_SUBST(DYNLOADFILE)
2525 AC_MSG_CHECKING(DYNLOADFILE)
2526 if test -z "$DYNLOADFILE"
2528 case $ac_sys_system/$ac_sys_release in
2529 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2530 if test "$ac_cv_func_dlopen" = yes
2531 then DYNLOADFILE="dynload_shlib.o"
2532 else DYNLOADFILE="dynload_aix.o"
2535 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
2536 # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
2537 Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
2538 atheos*) DYNLOADFILE="dynload_atheos.o";;
2540 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2541 # out any dynamic loading
2542 if test "$ac_cv_func_dlopen" = yes
2543 then DYNLOADFILE="dynload_shlib.o"
2544 else DYNLOADFILE="dynload_stub.o"
2549 AC_MSG_RESULT($DYNLOADFILE)
2550 if test "$DYNLOADFILE" != "dynload_stub.o"
2552 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2553 [Defined when any dynamic module loading is enabled.])
2556 # MACHDEP_OBJS can be set to platform-specific object files needed by Python
2558 AC_SUBST(MACHDEP_OBJS)
2559 AC_MSG_CHECKING(MACHDEP_OBJS)
2560 if test -z "$MACHDEP_OBJS"
2562 MACHDEP_OBJS=$extra_machdep_objs
2564 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
2566 AC_MSG_RESULT(MACHDEP_OBJS)
2568 # checks for library functions
2569 AC_CHECK_FUNCS(alarm setitimer getitimer bind_textdomain_codeset chown \
2570 clock confstr ctermid execv fchmod fchown fork fpathconf ftime ftruncate \
2571 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
2572 getpriority getpwent getspnam getspent getsid getwd \
2573 kill killpg lchmod lchown lstat mbrtowc mkfifo mknod mktime \
2574 mremap nice pathconf pause plock poll pthread_init \
2575 putenv readlink realpath \
2576 select sem_open sem_timedwait sem_getvalue sem_unlink setegid seteuid \
2578 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
2579 sigaction siginterrupt sigrelse strftime strlcpy \
2580 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
2581 truncate uname unsetenv utimes waitpid wait3 wait4 \
2582 wcscoll wcsftime wcsxfrm _getpty)
2584 # For some functions, having a definition is not sufficient, since
2585 # we want to take their address.
2586 AC_MSG_CHECKING(for chroot)
2587 AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2588 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2592 AC_MSG_CHECKING(for link)
2593 AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2594 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2598 AC_MSG_CHECKING(for symlink)
2599 AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2600 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2604 AC_MSG_CHECKING(for fchdir)
2605 AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2606 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2610 AC_MSG_CHECKING(for fsync)
2611 AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
2612 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
2616 AC_MSG_CHECKING(for fdatasync)
2617 AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2618 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2622 AC_MSG_CHECKING(for epoll)
2623 AC_TRY_COMPILE([#include <sys/epoll.h>], void *x=epoll_create,
2624 AC_DEFINE(HAVE_EPOLL, 1, Define if you have the 'epoll' functions.)
2628 AC_MSG_CHECKING(for kqueue)
2630 #include <sys/types.h>
2631 #include <sys/event.h>
2633 AC_DEFINE(HAVE_KQUEUE, 1, Define if you have the 'kqueue' functions.)
2637 # On some systems (eg. FreeBSD 5), we would find a definition of the
2638 # functions ctermid_r, setgroups in the library, but no prototype
2639 # (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2640 # address to avoid compiler warnings and potential miscompilations
2641 # because of the missing prototypes.
2643 AC_MSG_CHECKING(for ctermid_r)
2645 #include "confdefs.h"
2647 ], void* p = ctermid_r,
2648 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2653 AC_CACHE_CHECK([for flock declaration], [ac_cv_flock_decl],
2656 [#include <sys/file.h>],
2659 [ac_cv_flock_decl=yes],
2660 [ac_cv_flock_decl=no]
2663 if test "x${ac_cv_flock_decl}" = xyes; then
2664 AC_CHECK_FUNCS(flock,,
2665 AC_CHECK_LIB(bsd,flock,
2666 [AC_DEFINE(HAVE_FLOCK)
2667 AC_DEFINE(FLOCK_NEEDS_LIBBSD, 1, Define if flock needs to be linked with bsd library.)
2672 AC_MSG_CHECKING(for getpagesize)
2674 #include "confdefs.h"
2676 ], void* p = getpagesize,
2677 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2683 AC_CHECK_PROGS(TRUE, true, /bin/true)
2685 dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2686 dnl On others, they are in the C library, so we to take no action
2687 AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
2688 AC_CHECK_LIB(resolv, inet_aton)
2691 # On Tru64, chflags seems to be present, but calling it will
2693 AC_CACHE_CHECK([for chflags], [ac_cv_have_chflags], [dnl
2695 #include <sys/stat.h>
2697 int main(int argc, char*argv[])
2699 if(chflags(argv[0], 0) != 0)
2703 ]], ac_cv_have_chflags=yes,
2704 ac_cv_have_chflags=no,
2705 ac_cv_have_chflags=cross)
2707 if test "$ac_cv_have_chflags" = cross ; then
2708 AC_CHECK_FUNC([chflags], [ac_cv_have_chflags="yes"], [ac_cv_have_chflags="no"])
2710 if test "$ac_cv_have_chflags" = yes ; then
2711 AC_DEFINE(HAVE_CHFLAGS, 1, Define to 1 if you have the `chflags' function.)
2714 AC_CACHE_CHECK([for lchflags], [ac_cv_have_lchflags], [dnl
2716 #include <sys/stat.h>
2718 int main(int argc, char*argv[])
2720 if(lchflags(argv[0], 0) != 0)
2724 ]], ac_cv_have_lchflags=yes,
2725 ac_cv_have_lchflags=no,
2726 ac_cv_have_lchflags=cross)
2728 if test "$ac_cv_have_lchflags" = cross ; then
2729 AC_CHECK_FUNC([lchflags], [ac_cv_have_lchflags="yes"], [ac_cv_have_lchflags="no"])
2731 if test "$ac_cv_have_lchflags" = yes ; then
2732 AC_DEFINE(HAVE_LCHFLAGS, 1, Define to 1 if you have the `lchflags' function.)
2735 dnl Check if system zlib has *Copy() functions
2737 dnl On MacOSX the linker will search for dylibs on the entire linker path
2738 dnl before searching for static libraries. setup.py adds -Wl,-search_paths_first
2739 dnl to revert to a more traditional unix behaviour and make it possible to
2740 dnl override the system libz with a local static library of libz. Temporarily
2741 dnl add that flag to our CFLAGS as well to ensure that we check the version
2742 dnl of libz that will be used by setup.py.
2743 dnl The -L/usr/local/lib is needed as wel to get the same compilation
2744 dnl environment as setup.py (and leaving it out can cause configure to use the
2745 dnl wrong version of the library)
2746 case $ac_sys_system/$ac_sys_release in
2748 _CUR_CFLAGS="${CFLAGS}"
2749 _CUR_LDFLAGS="${LDFLAGS}"
2750 CFLAGS="${CFLAGS} -Wl,-search_paths_first"
2751 LDFLAGS="${LDFLAGS} -Wl,-search_paths_first -L/usr/local/lib"
2755 AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_ZLIB_COPY, 1, Define if the zlib library has inflateCopy))
2757 case $ac_sys_system/$ac_sys_release in
2759 CFLAGS="${_CUR_CFLAGS}"
2760 LDFLAGS="${_CUR_LDFLAGS}"
2764 AC_MSG_CHECKING(for hstrerror)
2766 #include "confdefs.h"
2768 ], void* p = hstrerror; hstrerror(0),
2769 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2774 AC_MSG_CHECKING(for inet_aton)
2776 #include "confdefs.h"
2777 #include <sys/types.h>
2778 #include <sys/socket.h>
2779 #include <netinet/in.h>
2780 #include <arpa/inet.h>
2781 ], void* p = inet_aton;inet_aton(0,0),
2782 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2787 AC_MSG_CHECKING(for inet_pton)
2789 #include "confdefs.h"
2790 #include <sys/types.h>
2791 #include <sys/socket.h>
2792 #include <netinet/in.h>
2793 #include <arpa/inet.h>
2794 ], void* p = inet_pton,
2795 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2800 # On some systems, setgroups is in unistd.h, on others, in grp.h
2801 AC_MSG_CHECKING(for setgroups)
2803 #include "confdefs.h"
2809 void* p = setgroups,
2810 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2815 # check for openpty and forkpty
2817 AC_CHECK_FUNCS(openpty,,
2818 AC_CHECK_LIB(util,openpty,
2819 [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"],
2820 AC_CHECK_LIB(bsd,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lbsd"])
2823 AC_CHECK_FUNCS(forkpty,,
2824 AC_CHECK_LIB(util,forkpty,
2825 [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"],
2826 AC_CHECK_LIB(bsd,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lbsd"])
2831 AC_CHECK_FUNCS(memmove)
2833 # check for long file support functions
2834 AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2836 AC_REPLACE_FUNCS(dup2 getcwd strdup)
2837 AC_CHECK_FUNCS(getpgrp,
2838 AC_TRY_COMPILE([#include <unistd.h>],
2840 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2841 [Define if getpgrp() must be called as getpgrp(0).])
2844 AC_CHECK_FUNCS(setpgrp,
2845 AC_TRY_COMPILE([#include <unistd.h>],
2847 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2848 [Define if setpgrp() must be called as setpgrp(0, 0).])
2851 AC_CHECK_FUNCS(gettimeofday,
2852 AC_TRY_COMPILE([#include <sys/time.h>],
2853 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2854 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2855 [Define if gettimeofday() does not have second (timezone) argument
2856 This is the case on Motorola V4 (R40V4.2)])
2860 AC_MSG_CHECKING(for major, minor, and makedev)
2862 #if defined(MAJOR_IN_MKDEV)
2863 #include <sys/mkdev.h>
2864 #elif defined(MAJOR_IN_SYSMACROS)
2865 #include <sys/sysmacros.h>
2867 #include <sys/types.h>
2870 makedev(major(0),minor(0));
2872 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2873 [Define to 1 if you have the device macros.])
2879 # On OSF/1 V5.1, getaddrinfo is available, but a define
2880 # for [no]getaddrinfo in netdb.h.
2881 AC_MSG_CHECKING(for getaddrinfo)
2883 #include <sys/types.h>
2884 #include <sys/socket.h>
2888 getaddrinfo(NULL, NULL, NULL, NULL);
2891 AC_MSG_CHECKING(getaddrinfo bug)
2893 #include <sys/types.h>
2896 #include <sys/socket.h>
2897 #include <netinet/in.h>
2901 int passive, gaierr, inet4 = 0, inet6 = 0;
2902 struct addrinfo hints, *ai, *aitop;
2903 char straddr[INET6_ADDRSTRLEN], strport[16];
2905 for (passive = 0; passive <= 1; passive++) {
2906 memset(&hints, 0, sizeof(hints));
2907 hints.ai_family = AF_UNSPEC;
2908 hints.ai_flags = passive ? AI_PASSIVE : 0;
2909 hints.ai_socktype = SOCK_STREAM;
2910 hints.ai_protocol = IPPROTO_TCP;
2911 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2912 (void)gai_strerror(gaierr);
2915 for (ai = aitop; ai; ai = ai->ai_next) {
2916 if (ai->ai_addr == NULL ||
2917 ai->ai_addrlen == 0 ||
2918 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2919 straddr, sizeof(straddr), strport, sizeof(strport),
2920 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2923 switch (ai->ai_family) {
2925 if (strcmp(strport, "54321") != 0) {
2929 if (strcmp(straddr, "0.0.0.0") != 0) {
2933 if (strcmp(straddr, "127.0.0.1") != 0) {
2940 if (strcmp(strport, "54321") != 0) {
2944 if (strcmp(straddr, "::") != 0) {
2948 if (strcmp(straddr, "::1") != 0) {
2958 /* another family support? */
2964 if (!(inet4 == 0 || inet4 == 2))
2966 if (!(inet6 == 0 || inet6 == 2))
2970 freeaddrinfo(aitop);
2975 freeaddrinfo(aitop);
2980 buggygetaddrinfo=no,
2981 AC_MSG_RESULT(buggy)
2982 buggygetaddrinfo=yes,
2983 AC_MSG_RESULT(buggy)
2984 buggygetaddrinfo=yes)], [
2986 buggygetaddrinfo=yes
2989 if test "$buggygetaddrinfo" = "yes"; then
2990 if test "$ipv6" = "yes"; then
2991 echo 'Fatal: You must get working getaddrinfo() function.'
2992 echo ' or you can specify "--disable-ipv6"'.
2996 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
2998 AC_CHECK_FUNCS(getnameinfo)
3000 # checks for structures
3004 AC_CHECK_MEMBERS([struct stat.st_rdev])
3005 AC_CHECK_MEMBERS([struct stat.st_blksize])
3006 AC_CHECK_MEMBERS([struct stat.st_flags])
3007 AC_CHECK_MEMBERS([struct stat.st_gen])
3008 AC_CHECK_MEMBERS([struct stat.st_birthtime])
3011 AC_MSG_CHECKING(for time.h that defines altzone)
3012 AC_CACHE_VAL(ac_cv_header_time_altzone,
3013 [AC_TRY_COMPILE([#include <time.h>], [return altzone;],
3014 ac_cv_header_time_altzone=yes,
3015 ac_cv_header_time_altzone=no)])
3016 AC_MSG_RESULT($ac_cv_header_time_altzone)
3017 if test $ac_cv_header_time_altzone = yes; then
3018 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
3022 AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
3024 #include <sys/types.h>
3025 #include <sys/select.h>
3026 #include <sys/time.h>
3028 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
3029 [Define if you can safely include both <sys/select.h> and <sys/time.h>
3030 (which you can't on SCO ODT 3.0).])
3033 AC_MSG_RESULT($was_it_defined)
3035 AC_MSG_CHECKING(for addrinfo)
3036 AC_CACHE_VAL(ac_cv_struct_addrinfo,
3038 # include <netdb.h>],
3039 [struct addrinfo a],
3040 ac_cv_struct_addrinfo=yes,
3041 ac_cv_struct_addrinfo=no))
3042 AC_MSG_RESULT($ac_cv_struct_addrinfo)
3043 if test $ac_cv_struct_addrinfo = yes; then
3044 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
3047 AC_MSG_CHECKING(for sockaddr_storage)
3048 AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
3050 # include <sys/types.h>
3051 # include <sys/socket.h>],
3052 [struct sockaddr_storage s],
3053 ac_cv_struct_sockaddr_storage=yes,
3054 ac_cv_struct_sockaddr_storage=no))
3055 AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
3056 if test $ac_cv_struct_sockaddr_storage = yes; then
3057 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
3060 # checks for compiler characteristics
3066 AC_MSG_CHECKING(for working volatile)
3067 AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
3068 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
3070 AC_MSG_RESULT($works)
3073 AC_MSG_CHECKING(for working signed char)
3074 AC_TRY_COMPILE([], [signed char c;], works=yes,
3075 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
3077 AC_MSG_RESULT($works)
3080 AC_MSG_CHECKING(for prototypes)
3081 AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
3082 AC_DEFINE(HAVE_PROTOTYPES, 1,
3083 [Define if your compiler supports function prototype])
3086 AC_MSG_RESULT($have_prototypes)
3089 AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
3092 int foo(int x, ...) {
3100 ], [return foo(10, "", 3.14);], [
3101 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
3102 [Define if your compiler supports variable length function prototypes
3103 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
3106 AC_MSG_RESULT($works)
3108 # check for socketpair
3109 AC_MSG_CHECKING(for socketpair)
3111 #include <sys/types.h>
3112 #include <sys/socket.h>
3113 ], void *x=socketpair,
3114 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
3119 # check if sockaddr has sa_len member
3120 AC_MSG_CHECKING(if sockaddr has sa_len member)
3121 AC_TRY_COMPILE([#include <sys/types.h>
3122 #include <sys/socket.h>],
3126 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
3130 AC_MSG_CHECKING(whether va_list is an array)
3132 #ifdef HAVE_STDARG_PROTOTYPES
3135 #include <varargs.h>
3137 ], [va_list list1, list2; list1 = list2;], , [
3138 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
3139 va_list_is_array=yes
3141 AC_MSG_RESULT($va_list_is_array)
3143 # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
3144 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
3145 [Define this if you have some version of gethostbyname_r()])
3147 AC_CHECK_FUNC(gethostbyname_r, [
3148 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3149 AC_MSG_CHECKING([gethostbyname_r with 6 args])
3151 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
3156 struct hostent *he, *res;
3161 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
3163 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3164 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
3165 [Define this if you have the 6-arg version of gethostbyname_r().])
3169 AC_MSG_CHECKING([gethostbyname_r with 5 args])
3179 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
3181 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3182 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
3183 [Define this if you have the 5-arg version of gethostbyname_r().])
3187 AC_MSG_CHECKING([gethostbyname_r with 3 args])
3193 struct hostent_data data;
3195 (void) gethostbyname_r(name, he, &data);
3197 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3198 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
3199 [Define this if you have the 3-arg version of gethostbyname_r().])
3208 AC_CHECK_FUNCS(gethostbyname)
3210 AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
3211 AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
3212 AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
3213 AC_SUBST(HAVE_GETHOSTBYNAME_R)
3214 AC_SUBST(HAVE_GETHOSTBYNAME)
3216 # checks for system services
3219 # Linux requires this for correct f.p. operations
3220 AC_CHECK_FUNC(__fpu_control,
3222 [AC_CHECK_LIB(ieee, __fpu_control)
3225 # Check for --with-fpectl
3226 AC_MSG_CHECKING(for --with-fpectl)
3228 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
3230 if test "$withval" != no
3232 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
3233 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
3235 else AC_MSG_RESULT(no)
3237 [AC_MSG_RESULT(no)])
3239 # check for --with-libm=...
3241 case $ac_sys_system in
3245 AC_MSG_CHECKING(for --with-libm=STRING)
3247 AC_HELP_STRING(--with-libm=STRING, math library),
3249 if test "$withval" = no
3251 AC_MSG_RESULT(force LIBM empty)
3252 elif test "$withval" != yes
3254 AC_MSG_RESULT(set LIBM="$withval")
3255 else AC_MSG_ERROR([proper usage is --with-libm=STRING])
3257 [AC_MSG_RESULT(default LIBM="$LIBM")])
3259 # check for --with-libc=...
3261 AC_MSG_CHECKING(for --with-libc=STRING)
3263 AC_HELP_STRING(--with-libc=STRING, C library),
3265 if test "$withval" = no
3267 AC_MSG_RESULT(force LIBC empty)
3268 elif test "$withval" != yes
3270 AC_MSG_RESULT(set LIBC="$withval")
3271 else AC_MSG_ERROR([proper usage is --with-libc=STRING])
3273 [AC_MSG_RESULT(default LIBC="$LIBC")])
3275 # **************************************************
3276 # * Check for various properties of floating point *
3277 # **************************************************
3279 AC_MSG_CHECKING(whether C doubles are little-endian IEEE 754 binary64)
3280 AC_CACHE_VAL(ac_cv_little_endian_double, [
3284 double x = 9006104071832581.0;
3285 if (memcmp(&x, "\x05\x04\x03\x02\x01\xff\x3f\x43", 8) == 0)
3291 ac_cv_little_endian_double=yes,
3292 ac_cv_little_endian_double=no,
3293 ac_cv_little_endian_double=no)])
3294 AC_MSG_RESULT($ac_cv_little_endian_double)
3295 if test "$ac_cv_little_endian_double" = yes
3297 AC_DEFINE(DOUBLE_IS_LITTLE_ENDIAN_IEEE754, 1,
3298 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3299 with the least significant byte first])
3302 AC_MSG_CHECKING(whether C doubles are big-endian IEEE 754 binary64)
3303 AC_CACHE_VAL(ac_cv_big_endian_double, [
3307 double x = 9006104071832581.0;
3308 if (memcmp(&x, "\x43\x3f\xff\x01\x02\x03\x04\x05", 8) == 0)
3314 ac_cv_big_endian_double=yes,
3315 ac_cv_big_endian_double=no,
3316 ac_cv_big_endian_double=no)])
3317 AC_MSG_RESULT($ac_cv_big_endian_double)
3318 if test "$ac_cv_big_endian_double" = yes
3320 AC_DEFINE(DOUBLE_IS_BIG_ENDIAN_IEEE754, 1,
3321 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3322 with the most significant byte first])
3325 # Some ARM platforms use a mixed-endian representation for doubles.
3326 # While Python doesn't currently have full support for these platforms
3327 # (see e.g., issue 1762561), we can at least make sure that float <-> string
3329 AC_MSG_CHECKING(whether C doubles are ARM mixed-endian IEEE 754 binary64)
3330 AC_CACHE_VAL(ac_cv_mixed_endian_double, [
3334 double x = 9006104071832581.0;
3335 if (memcmp(&x, "\x01\xff\x3f\x43\x05\x04\x03\x02", 8) == 0)
3341 ac_cv_mixed_endian_double=yes,
3342 ac_cv_mixed_endian_double=no,
3343 ac_cv_mixed_endian_double=no)])
3344 AC_MSG_RESULT($ac_cv_mixed_endian_double)
3345 if test "$ac_cv_mixed_endian_double" = yes
3347 AC_DEFINE(DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754, 1,
3348 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3349 in ARM mixed-endian order (byte order 45670123)])
3352 # The short float repr introduced in Python 3.1 requires the
3353 # correctly-rounded string <-> double conversion functions from
3354 # Python/dtoa.c, which in turn require that the FPU uses 53-bit
3355 # rounding; this is a problem on x86, where the x87 FPU has a default
3356 # rounding precision of 64 bits. For gcc/x86, we try to fix this by
3357 # using inline assembler to get and set the x87 FPU control word.
3358 if test "$GCC" = yes && test -n "`$CC -dM -E - </dev/null | grep i386`"
3360 # Check that it's okay to use gcc inline assembler to get and set
3361 # x87 control word. It should be, but you never know...
3362 AC_MSG_CHECKING(whether we can use gcc inline assembler to get and set x87 control word)
3363 AC_TRY_COMPILE([], [
3365 __asm__ __volatile__ ("fnstcw %0" : "=m" (cw));
3366 __asm__ __volatile__ ("fldcw %0" : : "m" (cw));
3368 [have_gcc_asm_for_x87=yes], [have_gcc_asm_for_x87=no])
3369 AC_MSG_RESULT($have_gcc_asm_for_x87)
3370 if test "$have_gcc_asm_for_x87" = yes
3372 AC_DEFINE(HAVE_GCC_ASM_FOR_X87, 1,
3373 [Define if we can use gcc inline assembler to get and set x87 control word])
3377 # Detect whether system arithmetic is subject to x87-style double
3378 # rounding issues. The result of this test has little meaning on non
3379 # IEEE 754 platforms. On IEEE 754, test should return 1 if rounding
3380 # mode is round-to-nearest and double rounding issues are present, and
3381 # 0 otherwise. See http://bugs.python.org/issue2937 for more info.
3382 AC_MSG_CHECKING(for x87-style double rounding)
3383 # $BASECFLAGS may affect the result
3385 CC="$CC $BASECFLAGS"
3390 volatile double x, y, z;
3391 /* 1./(1-2**-53) -> 1+2**-52 (correct), 1.0 (double rounding) */
3392 x = 0.99999999999999989; /* 1-2**-53 */
3396 /* 1e16+2.99999 -> 1e16+2. (correct), 1e16+4. (double rounding) */
3402 /* both tests show evidence of double rounding */
3406 ac_cv_x87_double_rounding=no,
3407 ac_cv_x87_double_rounding=yes,
3408 ac_cv_x87_double_rounding=no)
3410 AC_MSG_RESULT($ac_cv_x87_double_rounding)
3411 if test "$ac_cv_x87_double_rounding" = yes
3413 AC_DEFINE(X87_DOUBLE_ROUNDING, 1,
3414 [Define if arithmetic is subject to x87-style double rounding issue])
3417 # ************************************
3418 # * Check for mathematical functions *
3419 # ************************************
3424 # On FreeBSD 6.2, it appears that tanh(-0.) returns 0. instead of
3425 # -0. on some architectures.
3426 AC_MSG_CHECKING(whether tanh preserves the sign of zero)
3427 AC_CACHE_VAL(ac_cv_tanh_preserves_zero_sign, [
3432 /* return 0 if either negative zeros don't exist
3433 on this platform or if negative zeros exist
3434 and tanh(-0.) == -0. */
3435 if (atan2(0., -1.) == atan2(-0., -1.) ||
3436 atan2(tanh(-0.), -1.) == atan2(-0., -1.)) exit(0);
3440 ac_cv_tanh_preserves_zero_sign=yes,
3441 ac_cv_tanh_preserves_zero_sign=no,
3442 ac_cv_tanh_preserves_zero_sign=no)])
3443 AC_MSG_RESULT($ac_cv_tanh_preserves_zero_sign)
3444 if test "$ac_cv_tanh_preserves_zero_sign" = yes
3446 AC_DEFINE(TANH_PRESERVES_ZERO_SIGN, 1,
3447 [Define if tanh(-0.) is -0., or if platform doesn't have signed zeros])
3450 AC_CHECK_FUNCS([acosh asinh atanh copysign expm1 finite hypot log1p round])
3451 AC_CHECK_DECLS([isinf, isnan, isfinite], [], [], [[#include <math.h>]])
3455 # For multiprocessing module, check that sem_open
3456 # actually works. For FreeBSD versions <= 7.2,
3457 # the kernel module that provides POSIX semaphores
3458 # isn't loaded by default, so an attempt to call
3459 # sem_open results in a 'Signal 12' error.
3460 AC_MSG_CHECKING(whether POSIX semaphores are enabled)
3461 AC_CACHE_VAL(ac_cv_posix_semaphores_enabled,
3466 #include <semaphore.h>
3467 #include <sys/stat.h>
3470 sem_t *a = sem_open("/autoconf", O_CREAT, S_IRUSR|S_IWUSR, 0);
3471 if (a == SEM_FAILED) {
3476 sem_unlink("/autoconf");
3479 ], ac_cv_posix_semaphores_enabled=yes,
3480 ac_cv_posix_semaphores_enabled=no,
3481 ac_cv_posix_semaphores_enabled=yes)
3483 AC_MSG_RESULT($ac_cv_posix_semaphores_enabled)
3484 if test $ac_cv_posix_semaphores_enabled = no
3486 AC_DEFINE(POSIX_SEMAPHORES_NOT_ENABLED, 1,
3487 [Define if POSIX semaphores aren't enabled on your system])
3490 # Multiprocessing check for broken sem_getvalue
3491 AC_MSG_CHECKING(for broken sem_getvalue)
3496 #include <semaphore.h>
3497 #include <sys/stat.h>
3500 sem_t *a = sem_open("/autocftw", O_CREAT, S_IRUSR|S_IWUSR, 0);
3508 res = sem_getvalue(a, &count);
3510 sem_unlink("/autocftw");
3511 return res==-1 ? 1 : 0;
3516 AC_DEFINE(HAVE_BROKEN_SEM_GETVALUE, 1, define to 1 if your sem_getvalue is broken.)
3519 # determine what size digit to use for Python's longs
3520 AC_MSG_CHECKING([digit size for Python's longs])
3521 AC_ARG_ENABLE(big-digits,
3522 AC_HELP_STRING([--enable-big-digits@<:@=BITS@:>@],[use big digits for Python longs [[BITS=30]]]),
3523 [case $enable_big_digits in
3525 enable_big_digits=30 ;;
3527 enable_big_digits=15 ;;
3531 AC_MSG_ERROR([bad value $enable_big_digits for --enable-big-digits; value should be 15 or 30]) ;;
3533 AC_MSG_RESULT($enable_big_digits)
3534 AC_DEFINE_UNQUOTED(PYLONG_BITS_IN_DIGIT, $enable_big_digits, [Define as the preferred size in bits of long digits])
3536 [AC_MSG_RESULT(no value specified)])
3539 AC_CHECK_HEADER(wchar.h, [
3540 AC_DEFINE(HAVE_WCHAR_H, 1,
3541 [Define if the compiler provides a wchar.h header file.])
3547 # determine wchar_t size
3548 if test "$wchar_h" = yes
3550 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
3553 AC_MSG_CHECKING(for UCS-4 tcl)
3557 #if TCL_UTF_MAX != 6
3558 # error "NOT UCS4_TCL"
3560 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
3563 AC_MSG_RESULT($have_ucs4_tcl)
3565 # check whether wchar_t is signed or not
3566 if test "$wchar_h" = yes
3568 # check whether wchar_t is signed or not
3569 AC_MSG_CHECKING(whether wchar_t is signed)
3570 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
3575 /* Success: exit code 0 */
3576 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1);
3579 ac_cv_wchar_t_signed=yes,
3580 ac_cv_wchar_t_signed=no,
3581 ac_cv_wchar_t_signed=yes)])
3582 AC_MSG_RESULT($ac_cv_wchar_t_signed)
3585 AC_MSG_CHECKING(what type to use for str)
3586 AC_ARG_WITH(wide-unicode,
3587 AC_HELP_STRING(--with-wide-unicode, Use 4-byte Unicode characters (default is 2 bytes)),
3589 if test "$withval" != no
3590 then unicode_size="4"
3591 else unicode_size="2"
3595 case "$have_ucs4_tcl" in
3596 yes) unicode_size="4" ;;
3597 *) unicode_size="2" ;;
3601 AH_TEMPLATE(Py_UNICODE_SIZE,
3602 [Define as the size of the unicode type.])
3603 case "$unicode_size" in
3604 4) AC_DEFINE(Py_UNICODE_SIZE, 4) ;;
3605 *) AC_DEFINE(Py_UNICODE_SIZE, 2) ;;
3608 AH_TEMPLATE(PY_UNICODE_TYPE,
3609 [Define as the integral type used for Unicode representation.])
3611 # wchar_t is only usable if it maps to an unsigned type
3612 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
3613 -a "$ac_cv_wchar_t_signed" = "no"
3615 PY_UNICODE_TYPE="wchar_t"
3616 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
3617 [Define if you have a useable wchar_t type defined in wchar.h; useable
3618 means wchar_t must be an unsigned type with at least 16 bits. (see
3619 Include/unicodeobject.h).])
3620 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
3621 elif test "$ac_cv_sizeof_short" = "$unicode_size"
3623 PY_UNICODE_TYPE="unsigned short"
3624 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
3625 elif test "$ac_cv_sizeof_long" = "$unicode_size"
3627 PY_UNICODE_TYPE="unsigned long"
3628 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
3630 PY_UNICODE_TYPE="no type found"
3632 AC_MSG_RESULT($PY_UNICODE_TYPE)
3634 # check for endianness
3637 # Check whether right shifting a negative integer extends the sign bit
3638 # or fills with zeros (like the Cray J90, according to Tim Peters).
3639 AC_MSG_CHECKING(whether right shift extends the sign bit)
3640 AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
3644 exit(((-1)>>3 == -1) ? 0 : 1);
3647 ac_cv_rshift_extends_sign=yes,
3648 ac_cv_rshift_extends_sign=no,
3649 ac_cv_rshift_extends_sign=yes)])
3650 AC_MSG_RESULT($ac_cv_rshift_extends_sign)
3651 if test "$ac_cv_rshift_extends_sign" = no
3653 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
3654 [Define if i>>j for signed int i does not extend the sign bit
3658 # check for getc_unlocked and related locking functions
3659 AC_MSG_CHECKING(for getc_unlocked() and friends)
3660 AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
3661 AC_TRY_LINK([#include <stdio.h>],[
3662 FILE *f = fopen("/dev/null", "r");
3666 ], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
3667 AC_MSG_RESULT($ac_cv_have_getc_unlocked)
3668 if test "$ac_cv_have_getc_unlocked" = yes
3670 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
3671 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
3674 # check where readline lives
3675 # save the value of LIBS so we don't actually link Python with readline
3676 LIBS_no_readline=$LIBS
3678 # On some systems we need to link readline to a termcap compatible
3679 # library. NOTE: Keep the precedence of listed libraries synchronised
3681 py_cv_lib_readline=no
3682 AC_MSG_CHECKING([how to link readline libs])
3683 for py_libtermcap in "" ncursesw ncurses curses termcap; do
3684 if test -z "$py_libtermcap"; then
3685 READLINE_LIBS="-lreadline"
3687 READLINE_LIBS="-lreadline -l$py_libtermcap"
3689 LIBS="$READLINE_LIBS $LIBS_no_readline"
3691 [AC_LANG_CALL([],[readline])],
3692 [py_cv_lib_readline=yes])
3693 if test $py_cv_lib_readline = yes; then
3697 # Uncomment this line if you want to use READINE_LIBS in Makefile or scripts
3698 #AC_SUBST([READLINE_LIBS])
3699 if test $py_cv_lib_readline = no; then
3700 AC_MSG_RESULT([none])
3702 AC_MSG_RESULT([$READLINE_LIBS])
3703 AC_DEFINE(HAVE_LIBREADLINE, 1,
3704 [Define if you have the readline library (-lreadline).])
3707 # check for readline 2.1
3708 AC_CHECK_LIB(readline, rl_callback_handler_install,
3709 AC_DEFINE(HAVE_RL_CALLBACK, 1,
3710 [Define if you have readline 2.1]), ,$READLINE_LIBS)
3712 # check for readline 2.2
3713 AC_TRY_CPP([#include <readline/readline.h>],
3714 have_readline=yes, have_readline=no)
3715 if test $have_readline = yes
3717 AC_EGREP_HEADER([extern int rl_completion_append_character;],
3718 [readline/readline.h],
3719 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
3720 [Define if you have readline 2.2]), )
3721 AC_EGREP_HEADER([extern int rl_completion_suppress_append;],
3722 [readline/readline.h],
3723 AC_DEFINE(HAVE_RL_COMPLETION_SUPPRESS_APPEND, 1,
3724 [Define if you have rl_completion_suppress_append]), )
3727 # check for readline 4.0
3728 AC_CHECK_LIB(readline, rl_pre_input_hook,
3729 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
3730 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3733 AC_CHECK_LIB(readline, rl_completion_display_matches_hook,
3734 AC_DEFINE(HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK, 1,
3735 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3737 # check for readline 4.2
3738 AC_CHECK_LIB(readline, rl_completion_matches,
3739 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
3740 [Define if you have readline 4.2]), ,$READLINE_LIBS)
3742 # also in readline 4.2
3743 AC_TRY_CPP([#include <readline/readline.h>],
3744 have_readline=yes, have_readline=no)
3745 if test $have_readline = yes
3747 AC_EGREP_HEADER([extern int rl_catch_signals;],
3748 [readline/readline.h],
3749 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
3750 [Define if you can turn off readline's signal handling.]), )
3753 # End of readline checks: restore LIBS
3754 LIBS=$LIBS_no_readline
3756 AC_MSG_CHECKING(for broken nice())
3757 AC_CACHE_VAL(ac_cv_broken_nice, [
3762 if (val1 != -1 && val1 == nice(2))
3767 ac_cv_broken_nice=yes,
3768 ac_cv_broken_nice=no,
3769 ac_cv_broken_nice=no)])
3770 AC_MSG_RESULT($ac_cv_broken_nice)
3771 if test "$ac_cv_broken_nice" = yes
3773 AC_DEFINE(HAVE_BROKEN_NICE, 1,
3774 [Define if nice() returns success/failure instead of the new priority.])
3777 AC_MSG_CHECKING(for broken poll())
3783 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
3787 int poll_test = poll (&poll_struct, 1, 0);
3793 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
3803 ac_cv_broken_poll=yes,
3804 ac_cv_broken_poll=no,
3805 ac_cv_broken_poll=no)
3806 AC_MSG_RESULT($ac_cv_broken_poll)
3807 if test "$ac_cv_broken_poll" = yes
3809 AC_DEFINE(HAVE_BROKEN_POLL, 1,
3810 [Define if poll() sets errno on invalid file descriptors.])
3813 # Before we can test tzset, we need to check if struct tm has a tm_zone
3814 # (which is not required by ISO C or UNIX spec) and/or if we support
3818 # check tzset(3) exists and works like we expect it to
3819 AC_MSG_CHECKING(for working tzset())
3820 AC_CACHE_VAL(ac_cv_working_tzset, [
3827 extern char *tzname[];
3832 /* Note that we need to ensure that not only does tzset(3)
3833 do 'something' with localtime, but it works as documented
3834 in the library reference and as expected by the test suite.
3835 This includes making sure that tzname is set properly if
3836 tm->tm_zone does not exist since it is the alternative way
3837 of getting timezone info.
3839 Red Hat 6.2 doesn't understand the southern hemisphere
3840 after New Year's Day.
3843 time_t groundhogday = 1044144000; /* GMT-based */
3844 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
3848 if (localtime(&groundhogday)->tm_hour != 0)
3851 /* For UTC, tzname[1] is sometimes "", sometimes " " */
3852 if (strcmp(tzname[0], "UTC") ||
3853 (tzname[1][0] != 0 && tzname[1][0] != ' '))
3857 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
3859 if (localtime(&groundhogday)->tm_hour != 19)
3862 if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT"))
3866 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
3868 if (localtime(&groundhogday)->tm_hour != 11)
3871 if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT"))
3875 #if HAVE_STRUCT_TM_TM_ZONE
3876 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
3878 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
3885 ac_cv_working_tzset=yes,
3886 ac_cv_working_tzset=no,
3887 ac_cv_working_tzset=no)])
3888 AC_MSG_RESULT($ac_cv_working_tzset)
3889 if test "$ac_cv_working_tzset" = yes
3891 AC_DEFINE(HAVE_WORKING_TZSET, 1,
3892 [Define if tzset() actually switches the local timezone in a meaningful way.])
3895 # Look for subsecond timestamps in struct stat
3896 AC_MSG_CHECKING(for tv_nsec in struct stat)
3897 AC_CACHE_VAL(ac_cv_stat_tv_nsec,
3898 AC_TRY_COMPILE([#include <sys/stat.h>], [
3900 st.st_mtim.tv_nsec = 1;
3902 ac_cv_stat_tv_nsec=yes,
3903 ac_cv_stat_tv_nsec=no,
3904 ac_cv_stat_tv_nsec=no))
3905 AC_MSG_RESULT($ac_cv_stat_tv_nsec)
3906 if test "$ac_cv_stat_tv_nsec" = yes
3908 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
3909 [Define if you have struct stat.st_mtim.tv_nsec])
3912 # Look for BSD style subsecond timestamps in struct stat
3913 AC_MSG_CHECKING(for tv_nsec2 in struct stat)
3914 AC_CACHE_VAL(ac_cv_stat_tv_nsec2,
3915 AC_TRY_COMPILE([#include <sys/stat.h>], [
3917 st.st_mtimespec.tv_nsec = 1;
3919 ac_cv_stat_tv_nsec2=yes,
3920 ac_cv_stat_tv_nsec2=no,
3921 ac_cv_stat_tv_nsec2=no))
3922 AC_MSG_RESULT($ac_cv_stat_tv_nsec2)
3923 if test "$ac_cv_stat_tv_nsec2" = yes
3925 AC_DEFINE(HAVE_STAT_TV_NSEC2, 1,
3926 [Define if you have struct stat.st_mtimensec])
3929 # On HP/UX 11.0, mvwdelch is a block with a return statement
3930 AC_MSG_CHECKING(whether mvwdelch is an expression)
3931 AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
3932 AC_TRY_COMPILE([#include <curses.h>], [
3934 rtn = mvwdelch(0,0,0);
3935 ], ac_cv_mvwdelch_is_expression=yes,
3936 ac_cv_mvwdelch_is_expression=no,
3937 ac_cv_mvwdelch_is_expression=yes))
3938 AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
3940 if test "$ac_cv_mvwdelch_is_expression" = yes
3942 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
3943 [Define if mvwdelch in curses.h is an expression.])
3946 AC_MSG_CHECKING(whether WINDOW has _flags)
3947 AC_CACHE_VAL(ac_cv_window_has_flags,
3948 AC_TRY_COMPILE([#include <curses.h>], [
3951 ], ac_cv_window_has_flags=yes,
3952 ac_cv_window_has_flags=no,
3953 ac_cv_window_has_flags=no))
3954 AC_MSG_RESULT($ac_cv_window_has_flags)
3957 if test "$ac_cv_window_has_flags" = yes
3959 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3960 [Define if WINDOW in curses.h offers a field _flags.])
3963 AC_MSG_CHECKING(for is_term_resized)
3964 AC_TRY_COMPILE([#include <curses.h>], void *x=is_term_resized,
3965 AC_DEFINE(HAVE_CURSES_IS_TERM_RESIZED, 1, Define if you have the 'is_term_resized' function.)
3970 AC_MSG_CHECKING(for resize_term)
3971 AC_TRY_COMPILE([#include <curses.h>], void *x=resize_term,
3972 AC_DEFINE(HAVE_CURSES_RESIZE_TERM, 1, Define if you have the 'resize_term' function.)
3977 AC_MSG_CHECKING(for resizeterm)
3978 AC_TRY_COMPILE([#include <curses.h>], void *x=resizeterm,
3979 AC_DEFINE(HAVE_CURSES_RESIZETERM, 1, Define if you have the 'resizeterm' function.)
3984 AC_MSG_CHECKING(for /dev/ptmx)
3986 if test -r /dev/ptmx
3989 AC_DEFINE(HAVE_DEV_PTMX, 1,
3990 [Define if we have /dev/ptmx.])
3995 AC_MSG_CHECKING(for /dev/ptc)
4000 AC_DEFINE(HAVE_DEV_PTC, 1,
4001 [Define if we have /dev/ptc.])
4006 AC_MSG_CHECKING(for %zd printf() format support)
4007 AC_TRY_RUN([#include <stdio.h>
4011 #ifdef HAVE_SYS_TYPES_H
4012 #include <sys/types.h>
4016 typedef ssize_t Py_ssize_t;
4017 #elif SIZEOF_VOID_P == SIZEOF_LONG
4018 typedef long Py_ssize_t;
4020 typedef int Py_ssize_t;
4027 if(sprintf(buffer, "%zd", (size_t)123) < 0)
4030 if (strcmp(buffer, "123"))
4033 if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
4036 if (strcmp(buffer, "-123"))
4042 AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
4045 AC_CHECK_TYPE(socklen_t,,
4046 AC_DEFINE(socklen_t,int,
4047 Define to `int' if <sys/socket.h> does not define.),[
4048 #ifdef HAVE_SYS_TYPES_H
4049 #include <sys/types.h>
4051 #ifdef HAVE_SYS_SOCKET_H
4052 #include <sys/socket.h>
4056 AC_MSG_CHECKING(for broken mbstowcs)
4061 const char *str = "text";
4062 len = mbstowcs(NULL, str, 0);
4066 ac_cv_broken_mbstowcs=no,
4067 ac_cv_broken_mbstowcs=yes,
4068 ac_cv_broken_mbstowcs=no)
4069 AC_MSG_RESULT($ac_cv_broken_mbstowcs)
4070 if test "$ac_cv_broken_mbstowcs" = yes
4072 AC_DEFINE(HAVE_BROKEN_MBSTOWCS, 1,
4073 [Define if mbstowcs(NULL, "text", 0) does not return the number of
4074 wide chars that would be converted.])
4077 # Check for --with-computed-gotos
4078 AC_MSG_CHECKING(for --with-computed-gotos)
4079 AC_ARG_WITH(computed-gotos,
4080 AC_HELP_STRING(--with-computed-gotos,
4081 Use computed gotos / threaded dispatch in evaluation loop (not available on all compilers)),
4083 if test "$withval" != no
4085 AC_DEFINE(USE_COMPUTED_GOTOS, 1,
4086 [Define if you want to use computed gotos in ceval.c.])
4088 else AC_MSG_RESULT(no)
4090 [AC_MSG_RESULT(no)])
4092 if test $ac_sys_system = Darwin
4094 LIBS="$LIBS -framework CoreFoundation"
4099 AC_SUBST(THREADHEADERS)
4101 for h in `(cd $srcdir;echo Python/thread_*.h)`
4103 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
4107 SRCDIRS="Parser Grammar Objects Python Modules Mac"
4108 AC_MSG_CHECKING(for build directories)
4109 for dir in $SRCDIRS; do
4110 if test ! -d $dir; then
4116 # generate output files
4117 AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc)
4118 AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
4121 echo "creating Modules/Setup"
4122 if test ! -f Modules/Setup
4124 cp $srcdir/Modules/Setup.dist Modules/Setup
4127 echo "creating Modules/Setup.local"
4128 if test ! -f Modules/Setup.local
4130 echo "# Edit this file for local setup changes" >Modules/Setup.local
4133 echo "creating Makefile"
4134 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
4135 -s Modules Modules/Setup.config \
4136 Modules/Setup.local Modules/Setup