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)
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
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 AC_MSG_RESULT($with_system_ffi)
2002 # Check for --with-dbmliborder
2003 AC_MSG_CHECKING(for --with-dbmliborder)
2004 AC_ARG_WITH(dbmliborder,
2005 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'.]),
2007 if test x$with_dbmliborder = xyes
2009 AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...])
2011 for db in `echo $with_dbmliborder | sed 's/:/ /g'`; do
2012 if test x$db != xndbm && test x$db != xgdbm && test x$db != xbdb
2014 AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...])
2018 AC_MSG_RESULT($with_dbmliborder)
2020 # Determine if signalmodule should be used.
2021 AC_SUBST(USE_SIGNAL_MODULE)
2022 AC_SUBST(SIGNAL_OBJS)
2023 AC_MSG_CHECKING(for --with-signal-module)
2024 AC_ARG_WITH(signal-module,
2025 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
2027 if test -z "$with_signal_module"
2028 then with_signal_module="yes"
2030 AC_MSG_RESULT($with_signal_module)
2032 if test "${with_signal_module}" = "yes"; then
2033 USE_SIGNAL_MODULE=""
2036 USE_SIGNAL_MODULE="#"
2037 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
2040 # This is used to generate Setup.config
2041 AC_SUBST(USE_THREAD_MODULE)
2042 USE_THREAD_MODULE=""
2044 AC_MSG_CHECKING(for --with-dec-threads)
2046 AC_ARG_WITH(dec-threads,
2047 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
2049 AC_MSG_RESULT($withval)
2051 if test "${with_thread+set}" != set; then
2052 with_thread="$withval";
2054 [AC_MSG_RESULT(no)])
2056 # Templates for things AC_DEFINEd more than once.
2057 # For a single AC_DEFINE, no template is needed.
2058 AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
2059 AH_TEMPLATE(_REENTRANT,
2060 [Define to force use of thread-safe errno, h_errno, and other functions])
2061 AH_TEMPLATE(WITH_THREAD,
2062 [Define if you want to compile in rudimentary thread support])
2064 AC_MSG_CHECKING(for --with-threads)
2065 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
2066 AC_ARG_WITH(threads,
2067 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
2069 # --with-thread is deprecated, but check for it anyway
2070 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
2072 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
2073 [with_threads=$with_thread])
2075 if test -z "$with_threads"
2076 then with_threads="yes"
2078 AC_MSG_RESULT($with_threads)
2081 if test "$with_threads" = "no"
2083 USE_THREAD_MODULE="#"
2084 elif test "$ac_cv_pthread_is_default" = yes
2086 AC_DEFINE(WITH_THREAD)
2087 # Defining _REENTRANT on system with POSIX threads should not hurt.
2088 AC_DEFINE(_REENTRANT)
2090 THREADOBJ="Python/thread.o"
2091 elif test "$ac_cv_kpthread" = "yes"
2094 if test "$ac_cv_cxx_thread" = "yes"; then
2095 CXX="$CXX -Kpthread"
2097 AC_DEFINE(WITH_THREAD)
2099 THREADOBJ="Python/thread.o"
2100 elif test "$ac_cv_kthread" = "yes"
2103 if test "$ac_cv_cxx_thread" = "yes"; then
2106 AC_DEFINE(WITH_THREAD)
2108 THREADOBJ="Python/thread.o"
2109 elif test "$ac_cv_pthread" = "yes"
2112 if test "$ac_cv_cxx_thread" = "yes"; then
2115 AC_DEFINE(WITH_THREAD)
2117 THREADOBJ="Python/thread.o"
2119 if test ! -z "$with_threads" -a -d "$with_threads"
2120 then LDFLAGS="$LDFLAGS -L$with_threads"
2122 if test ! -z "$withval" -a -d "$withval"
2123 then LDFLAGS="$LDFLAGS -L$withval"
2126 # According to the POSIX spec, a pthreads implementation must
2127 # define _POSIX_THREADS in unistd.h. Some apparently don't
2128 # (e.g. gnu pth with pthread emulation)
2129 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
2133 #ifdef _POSIX_THREADS
2136 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
2137 AC_MSG_RESULT($unistd_defines_pthreads)
2139 AC_DEFINE(_REENTRANT)
2140 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
2141 AC_DEFINE(C_THREADS)
2142 AC_DEFINE(HURD_C_THREADS, 1,
2143 [Define if you are using Mach cthreads directly under /include])
2144 LIBS="$LIBS -lthreads"
2145 THREADOBJ="Python/thread.o"],[
2146 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
2147 AC_DEFINE(C_THREADS)
2148 AC_DEFINE(MACH_C_THREADS, 1,
2149 [Define if you are using Mach cthreads under mach /])
2150 THREADOBJ="Python/thread.o"],[
2151 AC_MSG_CHECKING(for --with-pth)
2153 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
2154 [AC_MSG_RESULT($withval)
2155 AC_DEFINE([WITH_THREAD])
2156 AC_DEFINE([HAVE_PTH], 1,
2157 [Define if you have GNU PTH threads.])
2159 THREADOBJ="Python/thread.o"],
2162 # Just looking for pthread_create in libpthread is not enough:
2163 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
2164 # So we really have to include pthread.h, and then link.
2166 LIBS="$LIBS -lpthread"
2167 AC_MSG_CHECKING([for pthread_create in -lpthread])
2168 AC_TRY_LINK([#include <pthread.h>
2170 void * start_routine (void *arg) { exit (0); }], [
2171 pthread_create (NULL, NULL, start_routine, NULL)], [
2173 AC_DEFINE(WITH_THREAD)
2175 THREADOBJ="Python/thread.o"],[
2177 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
2179 THREADOBJ="Python/thread.o"],[
2180 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
2181 AC_DEFINE(ATHEOS_THREADS, 1,
2182 [Define this if you have AtheOS threads.])
2183 THREADOBJ="Python/thread.o"],[
2184 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
2186 LIBS="$LIBS -lpthreads"
2187 THREADOBJ="Python/thread.o"], [
2188 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
2191 THREADOBJ="Python/thread.o"], [
2192 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
2194 LIBS="$LIBS -lpthread"
2195 THREADOBJ="Python/thread.o"], [
2196 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
2199 THREADOBJ="Python/thread.o"],[
2200 USE_THREAD_MODULE="#"])
2203 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
2205 THREADOBJ="Python/thread.o"
2206 USE_THREAD_MODULE=""])
2208 if test "$posix_threads" != "yes"; then
2209 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
2210 LIBS="$LIBS -lthread"
2211 THREADOBJ="Python/thread.o"
2212 USE_THREAD_MODULE=""])
2215 if test "$USE_THREAD_MODULE" != "#"
2217 # If the above checks didn't disable threads, (at least) OSF1
2218 # needs this '-threads' argument during linking.
2219 case $ac_sys_system in
2220 OSF1) LDLAST=-threads;;
2225 if test "$posix_threads" = "yes"; then
2226 if test "$unistd_defines_pthreads" = "no"; then
2227 AC_DEFINE(_POSIX_THREADS, 1,
2228 [Define if you have POSIX threads,
2229 and your system does not define that.])
2232 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
2233 case $ac_sys_system/$ac_sys_release in
2234 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
2235 Defined for Solaris 2.6 bug in pthread header.)
2237 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2238 Define if the Posix semaphores do not work on your system)
2240 AIX/5) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2241 Define if the Posix semaphores do not work on your system)
2243 AIX/6) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2244 Define if the Posix semaphores do not work on your system)
2248 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
2249 AC_CACHE_VAL(ac_cv_pthread_system_supported,
2250 [AC_TRY_RUN([#include <pthread.h>
2251 void *foo(void *parm) {
2255 pthread_attr_t attr;
2257 if (pthread_attr_init(&attr)) exit(-1);
2258 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
2259 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
2262 ac_cv_pthread_system_supported=yes,
2263 ac_cv_pthread_system_supported=no,
2264 ac_cv_pthread_system_supported=no)
2266 AC_MSG_RESULT($ac_cv_pthread_system_supported)
2267 if test "$ac_cv_pthread_system_supported" = "yes"; then
2268 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
2270 AC_CHECK_FUNCS(pthread_sigmask,
2271 [case $ac_sys_system in
2273 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
2274 [Define if pthread_sigmask() does not work on your system.])
2280 # Check for enable-ipv6
2281 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
2282 AC_MSG_CHECKING([if --enable-ipv6 is specified])
2284 [ --enable-ipv6 Enable ipv6 (with ipv4) support
2285 --disable-ipv6 Disable ipv6 support],
2286 [ case "$enableval" in
2291 *) AC_MSG_RESULT(yes)
2292 AC_DEFINE(ENABLE_IPV6)
2298 dnl the check does not work on cross compilation case...
2299 AC_TRY_RUN([ /* AF_INET6 available check */
2300 #include <sys/types.h>
2301 #include <sys/socket.h>
2304 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
2318 if test "$ipv6" = "yes"; then
2319 AC_MSG_CHECKING(if RFC2553 API is available)
2320 AC_TRY_COMPILE([#include <sys/types.h>
2321 #include <netinet/in.h>],
2322 [struct sockaddr_in6 x;
2326 AC_MSG_RESULT(no, IPv6 disabled)
2330 if test "$ipv6" = "yes"; then
2331 AC_DEFINE(ENABLE_IPV6)
2339 if test "$ipv6" = "yes"; then
2340 AC_MSG_CHECKING([ipv6 stack type])
2341 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
2345 dnl http://www.kame.net/
2347 #include <netinet/in.h>
2348 #ifdef IPV6_INRIA_VERSION
2354 dnl http://www.kame.net/
2356 #include <netinet/in.h>
2362 ipv6libdir=/usr/local/v6/lib
2366 dnl http://www.v6.linux.or.jp/
2368 #include <features.h>
2369 #if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
2376 dnl http://www.v6.linux.or.jp/
2377 if test -d /usr/inet6; then
2380 ipv6libdir=/usr/inet6/lib
2381 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
2385 if test -f /etc/netconfig; then
2386 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
2394 #include <sys/param.h>
2395 #ifdef _TOSHIBA_INET6
2400 ipv6libdir=/usr/local/v6/lib])
2404 #include </usr/local/v6/include/sys/v6config.h>
2410 ipv6libdir=/usr/local/v6/lib;
2411 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
2415 #include <sys/param.h>
2416 #ifdef _ZETA_MINAMI_INET6
2421 ipv6libdir=/usr/local/v6/lib])
2424 if test "$ipv6type" != "unknown"; then
2428 AC_MSG_RESULT($ipv6type)
2431 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
2432 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
2433 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
2434 echo "using lib$ipv6lib"
2436 if test $ipv6trylibc = "yes"; then
2439 echo 'Fatal: no $ipv6lib library found. cannot continue.'
2440 echo "You need to fetch lib$ipv6lib.a from appropriate"
2441 echo 'ipv6 kit and compile beforehand.'
2447 AC_MSG_CHECKING(for OSX 10.5 SDK or later)
2448 AC_TRY_COMPILE([#include <Carbon/Carbon.h>], FSIORefNum fRef = 0,
2449 AC_DEFINE(HAVE_OSX105_SDK, 1, Define if compiling using MacOS X 10.5 SDK or later.)
2454 # Check for --with-doc-strings
2455 AC_MSG_CHECKING(for --with-doc-strings)
2456 AC_ARG_WITH(doc-strings,
2457 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
2459 if test -z "$with_doc_strings"
2460 then with_doc_strings="yes"
2462 if test "$with_doc_strings" != "no"
2464 AC_DEFINE(WITH_DOC_STRINGS, 1,
2465 [Define if you want documentation strings in extension modules])
2467 AC_MSG_RESULT($with_doc_strings)
2469 # Check if eval loop should use timestamp counter profiling
2470 AC_MSG_CHECKING(for --with-tsc)
2472 [ --with(out)-tsc enable/disable timestamp counter profile], [
2473 if test "$withval" != no
2475 AC_DEFINE(WITH_TSC, 1,
2476 [Define to profile with the Pentium timestamp counter])
2478 else AC_MSG_RESULT(no)
2480 [AC_MSG_RESULT(no)])
2482 # Check for Python-specific malloc support
2483 AC_MSG_CHECKING(for --with-pymalloc)
2484 AC_ARG_WITH(pymalloc,
2485 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
2487 if test -z "$with_pymalloc"
2488 then with_pymalloc="yes"
2490 if test "$with_pymalloc" != "no"
2492 AC_DEFINE(WITH_PYMALLOC, 1,
2493 [Define if you want to compile in Python-specific mallocs])
2495 AC_MSG_RESULT($with_pymalloc)
2497 # Check for --with-wctype-functions
2498 AC_MSG_CHECKING(for --with-wctype-functions)
2499 AC_ARG_WITH(wctype-functions,
2500 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
2502 if test "$withval" != no
2504 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2505 [Define if you want wctype.h functions to be used instead of the
2506 one supplied by Python itself. (see Include/unicodectype.h).])
2508 else AC_MSG_RESULT(no)
2510 [AC_MSG_RESULT(no)])
2512 # -I${DLINCLDIR} is added to the compile rule for importdl.o
2516 # the dlopen() function means we might want to use dynload_shlib.o. some
2517 # platforms, such as AIX, have dlopen(), but don't want to use it.
2518 AC_CHECK_FUNCS(dlopen)
2520 # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2521 # loading of modules.
2522 AC_SUBST(DYNLOADFILE)
2523 AC_MSG_CHECKING(DYNLOADFILE)
2524 if test -z "$DYNLOADFILE"
2526 case $ac_sys_system/$ac_sys_release in
2527 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2528 if test "$ac_cv_func_dlopen" = yes
2529 then DYNLOADFILE="dynload_shlib.o"
2530 else DYNLOADFILE="dynload_aix.o"
2533 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
2534 # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
2535 Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
2536 atheos*) DYNLOADFILE="dynload_atheos.o";;
2538 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2539 # out any dynamic loading
2540 if test "$ac_cv_func_dlopen" = yes
2541 then DYNLOADFILE="dynload_shlib.o"
2542 else DYNLOADFILE="dynload_stub.o"
2547 AC_MSG_RESULT($DYNLOADFILE)
2548 if test "$DYNLOADFILE" != "dynload_stub.o"
2550 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2551 [Defined when any dynamic module loading is enabled.])
2554 # MACHDEP_OBJS can be set to platform-specific object files needed by Python
2556 AC_SUBST(MACHDEP_OBJS)
2557 AC_MSG_CHECKING(MACHDEP_OBJS)
2558 if test -z "$MACHDEP_OBJS"
2560 MACHDEP_OBJS=$extra_machdep_objs
2562 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
2564 AC_MSG_RESULT(MACHDEP_OBJS)
2566 # checks for library functions
2567 AC_CHECK_FUNCS(alarm setitimer getitimer bind_textdomain_codeset chown \
2568 clock confstr ctermid execv fchmod fchown fork fpathconf ftime ftruncate \
2569 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
2570 getpriority getpwent getspnam getspent getsid getwd \
2571 kill killpg lchmod lchown lstat mbrtowc mkfifo mknod mktime \
2572 mremap nice pathconf pause plock poll pthread_init \
2573 putenv readlink realpath \
2574 select sem_open sem_timedwait sem_getvalue sem_unlink setegid seteuid \
2576 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
2577 sigaction siginterrupt sigrelse strftime strlcpy \
2578 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
2579 truncate uname unsetenv utimes waitpid wait3 wait4 \
2580 wcscoll wcsftime wcsxfrm _getpty)
2582 # For some functions, having a definition is not sufficient, since
2583 # we want to take their address.
2584 AC_MSG_CHECKING(for chroot)
2585 AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2586 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2590 AC_MSG_CHECKING(for link)
2591 AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2592 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2596 AC_MSG_CHECKING(for symlink)
2597 AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2598 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2602 AC_MSG_CHECKING(for fchdir)
2603 AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2604 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2608 AC_MSG_CHECKING(for fsync)
2609 AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
2610 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
2614 AC_MSG_CHECKING(for fdatasync)
2615 AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2616 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2620 AC_MSG_CHECKING(for epoll)
2621 AC_TRY_COMPILE([#include <sys/epoll.h>], void *x=epoll_create,
2622 AC_DEFINE(HAVE_EPOLL, 1, Define if you have the 'epoll' functions.)
2626 AC_MSG_CHECKING(for kqueue)
2628 #include <sys/types.h>
2629 #include <sys/event.h>
2631 AC_DEFINE(HAVE_KQUEUE, 1, Define if you have the 'kqueue' functions.)
2635 # On some systems (eg. FreeBSD 5), we would find a definition of the
2636 # functions ctermid_r, setgroups in the library, but no prototype
2637 # (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2638 # address to avoid compiler warnings and potential miscompilations
2639 # because of the missing prototypes.
2641 AC_MSG_CHECKING(for ctermid_r)
2643 #include "confdefs.h"
2645 ], void* p = ctermid_r,
2646 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2651 AC_CACHE_CHECK([for flock declaration], [ac_cv_flock_decl],
2654 [#include <sys/file.h>],
2657 [ac_cv_flock_decl=yes],
2658 [ac_cv_flock_decl=no]
2661 if test "x${ac_cv_flock_decl}" = xyes; then
2662 AC_CHECK_FUNCS(flock,,
2663 AC_CHECK_LIB(bsd,flock,
2664 [AC_DEFINE(HAVE_FLOCK)
2665 AC_DEFINE(FLOCK_NEEDS_LIBBSD, 1, Define if flock needs to be linked with bsd library.)
2670 AC_MSG_CHECKING(for getpagesize)
2672 #include "confdefs.h"
2674 ], void* p = getpagesize,
2675 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2681 AC_CHECK_PROGS(TRUE, true, /bin/true)
2683 dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2684 dnl On others, they are in the C library, so we to take no action
2685 AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
2686 AC_CHECK_LIB(resolv, inet_aton)
2689 # On Tru64, chflags seems to be present, but calling it will
2691 AC_CACHE_CHECK([for chflags], [ac_cv_have_chflags], [dnl
2693 #include <sys/stat.h>
2695 int main(int argc, char*argv[])
2697 if(chflags(argv[0], 0) != 0)
2701 ]], ac_cv_have_chflags=yes,
2702 ac_cv_have_chflags=no,
2703 ac_cv_have_chflags=cross)
2705 if test "$ac_cv_have_chflags" = cross ; then
2706 AC_CHECK_FUNC([chflags], [ac_cv_have_chflags="yes"], [ac_cv_have_chflags="no"])
2708 if test "$ac_cv_have_chflags" = yes ; then
2709 AC_DEFINE(HAVE_CHFLAGS, 1, Define to 1 if you have the `chflags' function.)
2712 AC_CACHE_CHECK([for lchflags], [ac_cv_have_lchflags], [dnl
2714 #include <sys/stat.h>
2716 int main(int argc, char*argv[])
2718 if(lchflags(argv[0], 0) != 0)
2722 ]], ac_cv_have_lchflags=yes,
2723 ac_cv_have_lchflags=no,
2724 ac_cv_have_lchflags=cross)
2726 if test "$ac_cv_have_lchflags" = cross ; then
2727 AC_CHECK_FUNC([lchflags], [ac_cv_have_lchflags="yes"], [ac_cv_have_lchflags="no"])
2729 if test "$ac_cv_have_lchflags" = yes ; then
2730 AC_DEFINE(HAVE_LCHFLAGS, 1, Define to 1 if you have the `lchflags' function.)
2733 dnl Check if system zlib has *Copy() functions
2735 dnl On MacOSX the linker will search for dylibs on the entire linker path
2736 dnl before searching for static libraries. setup.py adds -Wl,-search_paths_first
2737 dnl to revert to a more traditional unix behaviour and make it possible to
2738 dnl override the system libz with a local static library of libz. Temporarily
2739 dnl add that flag to our CFLAGS as well to ensure that we check the version
2740 dnl of libz that will be used by setup.py.
2741 dnl The -L/usr/local/lib is needed as wel to get the same compilation
2742 dnl environment as setup.py (and leaving it out can cause configure to use the
2743 dnl wrong version of the library)
2744 case $ac_sys_system/$ac_sys_release in
2746 _CUR_CFLAGS="${CFLAGS}"
2747 _CUR_LDFLAGS="${LDFLAGS}"
2748 CFLAGS="${CFLAGS} -Wl,-search_paths_first"
2749 LDFLAGS="${LDFLAGS} -Wl,-search_paths_first -L/usr/local/lib"
2753 AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_ZLIB_COPY, 1, Define if the zlib library has inflateCopy))
2755 case $ac_sys_system/$ac_sys_release in
2757 CFLAGS="${_CUR_CFLAGS}"
2758 LDFLAGS="${_CUR_LDFLAGS}"
2762 AC_MSG_CHECKING(for hstrerror)
2764 #include "confdefs.h"
2766 ], void* p = hstrerror; hstrerror(0),
2767 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2772 AC_MSG_CHECKING(for inet_aton)
2774 #include "confdefs.h"
2775 #include <sys/types.h>
2776 #include <sys/socket.h>
2777 #include <netinet/in.h>
2778 #include <arpa/inet.h>
2779 ], void* p = inet_aton;inet_aton(0,0),
2780 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2785 AC_MSG_CHECKING(for inet_pton)
2787 #include "confdefs.h"
2788 #include <sys/types.h>
2789 #include <sys/socket.h>
2790 #include <netinet/in.h>
2791 #include <arpa/inet.h>
2792 ], void* p = inet_pton,
2793 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2798 # On some systems, setgroups is in unistd.h, on others, in grp.h
2799 AC_MSG_CHECKING(for setgroups)
2801 #include "confdefs.h"
2807 void* p = setgroups,
2808 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2813 # check for openpty and forkpty
2815 AC_CHECK_FUNCS(openpty,,
2816 AC_CHECK_LIB(util,openpty,
2817 [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"],
2818 AC_CHECK_LIB(bsd,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lbsd"])
2821 AC_CHECK_FUNCS(forkpty,,
2822 AC_CHECK_LIB(util,forkpty,
2823 [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"],
2824 AC_CHECK_LIB(bsd,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lbsd"])
2829 AC_CHECK_FUNCS(memmove)
2831 # check for long file support functions
2832 AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2834 AC_REPLACE_FUNCS(dup2 getcwd strdup)
2835 AC_CHECK_FUNCS(getpgrp,
2836 AC_TRY_COMPILE([#include <unistd.h>],
2838 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2839 [Define if getpgrp() must be called as getpgrp(0).])
2842 AC_CHECK_FUNCS(setpgrp,
2843 AC_TRY_COMPILE([#include <unistd.h>],
2845 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2846 [Define if setpgrp() must be called as setpgrp(0, 0).])
2849 AC_CHECK_FUNCS(gettimeofday,
2850 AC_TRY_COMPILE([#include <sys/time.h>],
2851 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2852 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2853 [Define if gettimeofday() does not have second (timezone) argument
2854 This is the case on Motorola V4 (R40V4.2)])
2858 AC_MSG_CHECKING(for major, minor, and makedev)
2860 #if defined(MAJOR_IN_MKDEV)
2861 #include <sys/mkdev.h>
2862 #elif defined(MAJOR_IN_SYSMACROS)
2863 #include <sys/sysmacros.h>
2865 #include <sys/types.h>
2868 makedev(major(0),minor(0));
2870 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2871 [Define to 1 if you have the device macros.])
2877 # On OSF/1 V5.1, getaddrinfo is available, but a define
2878 # for [no]getaddrinfo in netdb.h.
2879 AC_MSG_CHECKING(for getaddrinfo)
2881 #include <sys/types.h>
2882 #include <sys/socket.h>
2886 getaddrinfo(NULL, NULL, NULL, NULL);
2889 AC_MSG_CHECKING(getaddrinfo bug)
2891 #include <sys/types.h>
2894 #include <sys/socket.h>
2895 #include <netinet/in.h>
2899 int passive, gaierr, inet4 = 0, inet6 = 0;
2900 struct addrinfo hints, *ai, *aitop;
2901 char straddr[INET6_ADDRSTRLEN], strport[16];
2903 for (passive = 0; passive <= 1; passive++) {
2904 memset(&hints, 0, sizeof(hints));
2905 hints.ai_family = AF_UNSPEC;
2906 hints.ai_flags = passive ? AI_PASSIVE : 0;
2907 hints.ai_socktype = SOCK_STREAM;
2908 hints.ai_protocol = IPPROTO_TCP;
2909 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2910 (void)gai_strerror(gaierr);
2913 for (ai = aitop; ai; ai = ai->ai_next) {
2914 if (ai->ai_addr == NULL ||
2915 ai->ai_addrlen == 0 ||
2916 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2917 straddr, sizeof(straddr), strport, sizeof(strport),
2918 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2921 switch (ai->ai_family) {
2923 if (strcmp(strport, "54321") != 0) {
2927 if (strcmp(straddr, "0.0.0.0") != 0) {
2931 if (strcmp(straddr, "127.0.0.1") != 0) {
2938 if (strcmp(strport, "54321") != 0) {
2942 if (strcmp(straddr, "::") != 0) {
2946 if (strcmp(straddr, "::1") != 0) {
2956 /* another family support? */
2962 if (!(inet4 == 0 || inet4 == 2))
2964 if (!(inet6 == 0 || inet6 == 2))
2968 freeaddrinfo(aitop);
2973 freeaddrinfo(aitop);
2978 buggygetaddrinfo=no,
2979 AC_MSG_RESULT(buggy)
2980 buggygetaddrinfo=yes,
2981 AC_MSG_RESULT(buggy)
2982 buggygetaddrinfo=yes)], [
2984 buggygetaddrinfo=yes
2987 if test "$buggygetaddrinfo" = "yes"; then
2988 if test "$ipv6" = "yes"; then
2989 echo 'Fatal: You must get working getaddrinfo() function.'
2990 echo ' or you can specify "--disable-ipv6"'.
2994 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
2996 AC_CHECK_FUNCS(getnameinfo)
2998 # checks for structures
3002 AC_CHECK_MEMBERS([struct stat.st_rdev])
3003 AC_CHECK_MEMBERS([struct stat.st_blksize])
3004 AC_CHECK_MEMBERS([struct stat.st_flags])
3005 AC_CHECK_MEMBERS([struct stat.st_gen])
3006 AC_CHECK_MEMBERS([struct stat.st_birthtime])
3009 AC_MSG_CHECKING(for time.h that defines altzone)
3010 AC_CACHE_VAL(ac_cv_header_time_altzone,
3011 [AC_TRY_COMPILE([#include <time.h>], [return altzone;],
3012 ac_cv_header_time_altzone=yes,
3013 ac_cv_header_time_altzone=no)])
3014 AC_MSG_RESULT($ac_cv_header_time_altzone)
3015 if test $ac_cv_header_time_altzone = yes; then
3016 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
3020 AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
3022 #include <sys/types.h>
3023 #include <sys/select.h>
3024 #include <sys/time.h>
3026 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
3027 [Define if you can safely include both <sys/select.h> and <sys/time.h>
3028 (which you can't on SCO ODT 3.0).])
3031 AC_MSG_RESULT($was_it_defined)
3033 AC_MSG_CHECKING(for addrinfo)
3034 AC_CACHE_VAL(ac_cv_struct_addrinfo,
3036 # include <netdb.h>],
3037 [struct addrinfo a],
3038 ac_cv_struct_addrinfo=yes,
3039 ac_cv_struct_addrinfo=no))
3040 AC_MSG_RESULT($ac_cv_struct_addrinfo)
3041 if test $ac_cv_struct_addrinfo = yes; then
3042 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
3045 AC_MSG_CHECKING(for sockaddr_storage)
3046 AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
3048 # include <sys/types.h>
3049 # include <sys/socket.h>],
3050 [struct sockaddr_storage s],
3051 ac_cv_struct_sockaddr_storage=yes,
3052 ac_cv_struct_sockaddr_storage=no))
3053 AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
3054 if test $ac_cv_struct_sockaddr_storage = yes; then
3055 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
3058 # checks for compiler characteristics
3064 AC_MSG_CHECKING(for working volatile)
3065 AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
3066 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
3068 AC_MSG_RESULT($works)
3071 AC_MSG_CHECKING(for working signed char)
3072 AC_TRY_COMPILE([], [signed char c;], works=yes,
3073 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
3075 AC_MSG_RESULT($works)
3078 AC_MSG_CHECKING(for prototypes)
3079 AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
3080 AC_DEFINE(HAVE_PROTOTYPES, 1,
3081 [Define if your compiler supports function prototype])
3084 AC_MSG_RESULT($have_prototypes)
3087 AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
3090 int foo(int x, ...) {
3098 ], [return foo(10, "", 3.14);], [
3099 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
3100 [Define if your compiler supports variable length function prototypes
3101 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
3104 AC_MSG_RESULT($works)
3106 # check for socketpair
3107 AC_MSG_CHECKING(for socketpair)
3109 #include <sys/types.h>
3110 #include <sys/socket.h>
3111 ], void *x=socketpair,
3112 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
3117 # check if sockaddr has sa_len member
3118 AC_MSG_CHECKING(if sockaddr has sa_len member)
3119 AC_TRY_COMPILE([#include <sys/types.h>
3120 #include <sys/socket.h>],
3124 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
3128 AC_MSG_CHECKING(whether va_list is an array)
3130 #ifdef HAVE_STDARG_PROTOTYPES
3133 #include <varargs.h>
3135 ], [va_list list1, list2; list1 = list2;], , [
3136 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
3137 va_list_is_array=yes
3139 AC_MSG_RESULT($va_list_is_array)
3141 # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
3142 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
3143 [Define this if you have some version of gethostbyname_r()])
3145 AC_CHECK_FUNC(gethostbyname_r, [
3146 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3147 AC_MSG_CHECKING([gethostbyname_r with 6 args])
3149 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
3154 struct hostent *he, *res;
3159 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
3161 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3162 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
3163 [Define this if you have the 6-arg version of gethostbyname_r().])
3167 AC_MSG_CHECKING([gethostbyname_r with 5 args])
3177 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
3179 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3180 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
3181 [Define this if you have the 5-arg version of gethostbyname_r().])
3185 AC_MSG_CHECKING([gethostbyname_r with 3 args])
3191 struct hostent_data data;
3193 (void) gethostbyname_r(name, he, &data);
3195 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3196 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
3197 [Define this if you have the 3-arg version of gethostbyname_r().])
3206 AC_CHECK_FUNCS(gethostbyname)
3208 AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
3209 AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
3210 AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
3211 AC_SUBST(HAVE_GETHOSTBYNAME_R)
3212 AC_SUBST(HAVE_GETHOSTBYNAME)
3214 # checks for system services
3217 # Linux requires this for correct f.p. operations
3218 AC_CHECK_FUNC(__fpu_control,
3220 [AC_CHECK_LIB(ieee, __fpu_control)
3223 # Check for --with-fpectl
3224 AC_MSG_CHECKING(for --with-fpectl)
3226 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
3228 if test "$withval" != no
3230 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
3231 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
3233 else AC_MSG_RESULT(no)
3235 [AC_MSG_RESULT(no)])
3237 # check for --with-libm=...
3239 case $ac_sys_system in
3243 AC_MSG_CHECKING(for --with-libm=STRING)
3245 AC_HELP_STRING(--with-libm=STRING, math library),
3247 if test "$withval" = no
3249 AC_MSG_RESULT(force LIBM empty)
3250 elif test "$withval" != yes
3252 AC_MSG_RESULT(set LIBM="$withval")
3253 else AC_MSG_ERROR([proper usage is --with-libm=STRING])
3255 [AC_MSG_RESULT(default LIBM="$LIBM")])
3257 # check for --with-libc=...
3259 AC_MSG_CHECKING(for --with-libc=STRING)
3261 AC_HELP_STRING(--with-libc=STRING, C library),
3263 if test "$withval" = no
3265 AC_MSG_RESULT(force LIBC empty)
3266 elif test "$withval" != yes
3268 AC_MSG_RESULT(set LIBC="$withval")
3269 else AC_MSG_ERROR([proper usage is --with-libc=STRING])
3271 [AC_MSG_RESULT(default LIBC="$LIBC")])
3273 # **************************************************
3274 # * Check for various properties of floating point *
3275 # **************************************************
3277 AC_MSG_CHECKING(whether C doubles are little-endian IEEE 754 binary64)
3278 AC_CACHE_VAL(ac_cv_little_endian_double, [
3282 double x = 9006104071832581.0;
3283 if (memcmp(&x, "\x05\x04\x03\x02\x01\xff\x3f\x43", 8) == 0)
3289 ac_cv_little_endian_double=yes,
3290 ac_cv_little_endian_double=no,
3291 ac_cv_little_endian_double=no)])
3292 AC_MSG_RESULT($ac_cv_little_endian_double)
3293 if test "$ac_cv_little_endian_double" = yes
3295 AC_DEFINE(DOUBLE_IS_LITTLE_ENDIAN_IEEE754, 1,
3296 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3297 with the least significant byte first])
3300 AC_MSG_CHECKING(whether C doubles are big-endian IEEE 754 binary64)
3301 AC_CACHE_VAL(ac_cv_big_endian_double, [
3305 double x = 9006104071832581.0;
3306 if (memcmp(&x, "\x43\x3f\xff\x01\x02\x03\x04\x05", 8) == 0)
3312 ac_cv_big_endian_double=yes,
3313 ac_cv_big_endian_double=no,
3314 ac_cv_big_endian_double=no)])
3315 AC_MSG_RESULT($ac_cv_big_endian_double)
3316 if test "$ac_cv_big_endian_double" = yes
3318 AC_DEFINE(DOUBLE_IS_BIG_ENDIAN_IEEE754, 1,
3319 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3320 with the most significant byte first])
3323 # Some ARM platforms use a mixed-endian representation for doubles.
3324 # While Python doesn't currently have full support for these platforms
3325 # (see e.g., issue 1762561), we can at least make sure that float <-> string
3327 AC_MSG_CHECKING(whether C doubles are ARM mixed-endian IEEE 754 binary64)
3328 AC_CACHE_VAL(ac_cv_mixed_endian_double, [
3332 double x = 9006104071832581.0;
3333 if (memcmp(&x, "\x01\xff\x3f\x43\x05\x04\x03\x02", 8) == 0)
3339 ac_cv_mixed_endian_double=yes,
3340 ac_cv_mixed_endian_double=no,
3341 ac_cv_mixed_endian_double=no)])
3342 AC_MSG_RESULT($ac_cv_mixed_endian_double)
3343 if test "$ac_cv_mixed_endian_double" = yes
3345 AC_DEFINE(DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754, 1,
3346 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3347 in ARM mixed-endian order (byte order 45670123)])
3350 # The short float repr introduced in Python 3.1 requires the
3351 # correctly-rounded string <-> double conversion functions from
3352 # Python/dtoa.c, which in turn require that the FPU uses 53-bit
3353 # rounding; this is a problem on x86, where the x87 FPU has a default
3354 # rounding precision of 64 bits. For gcc/x86, we try to fix this by
3355 # using inline assembler to get and set the x87 FPU control word.
3356 if test "$GCC" = yes && test -n "`$CC -dM -E - </dev/null | grep i386`"
3358 # Check that it's okay to use gcc inline assembler to get and set
3359 # x87 control word. It should be, but you never know...
3360 AC_MSG_CHECKING(whether we can use gcc inline assembler to get and set x87 control word)
3361 AC_TRY_COMPILE([], [
3363 __asm__ __volatile__ ("fnstcw %0" : "=m" (cw));
3364 __asm__ __volatile__ ("fldcw %0" : : "m" (cw));
3366 [have_gcc_asm_for_x87=yes], [have_gcc_asm_for_x87=no])
3367 AC_MSG_RESULT($have_gcc_asm_for_x87)
3368 if test "$have_gcc_asm_for_x87" = yes
3370 AC_DEFINE(HAVE_GCC_ASM_FOR_X87, 1,
3371 [Define if we can use gcc inline assembler to get and set x87 control word])
3375 # Detect whether system arithmetic is subject to x87-style double
3376 # rounding issues. The result of this test has little meaning on non
3377 # IEEE 754 platforms. On IEEE 754, test should return 1 if rounding
3378 # mode is round-to-nearest and double rounding issues are present, and
3379 # 0 otherwise. See http://bugs.python.org/issue2937 for more info.
3380 AC_MSG_CHECKING(for x87-style double rounding)
3381 # $BASECFLAGS may affect the result
3383 CC="$CC $BASECFLAGS"
3388 volatile double x, y, z;
3389 /* 1./(1-2**-53) -> 1+2**-52 (correct), 1.0 (double rounding) */
3390 x = 0.99999999999999989; /* 1-2**-53 */
3394 /* 1e16+2.99999 -> 1e16+2. (correct), 1e16+4. (double rounding) */
3400 /* both tests show evidence of double rounding */
3404 ac_cv_x87_double_rounding=no,
3405 ac_cv_x87_double_rounding=yes,
3406 ac_cv_x87_double_rounding=no)
3408 AC_MSG_RESULT($ac_cv_x87_double_rounding)
3409 if test "$ac_cv_x87_double_rounding" = yes
3411 AC_DEFINE(X87_DOUBLE_ROUNDING, 1,
3412 [Define if arithmetic is subject to x87-style double rounding issue])
3415 # ************************************
3416 # * Check for mathematical functions *
3417 # ************************************
3422 # On FreeBSD 6.2, it appears that tanh(-0.) returns 0. instead of
3423 # -0. on some architectures.
3424 AC_MSG_CHECKING(whether tanh preserves the sign of zero)
3425 AC_CACHE_VAL(ac_cv_tanh_preserves_zero_sign, [
3430 /* return 0 if either negative zeros don't exist
3431 on this platform or if negative zeros exist
3432 and tanh(-0.) == -0. */
3433 if (atan2(0., -1.) == atan2(-0., -1.) ||
3434 atan2(tanh(-0.), -1.) == atan2(-0., -1.)) exit(0);
3438 ac_cv_tanh_preserves_zero_sign=yes,
3439 ac_cv_tanh_preserves_zero_sign=no,
3440 ac_cv_tanh_preserves_zero_sign=no)])
3441 AC_MSG_RESULT($ac_cv_tanh_preserves_zero_sign)
3442 if test "$ac_cv_tanh_preserves_zero_sign" = yes
3444 AC_DEFINE(TANH_PRESERVES_ZERO_SIGN, 1,
3445 [Define if tanh(-0.) is -0., or if platform doesn't have signed zeros])
3448 AC_CHECK_FUNCS([acosh asinh atanh copysign expm1 finite hypot log1p round])
3449 AC_CHECK_DECLS([isinf, isnan, isfinite], [], [], [[#include <math.h>]])
3453 # For multiprocessing module, check that sem_open
3454 # actually works. For FreeBSD versions <= 7.2,
3455 # the kernel module that provides POSIX semaphores
3456 # isn't loaded by default, so an attempt to call
3457 # sem_open results in a 'Signal 12' error.
3458 AC_MSG_CHECKING(whether POSIX semaphores are enabled)
3459 AC_CACHE_VAL(ac_cv_posix_semaphores_enabled,
3464 #include <semaphore.h>
3465 #include <sys/stat.h>
3468 sem_t *a = sem_open("/autoconf", O_CREAT, S_IRUSR|S_IWUSR, 0);
3469 if (a == SEM_FAILED) {
3474 sem_unlink("/autoconf");
3477 ], ac_cv_posix_semaphores_enabled=yes,
3478 ac_cv_posix_semaphores_enabled=no,
3479 ac_cv_posix_semaphores_enabled=yes)
3481 AC_MSG_RESULT($ac_cv_posix_semaphores_enabled)
3482 if test $ac_cv_posix_semaphores_enabled = no
3484 AC_DEFINE(POSIX_SEMAPHORES_NOT_ENABLED, 1,
3485 [Define if POSIX semaphores aren't enabled on your system])
3488 # Multiprocessing check for broken sem_getvalue
3489 AC_MSG_CHECKING(for broken sem_getvalue)
3494 #include <semaphore.h>
3495 #include <sys/stat.h>
3498 sem_t *a = sem_open("/autocftw", O_CREAT, S_IRUSR|S_IWUSR, 0);
3506 res = sem_getvalue(a, &count);
3508 sem_unlink("/autocftw");
3509 return res==-1 ? 1 : 0;
3514 AC_DEFINE(HAVE_BROKEN_SEM_GETVALUE, 1, define to 1 if your sem_getvalue is broken.)
3517 # determine what size digit to use for Python's longs
3518 AC_MSG_CHECKING([digit size for Python's longs])
3519 AC_ARG_ENABLE(big-digits,
3520 AC_HELP_STRING([--enable-big-digits@<:@=BITS@:>@],[use big digits for Python longs [[BITS=30]]]),
3521 [case $enable_big_digits in
3523 enable_big_digits=30 ;;
3525 enable_big_digits=15 ;;
3529 AC_MSG_ERROR([bad value $enable_big_digits for --enable-big-digits; value should be 15 or 30]) ;;
3531 AC_MSG_RESULT($enable_big_digits)
3532 AC_DEFINE_UNQUOTED(PYLONG_BITS_IN_DIGIT, $enable_big_digits, [Define as the preferred size in bits of long digits])
3534 [AC_MSG_RESULT(no value specified)])
3537 AC_CHECK_HEADER(wchar.h, [
3538 AC_DEFINE(HAVE_WCHAR_H, 1,
3539 [Define if the compiler provides a wchar.h header file.])
3545 # determine wchar_t size
3546 if test "$wchar_h" = yes
3548 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
3551 AC_MSG_CHECKING(for UCS-4 tcl)
3555 #if TCL_UTF_MAX != 6
3556 # error "NOT UCS4_TCL"
3558 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
3561 AC_MSG_RESULT($have_ucs4_tcl)
3563 # check whether wchar_t is signed or not
3564 if test "$wchar_h" = yes
3566 # check whether wchar_t is signed or not
3567 AC_MSG_CHECKING(whether wchar_t is signed)
3568 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
3573 /* Success: exit code 0 */
3574 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1);
3577 ac_cv_wchar_t_signed=yes,
3578 ac_cv_wchar_t_signed=no,
3579 ac_cv_wchar_t_signed=yes)])
3580 AC_MSG_RESULT($ac_cv_wchar_t_signed)
3583 AC_MSG_CHECKING(what type to use for str)
3584 AC_ARG_WITH(wide-unicode,
3585 AC_HELP_STRING(--with-wide-unicode, Use 4-byte Unicode characters (default is 2 bytes)),
3587 if test "$withval" != no
3588 then unicode_size="4"
3589 else unicode_size="2"
3593 case "$have_ucs4_tcl" in
3594 yes) unicode_size="4" ;;
3595 *) unicode_size="2" ;;
3599 AH_TEMPLATE(Py_UNICODE_SIZE,
3600 [Define as the size of the unicode type.])
3601 case "$unicode_size" in
3602 4) AC_DEFINE(Py_UNICODE_SIZE, 4) ;;
3603 *) AC_DEFINE(Py_UNICODE_SIZE, 2) ;;
3606 AH_TEMPLATE(PY_UNICODE_TYPE,
3607 [Define as the integral type used for Unicode representation.])
3609 # wchar_t is only usable if it maps to an unsigned type
3610 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
3611 -a "$ac_cv_wchar_t_signed" = "no"
3613 PY_UNICODE_TYPE="wchar_t"
3614 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
3615 [Define if you have a useable wchar_t type defined in wchar.h; useable
3616 means wchar_t must be an unsigned type with at least 16 bits. (see
3617 Include/unicodeobject.h).])
3618 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
3619 elif test "$ac_cv_sizeof_short" = "$unicode_size"
3621 PY_UNICODE_TYPE="unsigned short"
3622 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
3623 elif test "$ac_cv_sizeof_long" = "$unicode_size"
3625 PY_UNICODE_TYPE="unsigned long"
3626 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
3628 PY_UNICODE_TYPE="no type found"
3630 AC_MSG_RESULT($PY_UNICODE_TYPE)
3632 # check for endianness
3635 # Check whether right shifting a negative integer extends the sign bit
3636 # or fills with zeros (like the Cray J90, according to Tim Peters).
3637 AC_MSG_CHECKING(whether right shift extends the sign bit)
3638 AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
3642 exit(((-1)>>3 == -1) ? 0 : 1);
3645 ac_cv_rshift_extends_sign=yes,
3646 ac_cv_rshift_extends_sign=no,
3647 ac_cv_rshift_extends_sign=yes)])
3648 AC_MSG_RESULT($ac_cv_rshift_extends_sign)
3649 if test "$ac_cv_rshift_extends_sign" = no
3651 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
3652 [Define if i>>j for signed int i does not extend the sign bit
3656 # check for getc_unlocked and related locking functions
3657 AC_MSG_CHECKING(for getc_unlocked() and friends)
3658 AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
3659 AC_TRY_LINK([#include <stdio.h>],[
3660 FILE *f = fopen("/dev/null", "r");
3664 ], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
3665 AC_MSG_RESULT($ac_cv_have_getc_unlocked)
3666 if test "$ac_cv_have_getc_unlocked" = yes
3668 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
3669 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
3672 # check where readline lives
3673 # save the value of LIBS so we don't actually link Python with readline
3674 LIBS_no_readline=$LIBS
3676 # On some systems we need to link readline to a termcap compatible
3677 # library. NOTE: Keep the precedence of listed libraries synchronised
3679 py_cv_lib_readline=no
3680 AC_MSG_CHECKING([how to link readline libs])
3681 for py_libtermcap in "" ncursesw ncurses curses termcap; do
3682 if test -z "$py_libtermcap"; then
3683 READLINE_LIBS="-lreadline"
3685 READLINE_LIBS="-lreadline -l$py_libtermcap"
3687 LIBS="$READLINE_LIBS $LIBS_no_readline"
3689 [AC_LANG_CALL([],[readline])],
3690 [py_cv_lib_readline=yes])
3691 if test $py_cv_lib_readline = yes; then
3695 # Uncomment this line if you want to use READINE_LIBS in Makefile or scripts
3696 #AC_SUBST([READLINE_LIBS])
3697 if test $py_cv_lib_readline = no; then
3698 AC_MSG_RESULT([none])
3700 AC_MSG_RESULT([$READLINE_LIBS])
3701 AC_DEFINE(HAVE_LIBREADLINE, 1,
3702 [Define if you have the readline library (-lreadline).])
3705 # check for readline 2.1
3706 AC_CHECK_LIB(readline, rl_callback_handler_install,
3707 AC_DEFINE(HAVE_RL_CALLBACK, 1,
3708 [Define if you have readline 2.1]), ,$READLINE_LIBS)
3710 # check for readline 2.2
3711 AC_TRY_CPP([#include <readline/readline.h>],
3712 have_readline=yes, have_readline=no)
3713 if test $have_readline = yes
3715 AC_EGREP_HEADER([extern int rl_completion_append_character;],
3716 [readline/readline.h],
3717 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
3718 [Define if you have readline 2.2]), )
3719 AC_EGREP_HEADER([extern int rl_completion_suppress_append;],
3720 [readline/readline.h],
3721 AC_DEFINE(HAVE_RL_COMPLETION_SUPPRESS_APPEND, 1,
3722 [Define if you have rl_completion_suppress_append]), )
3725 # check for readline 4.0
3726 AC_CHECK_LIB(readline, rl_pre_input_hook,
3727 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
3728 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3731 AC_CHECK_LIB(readline, rl_completion_display_matches_hook,
3732 AC_DEFINE(HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK, 1,
3733 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3735 # check for readline 4.2
3736 AC_CHECK_LIB(readline, rl_completion_matches,
3737 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
3738 [Define if you have readline 4.2]), ,$READLINE_LIBS)
3740 # also in readline 4.2
3741 AC_TRY_CPP([#include <readline/readline.h>],
3742 have_readline=yes, have_readline=no)
3743 if test $have_readline = yes
3745 AC_EGREP_HEADER([extern int rl_catch_signals;],
3746 [readline/readline.h],
3747 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
3748 [Define if you can turn off readline's signal handling.]), )
3751 # End of readline checks: restore LIBS
3752 LIBS=$LIBS_no_readline
3754 AC_MSG_CHECKING(for broken nice())
3755 AC_CACHE_VAL(ac_cv_broken_nice, [
3760 if (val1 != -1 && val1 == nice(2))
3765 ac_cv_broken_nice=yes,
3766 ac_cv_broken_nice=no,
3767 ac_cv_broken_nice=no)])
3768 AC_MSG_RESULT($ac_cv_broken_nice)
3769 if test "$ac_cv_broken_nice" = yes
3771 AC_DEFINE(HAVE_BROKEN_NICE, 1,
3772 [Define if nice() returns success/failure instead of the new priority.])
3775 AC_MSG_CHECKING(for broken poll())
3781 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
3785 int poll_test = poll (&poll_struct, 1, 0);
3791 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
3801 ac_cv_broken_poll=yes,
3802 ac_cv_broken_poll=no,
3803 ac_cv_broken_poll=no)
3804 AC_MSG_RESULT($ac_cv_broken_poll)
3805 if test "$ac_cv_broken_poll" = yes
3807 AC_DEFINE(HAVE_BROKEN_POLL, 1,
3808 [Define if poll() sets errno on invalid file descriptors.])
3811 # Before we can test tzset, we need to check if struct tm has a tm_zone
3812 # (which is not required by ISO C or UNIX spec) and/or if we support
3816 # check tzset(3) exists and works like we expect it to
3817 AC_MSG_CHECKING(for working tzset())
3818 AC_CACHE_VAL(ac_cv_working_tzset, [
3825 extern char *tzname[];
3830 /* Note that we need to ensure that not only does tzset(3)
3831 do 'something' with localtime, but it works as documented
3832 in the library reference and as expected by the test suite.
3833 This includes making sure that tzname is set properly if
3834 tm->tm_zone does not exist since it is the alternative way
3835 of getting timezone info.
3837 Red Hat 6.2 doesn't understand the southern hemisphere
3838 after New Year's Day.
3841 time_t groundhogday = 1044144000; /* GMT-based */
3842 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
3846 if (localtime(&groundhogday)->tm_hour != 0)
3849 /* For UTC, tzname[1] is sometimes "", sometimes " " */
3850 if (strcmp(tzname[0], "UTC") ||
3851 (tzname[1][0] != 0 && tzname[1][0] != ' '))
3855 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
3857 if (localtime(&groundhogday)->tm_hour != 19)
3860 if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT"))
3864 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
3866 if (localtime(&groundhogday)->tm_hour != 11)
3869 if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT"))
3873 #if HAVE_STRUCT_TM_TM_ZONE
3874 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
3876 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
3883 ac_cv_working_tzset=yes,
3884 ac_cv_working_tzset=no,
3885 ac_cv_working_tzset=no)])
3886 AC_MSG_RESULT($ac_cv_working_tzset)
3887 if test "$ac_cv_working_tzset" = yes
3889 AC_DEFINE(HAVE_WORKING_TZSET, 1,
3890 [Define if tzset() actually switches the local timezone in a meaningful way.])
3893 # Look for subsecond timestamps in struct stat
3894 AC_MSG_CHECKING(for tv_nsec in struct stat)
3895 AC_CACHE_VAL(ac_cv_stat_tv_nsec,
3896 AC_TRY_COMPILE([#include <sys/stat.h>], [
3898 st.st_mtim.tv_nsec = 1;
3900 ac_cv_stat_tv_nsec=yes,
3901 ac_cv_stat_tv_nsec=no,
3902 ac_cv_stat_tv_nsec=no))
3903 AC_MSG_RESULT($ac_cv_stat_tv_nsec)
3904 if test "$ac_cv_stat_tv_nsec" = yes
3906 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
3907 [Define if you have struct stat.st_mtim.tv_nsec])
3910 # Look for BSD style subsecond timestamps in struct stat
3911 AC_MSG_CHECKING(for tv_nsec2 in struct stat)
3912 AC_CACHE_VAL(ac_cv_stat_tv_nsec2,
3913 AC_TRY_COMPILE([#include <sys/stat.h>], [
3915 st.st_mtimespec.tv_nsec = 1;
3917 ac_cv_stat_tv_nsec2=yes,
3918 ac_cv_stat_tv_nsec2=no,
3919 ac_cv_stat_tv_nsec2=no))
3920 AC_MSG_RESULT($ac_cv_stat_tv_nsec2)
3921 if test "$ac_cv_stat_tv_nsec2" = yes
3923 AC_DEFINE(HAVE_STAT_TV_NSEC2, 1,
3924 [Define if you have struct stat.st_mtimensec])
3927 # On HP/UX 11.0, mvwdelch is a block with a return statement
3928 AC_MSG_CHECKING(whether mvwdelch is an expression)
3929 AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
3930 AC_TRY_COMPILE([#include <curses.h>], [
3932 rtn = mvwdelch(0,0,0);
3933 ], ac_cv_mvwdelch_is_expression=yes,
3934 ac_cv_mvwdelch_is_expression=no,
3935 ac_cv_mvwdelch_is_expression=yes))
3936 AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
3938 if test "$ac_cv_mvwdelch_is_expression" = yes
3940 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
3941 [Define if mvwdelch in curses.h is an expression.])
3944 AC_MSG_CHECKING(whether WINDOW has _flags)
3945 AC_CACHE_VAL(ac_cv_window_has_flags,
3946 AC_TRY_COMPILE([#include <curses.h>], [
3949 ], ac_cv_window_has_flags=yes,
3950 ac_cv_window_has_flags=no,
3951 ac_cv_window_has_flags=no))
3952 AC_MSG_RESULT($ac_cv_window_has_flags)
3955 if test "$ac_cv_window_has_flags" = yes
3957 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3958 [Define if WINDOW in curses.h offers a field _flags.])
3961 AC_MSG_CHECKING(for is_term_resized)
3962 AC_TRY_COMPILE([#include <curses.h>], void *x=is_term_resized,
3963 AC_DEFINE(HAVE_CURSES_IS_TERM_RESIZED, 1, Define if you have the 'is_term_resized' function.)
3968 AC_MSG_CHECKING(for resize_term)
3969 AC_TRY_COMPILE([#include <curses.h>], void *x=resize_term,
3970 AC_DEFINE(HAVE_CURSES_RESIZE_TERM, 1, Define if you have the 'resize_term' function.)
3975 AC_MSG_CHECKING(for resizeterm)
3976 AC_TRY_COMPILE([#include <curses.h>], void *x=resizeterm,
3977 AC_DEFINE(HAVE_CURSES_RESIZETERM, 1, Define if you have the 'resizeterm' function.)
3982 AC_MSG_CHECKING(for /dev/ptmx)
3984 if test -r /dev/ptmx
3987 AC_DEFINE(HAVE_DEV_PTMX, 1,
3988 [Define if we have /dev/ptmx.])
3993 AC_MSG_CHECKING(for /dev/ptc)
3998 AC_DEFINE(HAVE_DEV_PTC, 1,
3999 [Define if we have /dev/ptc.])
4004 AC_MSG_CHECKING(for %zd printf() format support)
4005 AC_TRY_RUN([#include <stdio.h>
4009 #ifdef HAVE_SYS_TYPES_H
4010 #include <sys/types.h>
4014 typedef ssize_t Py_ssize_t;
4015 #elif SIZEOF_VOID_P == SIZEOF_LONG
4016 typedef long Py_ssize_t;
4018 typedef int Py_ssize_t;
4025 if(sprintf(buffer, "%zd", (size_t)123) < 0)
4028 if (strcmp(buffer, "123"))
4031 if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
4034 if (strcmp(buffer, "-123"))
4040 AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
4043 AC_CHECK_TYPE(socklen_t,,
4044 AC_DEFINE(socklen_t,int,
4045 Define to `int' if <sys/socket.h> does not define.),[
4046 #ifdef HAVE_SYS_TYPES_H
4047 #include <sys/types.h>
4049 #ifdef HAVE_SYS_SOCKET_H
4050 #include <sys/socket.h>
4054 AC_MSG_CHECKING(for broken mbstowcs)
4059 const char *str = "text";
4060 len = mbstowcs(NULL, str, 0);
4064 ac_cv_broken_mbstowcs=no,
4065 ac_cv_broken_mbstowcs=yes,
4066 ac_cv_broken_mbstowcs=no)
4067 AC_MSG_RESULT($ac_cv_broken_mbstowcs)
4068 if test "$ac_cv_broken_mbstowcs" = yes
4070 AC_DEFINE(HAVE_BROKEN_MBSTOWCS, 1,
4071 [Define if mbstowcs(NULL, "text", 0) does not return the number of
4072 wide chars that would be converted.])
4075 # Check for --with-computed-gotos
4076 AC_MSG_CHECKING(for --with-computed-gotos)
4077 AC_ARG_WITH(computed-gotos,
4078 AC_HELP_STRING(--with-computed-gotos,
4079 Use computed gotos / threaded dispatch in evaluation loop (not available on all compilers)),
4081 if test "$withval" != no
4083 AC_DEFINE(USE_COMPUTED_GOTOS, 1,
4084 [Define if you want to use computed gotos in ceval.c.])
4086 else AC_MSG_RESULT(no)
4088 [AC_MSG_RESULT(no)])
4090 if test $ac_sys_system = Darwin
4092 LIBS="$LIBS -framework CoreFoundation"
4097 AC_SUBST(THREADHEADERS)
4099 for h in `(cd $srcdir;echo Python/thread_*.h)`
4101 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
4105 SRCDIRS="Parser Grammar Objects Python Modules Mac"
4106 AC_MSG_CHECKING(for build directories)
4107 for dir in $SRCDIRS; do
4108 if test ! -d $dir; then
4114 # generate output files
4115 AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc)
4116 AC_CONFIG_FILES([Modules/ld_so_aix], [chmod +x Modules/ld_so_aix])
4119 echo "creating Modules/Setup"
4120 if test ! -f Modules/Setup
4122 cp $srcdir/Modules/Setup.dist Modules/Setup
4125 echo "creating Modules/Setup.local"
4126 if test ! -f Modules/Setup.local
4128 echo "# Edit this file for local setup changes" >Modules/Setup.local
4131 echo "creating Makefile"
4132 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
4133 -s Modules Modules/Setup.config \
4134 Modules/Setup.local Modules/Setup