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://www.python.org/python-bugs)
12 AC_CONFIG_SRCDIR([Include/object.h])
13 AC_CONFIG_HEADER(pyconfig.h)
15 dnl This is for stuff that absolutely must end up in pyconfig.h.
16 dnl Please use pyport.h instead, if possible.
22 /* Define the macros needed if on a UnixWare 7.x system. */
23 #if defined(__USLC__) && defined(__SCO_VERSION__)
24 #define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
27 #endif /*Py_PYCONFIG_H*/
30 # We don't use PACKAGE_ variables, and they cause conflicts
31 # with other autoconf-based packages that include Python.h
32 grep -v 'define PACKAGE_' <confdefs.h >confdefs.h.new
34 mv confdefs.h.new confdefs.h
37 VERSION=PYTHON_VERSION
42 # The later defininition of _XOPEN_SOURCE disables certain features
43 # on Linux, so we need _GNU_SOURCE to re-enable them (makedev, tm_zone).
44 AC_DEFINE(_GNU_SOURCE, 1, [Define on Linux to activate all library features])
46 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
47 # certain features on NetBSD, so we need _NETBSD_SOURCE to re-enable
49 AC_DEFINE(_NETBSD_SOURCE, 1, [Define on NetBSD to activate all library features])
51 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
52 # certain features on FreeBSD, so we need __BSD_VISIBLE to re-enable
54 AC_DEFINE(__BSD_VISIBLE, 1, [Define on FreeBSD to activate all library features])
56 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
57 # u_int on Irix 5.3. Defining _BSD_TYPES brings it back.
58 AC_DEFINE(_BSD_TYPES, 1, [Define on Irix to enable u_int])
60 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
61 # certain features on Mac OS X, so we need _DARWIN_C_SOURCE to re-enable
63 AC_DEFINE(_DARWIN_C_SOURCE, 1, [Define on Darwin to activate all library features])
66 define_xopen_source=yes
68 # Arguments passed to configure.
70 CONFIG_ARGS="$ac_configure_args"
72 AC_ARG_ENABLE(universalsdk,
73 AC_HELP_STRING(--enable-universalsdk@<:@=SDKDIR@:>@, Build against Mac OS X 10.4u SDK (ppc/i386)),
77 enableval=/Developer/SDKs/MacOSX10.4u.sdk
86 UNIVERSALSDK=$enableval
93 AC_SUBST(UNIVERSALSDK)
96 AC_SUBST(ARCH_RUN_32BIT)
98 UNIVERSAL_ARCHS="32-bit"
99 AC_MSG_CHECKING(for --with-universal-archs)
100 AC_ARG_WITH(universal-archs,
101 AC_HELP_STRING(--with-universal-archs=ARCH, select architectures for universal build ("32-bit", "64-bit" or "all")),
103 AC_MSG_RESULT($withval)
104 UNIVERSAL_ARCHS="$withval"
107 AC_MSG_RESULT(32-bit)
112 AC_ARG_WITH(framework-name,
113 AC_HELP_STRING(--with-framework-name=FRAMEWORK,
114 specify an alternate name of the framework built with --enable-framework),
116 PYTHONFRAMEWORK=${withval}
117 PYTHONFRAMEWORKDIR=${withval}.framework
118 PYTHONFRAMEWORKIDENTIFIER=org.python.`echo $withval | tr '[A-Z]' '[a-z]'`
120 PYTHONFRAMEWORK=Python
121 PYTHONFRAMEWORKDIR=Python.framework
122 PYTHONFRAMEWORKIDENTIFIER=org.python.python
124 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
125 AC_ARG_ENABLE(framework,
126 AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework),
130 enableval=/Library/Frameworks
135 PYTHONFRAMEWORKDIR=no-framework
136 PYTHONFRAMEWORKPREFIX=
137 PYTHONFRAMEWORKINSTALLDIR=
138 FRAMEWORKINSTALLFIRST=
139 FRAMEWORKINSTALLLAST=
140 FRAMEWORKALTINSTALLFIRST=
141 FRAMEWORKALTINSTALLLAST=
142 if test "x${prefix}" = "xNONE"; then
143 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
145 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
150 PYTHONFRAMEWORKPREFIX=$enableval
151 PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
152 FRAMEWORKINSTALLFIRST="frameworkinstallstructure"
153 FRAMEWORKALTINSTALLFIRST="frameworkinstallstructure bininstall maninstall"
154 if test "$UNIVERSAL_ARCHS" = "all"
156 FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps4way frameworkinstallunixtools4way"
157 FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps4way frameworkaltinstallunixtools4way"
159 FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools"
160 FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools"
163 if test "x${prefix}" = "xNONE" ; then
164 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
166 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
168 prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
170 # Add files for Mac specific code to the list of output
172 AC_CONFIG_FILES(Mac/Makefile)
173 AC_CONFIG_FILES(Mac/PythonLauncher/Makefile)
174 AC_CONFIG_FILES(Mac/Resources/framework/Info.plist)
175 AC_CONFIG_FILES(Mac/Resources/app/Info.plist)
179 PYTHONFRAMEWORKDIR=no-framework
180 PYTHONFRAMEWORKPREFIX=
181 PYTHONFRAMEWORKINSTALLDIR=
182 FRAMEWORKINSTALLFIRST=
183 FRAMEWORKINSTALLLAST=
184 FRAMEWORKALTINSTALLFIRST=
185 FRAMEWORKALTINSTALLLAST=
186 if test "x${prefix}" = "xNONE" ; then
187 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
189 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
193 if test "$UNIVERSAL_ARCHS" = "all"
195 FRAMEWORKINSTALLLAST=update4wayuniversal
196 FRAMEWORKALTINSTALLLAST=update4wayuniversal
199 AC_SUBST(PYTHONFRAMEWORK)
200 AC_SUBST(PYTHONFRAMEWORKIDENTIFIER)
201 AC_SUBST(PYTHONFRAMEWORKDIR)
202 AC_SUBST(PYTHONFRAMEWORKPREFIX)
203 AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)
204 AC_SUBST(FRAMEWORKINSTALLFIRST)
205 AC_SUBST(FRAMEWORKINSTALLLAST)
206 AC_SUBST(FRAMEWORKALTINSTALLFIRST)
207 AC_SUBST(FRAMEWORKALTINSTALLLAST)
208 AC_SUBST(FRAMEWORKUNIXTOOLSPREFIX)
211 ## AC_HELP_STRING(--with-dyld,
212 ## Use (OpenStep|Rhapsody) dynamic linker))
214 # Set name for machine-dependent library files
216 AC_MSG_CHECKING(MACHDEP)
217 if test -z "$MACHDEP"
219 ac_sys_system=`uname -s`
220 if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \
221 -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
222 ac_sys_release=`uname -v`
224 ac_sys_release=`uname -r`
226 ac_md_system=`echo $ac_sys_system |
227 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
228 ac_md_release=`echo $ac_sys_release |
229 tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
230 MACHDEP="$ac_md_system$ac_md_release"
233 cygwin*) MACHDEP="cygwin";;
234 darwin*) MACHDEP="darwin";;
235 atheos*) MACHDEP="atheos";;
236 irix646) MACHDEP="irix6";;
237 '') MACHDEP="unknown";;
241 # Some systems cannot stand _XOPEN_SOURCE being defined at all; they
242 # disable features if it is defined, without any means to access these
243 # features as extensions. For these systems, we skip the definition of
244 # _XOPEN_SOURCE. Before adding a system to the list to gain access to
245 # some feature, make sure there is no alternative way to access this
246 # feature. Also, when using wildcards, make sure you have verified the
247 # need for not defining _XOPEN_SOURCE on all systems matching the
248 # wildcard, and that the wildcard does not include future systems
249 # (which may remove their limitations).
250 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
251 case $ac_sys_system/$ac_sys_release in
252 # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined,
253 # even though select is a POSIX function. Reported by J. Ribbens.
254 # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
255 OpenBSD/2.* | OpenBSD/3.@<:@0123456789@:>@ | OpenBSD/4.@<:@0123@:>@)
256 define_xopen_source=no
257 # OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is
258 # also defined. This can be overridden by defining _BSD_SOURCE
259 # As this has a different meaning on Linux, only define it on OpenBSD
260 AC_DEFINE(_BSD_SOURCE, 1, [Define on OpenBSD to activate all library features])
262 # Defining _XOPEN_SOURCE on NetBSD version prior to the introduction of
263 # _NETBSD_SOURCE disables certain features (eg. setgroups). Reported by
265 NetBSD/1.5 | NetBSD/1.5.* | NetBSD/1.6 | NetBSD/1.6.* | NetBSD/1.6@<:@A-S@:>@)
266 define_xopen_source=no;;
267 # On Solaris 2.6, sys/wait.h is inconsistent in the usage
268 # of union __?sigval. Reported by Stuart Bishop.
270 define_xopen_source=no;;
271 # On UnixWare 7, u_long is never defined with _XOPEN_SOURCE,
272 # but used in /usr/include/netinet/tcp.h. Reported by Tim Rice.
273 # Reconfirmed for 7.1.4 by Martin v. Loewis.
274 OpenUNIX/8.0.0| UnixWare/7.1.@<:@0-4@:>@)
275 define_xopen_source=no;;
276 # On OpenServer 5, u_short is never defined with _XOPEN_SOURCE,
277 # but used in struct sockaddr.sa_family. Reported by Tim Rice.
279 define_xopen_source=no;;
280 # On FreeBSD 4, the math functions C89 does not cover are never defined
281 # with _XOPEN_SOURCE and __BSD_VISIBLE does not re-enable them.
283 define_xopen_source=no;;
284 # On MacOS X 10.2, a bug in ncurses.h means that it craps out if
285 # _XOPEN_EXTENDED_SOURCE is defined. Apparently, this is fixed in 10.3, which
286 # identifies itself as Darwin/7.*
287 # On Mac OS X 10.4, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
288 # disables platform specific features beyond repair.
289 # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
290 # has no effect, don't bother defining them
291 Darwin/@<:@6789@:>@.*)
292 define_xopen_source=no;;
293 # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
294 # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
295 # or has another value. By not (re)defining it, the defaults come in place.
297 define_xopen_source=no;;
299 if test `uname -r` -eq 1; then
300 define_xopen_source=no
303 # On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from
304 # defining NI_NUMERICHOST.
306 define_xopen_source=no
311 if test $define_xopen_source = yes
313 # On Solaris w/ g++ it appears that _XOPEN_SOURCE has to be
314 # defined precisely as g++ defines it
315 # Furthermore, on Solaris 10, XPG6 requires the use of a C99
317 case $ac_sys_system/$ac_sys_release in
318 SunOS/5.8|SunOS/5.9|SunOS/5.10)
319 AC_DEFINE(_XOPEN_SOURCE, 500,
320 Define to the level of X/Open that your system supports)
323 AC_DEFINE(_XOPEN_SOURCE, 600,
324 Define to the level of X/Open that your system supports)
328 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
329 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
330 # several APIs are not declared. Since this is also needed in some
331 # cases for HP-UX, we define it globally.
332 # except for Solaris 10, where it must not be defined,
333 # as it implies XPG4.2
334 case $ac_sys_system/$ac_sys_release in
338 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1,
339 Define to activate Unix95-and-earlier features)
343 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
348 # SGI compilers allow the specification of the both the ABI and the
349 # ISA on the command line. Depending on the values of these switches,
350 # different and often incompatable code will be generated.
352 # The SGI_ABI variable can be used to modify the CC and LDFLAGS and
353 # thus supply support for various ABI/ISA combinations. The MACHDEP
354 # variable is also adjusted.
357 if test ! -z "$SGI_ABI"
360 LDFLAGS="$SGI_ABI $LDFLAGS"
361 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
363 AC_MSG_RESULT($MACHDEP)
365 # Record the configure-time value of MACOSX_DEPLOYMENT_TARGET,
366 # it may influence the way we can build extensions, so distutils
368 AC_SUBST(CONFIGURE_MACOSX_DEPLOYMENT_TARGET)
369 AC_SUBST(EXPORT_MACOSX_DEPLOYMENT_TARGET)
370 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
371 EXPORT_MACOSX_DEPLOYMENT_TARGET='#'
373 AC_MSG_CHECKING(machine type as reported by uname -m)
374 ac_sys_machine=`uname -m`
375 AC_MSG_RESULT($ac_sys_machine)
377 # checks for alternative programs
379 # compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
380 # for debug/optimization stuff. BASECFLAGS is for flags that are required
381 # just to get things to compile and link. Users are free to override OPT
382 # when running configure or make. The build should not break if they do.
383 # BASECFLAGS should generally not be messed with, however.
385 # XXX shouldn't some/most/all of this code be merged with the stuff later
386 # on that fiddles with OPT and BASECFLAGS?
387 AC_MSG_CHECKING(for --without-gcc)
389 AC_HELP_STRING(--without-gcc,never use gcc),
397 without_gcc=$withval;;
399 case $ac_sys_system in
407 AC_MSG_RESULT($without_gcc)
409 # If the user switches compilers, we can't believe the cache
410 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
412 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
413 (it is also a good idea to do 'make clean' before compiling)])
420 AC_MSG_CHECKING(for --with-cxx-main=<compiler>)
421 AC_ARG_WITH(cxx_main,
422 AC_HELP_STRING([--with-cxx-main=<compiler>],
423 [compile main() and link python executable with C++ compiler]),
429 yes) with_cxx_main=yes
441 AC_MSG_RESULT($with_cxx_main)
447 gcc) AC_PATH_PROG(CXX, [g++], [g++], [notfound]) ;;
448 cc) AC_PATH_PROG(CXX, [c++], [c++], [notfound]) ;;
450 if test "$CXX" = "notfound"
457 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
458 if test "$CXX" = "notfound"
463 if test "$preset_cxx" != "$CXX"
467 By default, distutils will build C++ extension modules with "$CXX".
468 If this is not intended, then set CXX on the configure command line.
473 # checks for UNIX variants that set C preprocessor variables
476 # Check for unsupported systems
477 case $ac_sys_system/$ac_sys_release in
479 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
480 echo See README for details.
485 AC_MSG_CHECKING(for --with-suffix)
487 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
494 AC_MSG_RESULT($EXEEXT)
496 # Test whether we're running on a non-case-sensitive system, in which
497 # case we give a warning if no ext is given
498 AC_SUBST(BUILDEXEEXT)
499 AC_MSG_CHECKING(for case-insensitive build directory)
500 if test ! -d CaseSensitiveTestDir; then
501 mkdir CaseSensitiveTestDir
504 if test -d casesensitivetestdir
512 rmdir CaseSensitiveTestDir
517 gcc) CC="$CC -D_HAVE_BSDI";;
521 case $ac_sys_system in
524 cc|*/cc) CC="$CC -Ae";;
528 cc) CC="$CC -Wl,-Bexport";;
531 # Some functions have a prototype only with that define, e.g. confstr
532 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
538 AC_MSG_CHECKING(LIBRARY)
539 if test -z "$LIBRARY"
541 LIBRARY='libpython$(VERSION).a'
543 AC_MSG_RESULT($LIBRARY)
545 # LDLIBRARY is the name of the library to link against (as opposed to the
546 # name of the library into which to insert object files). BLDLIBRARY is also
547 # the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
548 # is blank as the main program is not linked directly against LDLIBRARY.
549 # LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
550 # systems without shared libraries, LDLIBRARY is the same as LIBRARY
551 # (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
552 # DLLLIBRARY is the shared (i.e., DLL) library.
554 # RUNSHARED is used to run shared python without installed libraries
556 # INSTSONAME is the name of the shared library that will be use to install
557 # on the system - some systems like version suffix, others don't
561 AC_SUBST(LDLIBRARYDIR)
565 BLDLIBRARY='$(LDLIBRARY)'
566 INSTSONAME='$(LDLIBRARY)'
571 # LINKCC is the command that links the python executable -- default is $(CC).
572 # If CXX is set, and if it is needed to link a main function that was
573 # compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
574 # python might then depend on the C++ runtime
575 # This is altered for AIX in order to build the export list before
578 AC_MSG_CHECKING(LINKCC)
581 LINKCC='$(PURIFY) $(MAINCC)'
582 case $ac_sys_system in
585 if test $ac_sys_release -ge 5 -o \
586 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
589 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
591 LINKCC="$LINKCC -L/usr/lib/ia64l64";;
593 # qcc must be used because the other compilers do not
598 AC_MSG_RESULT($LINKCC)
600 AC_MSG_CHECKING(for --enable-shared)
601 AC_ARG_ENABLE(shared,
602 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
604 if test -z "$enable_shared"
606 case $ac_sys_system in
608 enable_shared="yes";;
613 AC_MSG_RESULT($enable_shared)
615 AC_MSG_CHECKING(for --enable-profiling)
616 AC_ARG_ENABLE(profiling,
617 AC_HELP_STRING(--enable-profiling, enable C-level code profiling),
620 AC_TRY_RUN([int main() { return 0; }],
621 ac_enable_profiling="yes",
622 ac_enable_profiling="no",
623 ac_enable_profiling="no")
625 AC_MSG_RESULT($ac_enable_profiling)
627 case "$ac_enable_profiling" in
629 BASECFLAGS="-pg $BASECFLAGS"
630 LDFLAGS="-pg $LDFLAGS"
634 AC_MSG_CHECKING(LDLIBRARY)
636 # MacOSX framework builds need more magic. LDLIBRARY is the dynamic
637 # library that we build, but we do not want to link against it (we
638 # will find it with a -framework option). For this reason there is an
639 # extra variable BLDLIBRARY against which Python and the extension
640 # modules are linked, BLDLIBRARY. This is normally the same as
641 # LDLIBRARY, but empty for MacOSX framework builds.
642 if test "$enable_framework"
644 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
645 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
648 BLDLIBRARY='$(LDLIBRARY)'
651 # Other platforms follow
652 if test $enable_shared = "yes"; then
653 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
654 case $ac_sys_system in
656 LDLIBRARY='libpython$(VERSION).dll.a'
657 DLLLIBRARY='libpython$(VERSION).dll'
660 LDLIBRARY='libpython$(VERSION).so'
661 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
662 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
663 INSTSONAME="$LDLIBRARY".$SOVERSION
665 Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*)
666 LDLIBRARY='libpython$(VERSION).so'
667 BLDLIBRARY='-L. -lpython$(VERSION)'
668 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
669 case $ac_sys_system in
671 SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
674 INSTSONAME="$LDLIBRARY".$SOVERSION
679 LDLIBRARY='libpython$(VERSION).so'
682 LDLIBRARY='libpython$(VERSION).sl'
685 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
686 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
689 LDLIBRARY='libpython$(VERSION).so'
690 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
691 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
694 LDLIBRARY='libpython$(VERSION).so'
695 BLDLIBRARY='-L. -lpython$(VERSION)'
696 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
699 LDLIBRARY='libpython$(VERSION).dylib'
700 BLDLIBRARY='-L. -lpython$(VERSION)'
701 RUNSHARED='DYLD_LIBRARY_PATH=`pwd`:${DYLD_LIBRARY_PATH}'
705 else # shared is disabled
706 case $ac_sys_system in
708 BLDLIBRARY='$(LIBRARY)'
709 LDLIBRARY='libpython$(VERSION).dll.a'
714 AC_MSG_RESULT($LDLIBRARY)
718 AC_CHECK_PROGS(AR, ar aal, ar)
721 AC_CHECK_PROG(SVNVERSION, svnversion, found, not-found)
722 if test $SVNVERSION = found
724 SVNVERSION="svnversion \$(srcdir)"
726 SVNVERSION="echo exported"
731 # install -d does not work on BSDI or HP-UX
732 if test -z "$INSTALL"
734 INSTALL="${srcdir}/install-sh -c"
739 # Not every filesystem supports hard links
741 if test -z "$LN" ; then
742 case $ac_sys_system in
743 CYGWIN*) LN="ln -s";;
744 atheos*) LN="ln -s";;
749 # Check for --with-pydebug
750 AC_MSG_CHECKING(for --with-pydebug)
752 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
754 if test "$withval" != no
756 AC_DEFINE(Py_DEBUG, 1,
757 [Define if you want to build an interpreter with many run-time checks.])
760 else AC_MSG_RESULT(no); Py_DEBUG='false'
764 # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
765 # merged with this chunk of code?
767 # Optimizer/debugger flags
768 # ------------------------
769 # (The following bit of code is complicated enough - please keep things
770 # indented properly. Just pretend you're editing Python code. ;-)
772 # There are two parallel sets of case statements below, one that checks to
773 # see if OPT was set and one that does BASECFLAGS setting based upon
774 # compiler and platform. BASECFLAGS tweaks need to be made even if the
777 # tweak OPT based on compiler and platform, only if the user didn't set
778 # it on the command line
784 if test "$CC" != 'g++' ; then
785 STRICT_PROTO="-Wstrict-prototypes"
787 # For gcc 4.x we need to use -fwrapv so lets check if its supported
788 if "$CC" -v --help 2>/dev/null |grep -- -fwrapv > /dev/null; then
791 case $ac_cv_prog_cc_g in
793 if test "$Py_DEBUG" = 'true' ; then
794 # Optimization messes up debuggers, so turn it off for
796 OPT="-g -Wall $STRICT_PROTO"
798 OPT="-g $WRAP -O3 -Wall $STRICT_PROTO"
802 OPT="-O3 -Wall $STRICT_PROTO"
805 case $ac_sys_system in
806 SCO_SV*) OPT="$OPT -m486 -DSCO5"
816 # The current (beta) Monterey compiler dies with optimizations
817 # XXX what is Monterey? Does it still die w/ -O? Can we get rid of this?
818 case $ac_sys_system in
828 # The -arch flags for universal builds on OSX
829 UNIVERSAL_ARCH_FLAGS=
830 AC_SUBST(UNIVERSAL_ARCH_FLAGS)
832 # tweak BASECFLAGS based on compiler and platform
835 # Python violates C99 rules, by casting between incompatible
836 # pointer types. GCC may generate bad code as a result of that,
837 # so use -fno-strict-aliasing if supported.
838 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
840 CC="$CC -fno-strict-aliasing"
841 AC_TRY_RUN([int main() { return 0; }],
842 ac_cv_no_strict_aliasing_ok=yes,
843 ac_cv_no_strict_aliasing_ok=no,
844 ac_cv_no_strict_aliasing_ok=no)
846 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
847 if test $ac_cv_no_strict_aliasing_ok = yes
849 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
852 # if using gcc on alpha, use -mieee to get (near) full IEEE 754
853 # support. Without this, treatment of subnormals doesn't follow
855 case $ac_sys_machine in
857 BASECFLAGS="$BASECFLAGS -mieee"
861 case $ac_sys_system in
863 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
865 # is there any other compiler on Darwin besides gcc?
867 # -Wno-long-double, -no-cpp-precomp, and -mno-fused-madd
868 # used to be here, but non-Apple gcc doesn't accept them.
871 if test "${enable_universalsdk}"; then
872 UNIVERSAL_ARCH_FLAGS=""
873 if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
874 UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
877 elif test "$UNIVERSAL_ARCHS" = "64-bit" ; then
878 UNIVERSAL_ARCH_FLAGS="-arch ppc64 -arch x86_64"
880 elif test "$UNIVERSAL_ARCHS" = "all" ; then
881 UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
882 ARCH_RUN_32BIT="arch -i386 -ppc"
885 AC_MSG_ERROR([proper usage is --with-universalarch=32-bit|64-bit|all])
890 BASECFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${BASECFLAGS}"
891 tgt=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
892 if test "${UNIVERSALSDK}" != "/" -a "${tgt}" '>' '10.4' ; then
893 CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
897 # Calculate the right deployment target for this build.
899 cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
900 if test ${cur_target} '>' 10.2; then
903 if test "${UNIVERSAL_ARCHS}" = "all"; then
904 # Ensure that the default platform for a 4-way
905 # universal build is OSX 10.5, that's the first
906 # OS release where 4-way builds make sense.
909 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
911 # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
912 # environment with a value that is the same as what we'll use
913 # in the Makefile to ensure that we'll get the same compiler
914 # environment during configure and build time.
915 MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
916 export MACOSX_DEPLOYMENT_TARGET
917 EXPORT_MACOSX_DEPLOYMENT_TARGET=''
921 BASECFLAGS="$BASECFLAGS -mieee"
927 case $ac_sys_system in
929 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
932 BASECFLAGS="$BASECFLAGS -ieee -std"
935 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
941 if test "$Py_DEBUG" = 'true'; then
947 if test "$ac_arch_flags"
949 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
952 # disable check for icc since it seems to pass, but generates a warning
955 ac_cv_opt_olimit_ok=no
958 AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
959 AC_CACHE_VAL(ac_cv_opt_olimit_ok,
961 CC="$CC -OPT:Olimit=0"
962 AC_TRY_RUN([int main() { return 0; }],
963 ac_cv_opt_olimit_ok=yes,
964 ac_cv_opt_olimit_ok=no,
965 ac_cv_opt_olimit_ok=no)
967 AC_MSG_RESULT($ac_cv_opt_olimit_ok)
968 if test $ac_cv_opt_olimit_ok = yes; then
969 case $ac_sys_system in
970 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
971 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
976 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
980 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
981 AC_CACHE_VAL(ac_cv_olimit_ok,
983 CC="$CC -Olimit 1500"
984 AC_TRY_RUN([int main() { return 0; }],
989 AC_MSG_RESULT($ac_cv_olimit_ok)
990 if test $ac_cv_olimit_ok = yes; then
991 BASECFLAGS="$BASECFLAGS -Olimit 1500"
995 # Check whether GCC supports PyArg_ParseTuple format
996 if test "$GCC" = "yes"
998 AC_MSG_CHECKING(whether gcc supports ParseTuple __format__)
1000 CFLAGS="$CFLAGS -Werror"
1002 void f(char*,...)__attribute((format(PyArg_ParseTuple, 1, 2)));
1004 AC_DEFINE(HAVE_ATTRIBUTE_FORMAT_PARSETUPLE, 1, [Define if GCC supports __attribute__((format(PyArg_ParseTuple, 2, 3)))])
1011 # On some compilers, pthreads are available without further options
1012 # (e.g. MacOS X). On some of these systems, the compiler will not
1013 # complain if unaccepted options are passed (e.g. gcc on Mac OS X).
1014 # So we have to see first whether pthreads are available without
1015 # options before we can check whether -Kpthread improves anything.
1016 AC_MSG_CHECKING(whether pthreads are available without options)
1017 AC_CACHE_VAL(ac_cv_pthread_is_default,
1019 #include <pthread.h>
1021 void* routine(void* p){return NULL;}
1025 if(pthread_create(&p,NULL,routine,NULL)!=0)
1027 (void)pthread_detach(p);
1032 ac_cv_pthread_is_default=yes
1036 ac_cv_pthread_is_default=no,
1037 ac_cv_pthread_is_default=no)
1039 AC_MSG_RESULT($ac_cv_pthread_is_default)
1042 if test $ac_cv_pthread_is_default = yes
1046 # -Kpthread, if available, provides the right #defines
1047 # and linker options to make pthread_create available
1048 # Some compilers won't report that they do not support -Kpthread,
1049 # so we need to run a program to see whether it really made the
1050 # function available.
1051 AC_MSG_CHECKING(whether $CC accepts -Kpthread)
1052 AC_CACHE_VAL(ac_cv_kpthread,
1056 #include <pthread.h>
1058 void* routine(void* p){return NULL;}
1062 if(pthread_create(&p,NULL,routine,NULL)!=0)
1064 (void)pthread_detach(p);
1072 AC_MSG_RESULT($ac_cv_kpthread)
1075 if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
1077 # -Kthread, if available, provides the right #defines
1078 # and linker options to make pthread_create available
1079 # Some compilers won't report that they do not support -Kthread,
1080 # so we need to run a program to see whether it really made the
1081 # function available.
1082 AC_MSG_CHECKING(whether $CC accepts -Kthread)
1083 AC_CACHE_VAL(ac_cv_kthread,
1087 #include <pthread.h>
1089 void* routine(void* p){return NULL;}
1093 if(pthread_create(&p,NULL,routine,NULL)!=0)
1095 (void)pthread_detach(p);
1103 AC_MSG_RESULT($ac_cv_kthread)
1106 if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
1108 # -pthread, if available, provides the right #defines
1109 # and linker options to make pthread_create available
1110 # Some compilers won't report that they do not support -pthread,
1111 # so we need to run a program to see whether it really made the
1112 # function available.
1113 AC_MSG_CHECKING(whether $CC accepts -pthread)
1114 AC_CACHE_VAL(ac_cv_thread,
1118 #include <pthread.h>
1120 void* routine(void* p){return NULL;}
1124 if(pthread_create(&p,NULL,routine,NULL)!=0)
1126 (void)pthread_detach(p);
1134 AC_MSG_RESULT($ac_cv_pthread)
1137 # If we have set a CC compiler flag for thread support then
1138 # check if it works for CXX, too.
1142 AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
1145 if test "$ac_cv_kpthread" = "yes"
1147 CXX="$CXX -Kpthread"
1148 ac_cv_cxx_thread=yes
1149 elif test "$ac_cv_kthread" = "yes"
1152 ac_cv_cxx_thread=yes
1153 elif test "$ac_cv_pthread" = "yes"
1156 ac_cv_cxx_thread=yes
1159 if test $ac_cv_cxx_thread = yes
1161 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
1162 $CXX -c conftest.$ac_ext 2>&5
1163 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
1164 && test -s conftest$ac_exeext && ./conftest$ac_exeext
1166 ac_cv_cxx_thread=yes
1172 AC_MSG_RESULT($ac_cv_cxx_thread)
1176 dnl # check for ANSI or K&R ("traditional") preprocessor
1177 dnl AC_MSG_CHECKING(for C preprocessor type)
1178 dnl AC_TRY_COMPILE([
1179 dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
1181 dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
1182 dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
1183 dnl AC_MSG_RESULT($cpp_type)
1185 # checks for header files
1187 AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
1189 ieeefp.h io.h langinfo.h libintl.h ncurses.h poll.h process.h pthread.h \
1190 shadow.h signal.h stdint.h stropts.h termios.h thread.h \
1192 sys/audioio.h sys/bsdtty.h sys/epoll.h sys/event.h sys/file.h sys/loadavg.h \
1193 sys/lock.h sys/mkdev.h sys/modem.h \
1194 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/statvfs.h sys/stat.h \
1195 sys/termio.h sys/time.h \
1196 sys/times.h sys/types.h sys/un.h sys/utsname.h sys/wait.h pty.h libutil.h \
1197 sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
1198 bluetooth/bluetooth.h linux/tipc.h)
1202 # On Solaris, term.h requires curses.h
1203 AC_CHECK_HEADERS(term.h,,,[
1204 #ifdef HAVE_CURSES_H
1209 # On Linux, netlink.h requires asm/types.h
1210 AC_CHECK_HEADERS(linux/netlink.h,,,[
1211 #ifdef HAVE_ASM_TYPES_H
1212 #include <asm/types.h>
1214 #ifdef HAVE_SYS_SOCKET_H
1215 #include <sys/socket.h>
1219 # checks for typedefs
1221 AC_MSG_CHECKING(for clock_t in time.h)
1222 AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
1223 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
1225 AC_MSG_RESULT($was_it_defined)
1227 # Check whether using makedev requires defining _OSF_SOURCE
1228 AC_MSG_CHECKING(for makedev)
1229 AC_TRY_LINK([#include <sys/types.h> ],
1231 ac_cv_has_makedev=yes,
1232 ac_cv_has_makedev=no)
1233 if test "$ac_cv_has_makedev" = "no"; then
1234 # we didn't link, try if _OSF_SOURCE will allow us to link
1236 #define _OSF_SOURCE 1
1237 #include <sys/types.h>
1240 ac_cv_has_makedev=yes,
1241 ac_cv_has_makedev=no)
1242 if test "$ac_cv_has_makedev" = "yes"; then
1243 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
1246 AC_MSG_RESULT($ac_cv_has_makedev)
1247 if test "$ac_cv_has_makedev" = "yes"; then
1248 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
1251 # Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
1252 # the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
1253 # defined, but the compiler does not support pragma redefine_extname,
1254 # and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
1255 # structures (such as rlimit64) without declaring them. As a
1256 # work-around, disable LFS on such configurations
1259 AC_MSG_CHECKING(Solaris LFS bug)
1261 #define _LARGEFILE_SOURCE 1
1262 #define _FILE_OFFSET_BITS 64
1263 #include <sys/resource.h>
1264 ],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
1265 AC_MSG_RESULT($sol_lfs_bug)
1266 if test "$sol_lfs_bug" = "yes"; then
1270 if test "$use_lfs" = "yes"; then
1271 # Two defines needed to enable largefile support on various platforms
1272 # These may affect some typedefs
1273 AC_DEFINE(_LARGEFILE_SOURCE, 1,
1274 [This must be defined on some systems to enable large file support.])
1275 AC_DEFINE(_FILE_OFFSET_BITS, 64,
1276 [This must be set to 64 on some systems to enable large file support.])
1279 # Add some code to confdefs.h so that the test for off_t works on SCO
1280 cat >> confdefs.h <<\EOF
1286 # Type availability checks
1297 AC_CHECK_TYPE(ssize_t,
1298 AC_DEFINE(HAVE_SSIZE_T, 1, Define if your compiler provides ssize_t),,)
1300 # Sizes of various common basic types
1301 # ANSI C requires sizeof(char) == 1, so no need to check it
1302 AC_CHECK_SIZEOF(int, 4)
1303 AC_CHECK_SIZEOF(long, 4)
1304 AC_CHECK_SIZEOF(void *, 4)
1305 AC_CHECK_SIZEOF(short, 2)
1306 AC_CHECK_SIZEOF(float, 4)
1307 AC_CHECK_SIZEOF(double, 8)
1308 AC_CHECK_SIZEOF(fpos_t, 4)
1309 AC_CHECK_SIZEOF(size_t, 4)
1310 AC_CHECK_SIZEOF(pid_t, 4)
1312 AC_MSG_CHECKING(for long long support)
1314 AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1315 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1318 AC_MSG_RESULT($have_long_long)
1319 if test "$have_long_long" = yes ; then
1320 AC_CHECK_SIZEOF(long long, 8)
1323 AC_MSG_CHECKING(for long double support)
1325 AC_TRY_COMPILE([], [long double x; x = (long double)0;], [
1326 AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define this if you have the type long double.])
1327 have_long_double=yes
1329 AC_MSG_RESULT($have_long_double)
1330 if test "$have_long_double" = yes ; then
1331 AC_CHECK_SIZEOF(long double, 16)
1335 AC_MSG_CHECKING(for _Bool support)
1337 AC_TRY_COMPILE([], [_Bool x; x = (_Bool)0;], [
1338 AC_DEFINE(HAVE_C99_BOOL, 1, [Define this if you have the type _Bool.])
1341 AC_MSG_RESULT($have_c99_bool)
1342 if test "$have_c99_bool" = yes ; then
1343 AC_CHECK_SIZEOF(_Bool, 1)
1346 AC_CHECK_TYPES(uintptr_t,
1347 [AC_CHECK_SIZEOF(uintptr_t, 4)],
1348 [], [#ifdef HAVE_STDINT_H
1353 # Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1354 AC_MSG_CHECKING(size of off_t)
1355 AC_CACHE_VAL(ac_cv_sizeof_off_t,
1356 [AC_TRY_RUN([#include <stdio.h>
1357 #include <sys/types.h>
1360 FILE *f=fopen("conftestval", "w");
1362 fprintf(f, "%d\n", sizeof(off_t));
1365 ac_cv_sizeof_off_t=`cat conftestval`,
1366 ac_cv_sizeof_off_t=0,
1367 ac_cv_sizeof_off_t=4)
1369 AC_MSG_RESULT($ac_cv_sizeof_off_t)
1370 AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1371 [The number of bytes in an off_t.])
1373 AC_MSG_CHECKING(whether to enable large file support)
1374 if test "$have_long_long" = yes -a \
1375 "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1376 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
1377 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1378 [Defined to enable large file support when an off_t is bigger than a long
1379 and long long is available and at least as big as an off_t. You may need
1380 to add some flags for configuration and compilation to enable this mode.
1381 (For Solaris and Linux, the necessary defines are already defined.)])
1387 # AC_CHECK_SIZEOF() doesn't include <time.h>.
1388 AC_MSG_CHECKING(size of time_t)
1389 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1390 [AC_TRY_RUN([#include <stdio.h>
1394 FILE *f=fopen("conftestval", "w");
1396 fprintf(f, "%d\n", sizeof(time_t));
1399 ac_cv_sizeof_time_t=`cat conftestval`,
1400 ac_cv_sizeof_time_t=0,
1401 ac_cv_sizeof_time_t=4)
1403 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1404 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1405 [The number of bytes in a time_t.])
1408 # if have pthread_t then define SIZEOF_PTHREAD_T
1410 if test "$ac_cv_kpthread" = "yes"
1411 then CC="$CC -Kpthread"
1412 elif test "$ac_cv_kthread" = "yes"
1413 then CC="$CC -Kthread"
1414 elif test "$ac_cv_pthread" = "yes"
1415 then CC="$CC -pthread"
1417 AC_MSG_CHECKING(for pthread_t)
1419 AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
1420 AC_MSG_RESULT($have_pthread_t)
1421 if test "$have_pthread_t" = yes ; then
1422 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1423 AC_MSG_CHECKING(size of pthread_t)
1424 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1425 [AC_TRY_RUN([#include <stdio.h>
1426 #include <pthread.h>
1429 FILE *f=fopen("conftestval", "w");
1431 fprintf(f, "%d\n", sizeof(pthread_t));
1434 ac_cv_sizeof_pthread_t=`cat conftestval`,
1435 ac_cv_sizeof_pthread_t=0,
1436 ac_cv_sizeof_pthread_t=4)
1438 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
1439 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1440 [The number of bytes in a pthread_t.])
1446 AC_SUBST(OTHER_LIBTOOL_OPT)
1447 case $ac_sys_system/$ac_sys_release in
1448 Darwin/@<:@01567@:>@\..*)
1449 OTHER_LIBTOOL_OPT="-prebind -seg1addr 0x10000000"
1452 OTHER_LIBTOOL_OPT=""
1456 AC_SUBST(LIBTOOL_CRUFT)
1457 case $ac_sys_system/$ac_sys_release in
1458 Darwin/@<:@01567@:>@\..*)
1459 LIBTOOL_CRUFT="-framework System -lcc_dynamic"
1460 if test "${enable_universalsdk}"; then
1463 LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only `arch`"
1465 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1466 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1468 gcc_version=`gcc -v 2>&1 | grep version | cut -d\ -f3`
1469 if test ${gcc_version} '<' 4.0
1471 LIBTOOL_CRUFT="-lcc_dynamic"
1475 LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only `arch`"
1476 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1477 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1480 AC_MSG_CHECKING(for --enable-framework)
1481 if test "$enable_framework"
1483 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
1484 # -F. is needed to allow linking to the framework while
1485 # in the build location.
1486 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1487 [Define if you want to produce an OpenStep/Rhapsody framework
1488 (shared library plus accessory files).])
1494 AC_MSG_CHECKING(for dyld)
1495 case $ac_sys_system/$ac_sys_release in
1497 AC_DEFINE(WITH_DYLD, 1,
1498 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1499 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1500 linker (rld). Dyld is necessary to support frameworks.])
1501 AC_MSG_RESULT(always on for Darwin)
1508 # Set info about shared libraries.
1513 AC_SUBST(LINKFORSHARED)
1514 # SO is the extension of shared libraries `(including the dot!)
1515 # -- usually .so, .sl on HP-UX, .dll on Cygwin
1519 case $ac_sys_system in
1530 # this might also be a termcap variable, see #610332
1532 echo '====================================================================='
1534 echo '+ WARNING: You have set SO in your environment. +'
1535 echo '+ Do you really mean to change the extension for shared libraries? +'
1536 echo '+ Continuing in 10 seconds to let you to ponder. +'
1538 echo '====================================================================='
1543 AC_DEFINE_UNQUOTED(SHLIB_EXT, "$SO", [Define this to be extension of shared libraries (including the dot!).])
1544 # LDSHARED is the ld *command* used to create shared library
1545 # -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
1546 # (Shared libraries in this instance are shared modules to be loaded into
1547 # Python, as opposed to building Python itself as a shared library.)
1548 AC_MSG_CHECKING(LDSHARED)
1549 if test -z "$LDSHARED"
1551 case $ac_sys_system/$ac_sys_release in
1553 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
1554 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
1556 IRIX/5*) LDSHARED="ld -shared";;
1557 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
1559 if test "$GCC" = "yes"
1560 then LDSHARED='$(CC) -shared'
1561 else LDSHARED='$(CC) -G';
1564 if test "$GCC" = "yes"
1565 then LDSHARED='$(CC) -shared'
1566 else LDSHARED='ld -b';
1568 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
1570 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1571 if test "$enable_framework" ; then
1572 # Link against the framework. All externals should be defined.
1573 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1574 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1576 # No framework. Ignore undefined symbols, assuming they come from Python
1577 LDSHARED="$LDSHARED -undefined suppress"
1579 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
1580 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1581 if test "$enable_framework" ; then
1582 # Link against the framework. All externals should be defined.
1583 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1584 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1586 # No framework, use the Python app as bundle-loader
1587 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1588 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1591 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1592 # This allows an extension to be used in any Python
1594 if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
1596 if test "${enable_universalsdk}"; then
1597 LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
1599 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1600 BLDSHARED="$LDSHARED"
1602 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1603 if test "$enable_framework" ; then
1604 # Link against the framework. All externals should be defined.
1605 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1606 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1608 # No framework, use the Python app as bundle-loader
1609 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1610 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1614 Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
1615 BSD/OS*/4*) LDSHARED="gcc -shared";;
1617 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1619 LDSHARED="$CC -shared ${LDFLAGS}"
1621 LDSHARED="ld -Bshareable ${LDFLAGS}"
1624 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1626 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1629 [[01]].* | 2.[[0-7]] | 2.[[0-7]].*)
1630 LDSHARED="ld -Bshareable ${LDFLAGS}"
1633 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1637 NetBSD*|DragonFly*) LDSHARED="cc -shared ${LDFLAGS}";;
1638 OpenUNIX*|UnixWare*)
1639 if test "$GCC" = "yes"
1640 then LDSHARED='$(CC) -shared'
1641 else LDSHARED='$(CC) -G'
1643 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
1644 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
1645 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
1646 atheos*) LDSHARED="gcc -shared";;
1650 AC_MSG_RESULT($LDSHARED)
1651 BLDSHARED=${BLDSHARED-$LDSHARED}
1652 # CCSHARED are the C *flags* used to create objects to go into a shared
1653 # library (module) -- this is only needed for a few systems
1654 AC_MSG_CHECKING(CCSHARED)
1655 if test -z "$CCSHARED"
1657 case $ac_sys_system/$ac_sys_release in
1658 SunOS*) if test "$GCC" = yes;
1659 then CCSHARED="-fPIC";
1660 elif test `uname -p` = sparc;
1661 then CCSHARED="-xcode=pic32";
1662 else CCSHARED="-Kpic";
1664 hp*|HP*) if test "$GCC" = yes;
1665 then CCSHARED="-fPIC";
1668 Linux*|GNU*) CCSHARED="-fPIC";;
1669 BSD/OS*/4*) CCSHARED="-fpic";;
1670 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";;
1671 OpenUNIX*|UnixWare*)
1672 if test "$GCC" = "yes"
1673 then CCSHARED="-fPIC"
1674 else CCSHARED="-KPIC"
1677 if test "$GCC" = "yes"
1678 then CCSHARED="-fPIC"
1679 else CCSHARED="-Kpic -belf"
1681 Monterey*) CCSHARED="-G";;
1682 IRIX*/6*) case $CC in
1683 *gcc*) CCSHARED="-shared";;
1686 atheos*) CCSHARED="-fPIC";;
1689 AC_MSG_RESULT($CCSHARED)
1690 # LINKFORSHARED are the flags passed to the $(CC) command that links
1691 # the python executable -- this is only needed for a few systems
1692 AC_MSG_CHECKING(LINKFORSHARED)
1693 if test -z "$LINKFORSHARED"
1695 case $ac_sys_system/$ac_sys_release in
1696 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
1698 LINKFORSHARED="-Wl,-E -Wl,+s";;
1699 # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
1700 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
1701 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
1702 # -u libsys_s pulls in all symbols in libsys
1704 # -u _PyMac_Error is needed to pull in the mac toolbox glue,
1706 # not used by the core itself but which needs to be in the core so
1707 # that dynamically loaded extension modules have access to it.
1708 # -prebind is no longer used, because it actually seems to give a
1709 # slowdown in stead of a speedup, maybe due to the large number of
1710 # dynamic loads Python does.
1712 LINKFORSHARED="$extra_undefs"
1713 if test "$enable_framework"
1715 LINKFORSHARED="$LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1717 LINKFORSHARED="$LINKFORSHARED";;
1718 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
1719 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
1720 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
1721 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*)
1722 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1724 LINKFORSHARED="-Wl,--export-dynamic"
1726 SunOS/5*) case $CC in
1728 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
1730 LINKFORSHARED="-Xlinker --export-dynamic"
1734 if test $enable_shared = "no"
1736 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1739 # -Wl,-E causes the symbols to be added to the dynamic
1740 # symbol table so that they can be found when a module
1741 # is loaded. -N 2048K causes the stack size to be set
1742 # to 2048 kilobytes so that the stack doesn't overflow
1743 # when running test_compile.py.
1744 LINKFORSHARED='-Wl,-E -N 2048K';;
1747 AC_MSG_RESULT($LINKFORSHARED)
1750 AC_SUBST(CFLAGSFORSHARED)
1751 AC_MSG_CHECKING(CFLAGSFORSHARED)
1752 if test ! "$LIBRARY" = "$LDLIBRARY"
1754 case $ac_sys_system in
1756 # Cygwin needs CCSHARED when building extension DLLs
1757 # but not when building the interpreter DLL.
1758 CFLAGSFORSHARED='';;
1760 CFLAGSFORSHARED='$(CCSHARED)'
1763 AC_MSG_RESULT($CFLAGSFORSHARED)
1765 # SHLIBS are libraries (except -lc and -lm) to link to the python shared
1766 # library (with --enable-shared).
1767 # For platforms on which shared libraries are not allowed to have unresolved
1768 # symbols, this must be set to $(LIBS) (expanded by make). We do this even
1769 # if it is not required, since it creates a dependency of the shared library
1770 # to LIBS. This, in turn, means that applications linking the shared libpython
1771 # don't need to link LIBS explicitly. The default should be only changed
1772 # on systems where this approach causes problems.
1774 AC_MSG_CHECKING(SHLIBS)
1775 case "$ac_sys_system" in
1779 AC_MSG_RESULT($SHLIBS)
1782 # checks for libraries
1783 AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1784 AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
1786 # only check for sem_init if thread support is requested
1787 if test "$with_threads" = "yes" -o -z "$with_threads"; then
1788 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1789 # posix4 on Solaris 2.6
1790 # pthread (first!) on Linux
1793 # check if we need libintl for locale functions
1794 AC_CHECK_LIB(intl, textdomain,
1795 AC_DEFINE(WITH_LIBINTL, 1,
1796 [Define to 1 if libintl is needed for locale functions.]))
1798 # checks for system dependent C++ extensions support
1799 case "$ac_sys_system" in
1800 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1801 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1802 [loadAndInit("", 0, "")],
1803 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1804 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1805 and you want support for AIX C++ shared extension modules.])
1806 AC_MSG_RESULT(yes)],
1807 [AC_MSG_RESULT(no)]);;
1811 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
1812 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
1813 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
1815 AC_MSG_CHECKING(for --with-libs)
1817 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1819 AC_MSG_RESULT($withval)
1820 LIBS="$withval $LIBS"
1822 [AC_MSG_RESULT(no)])
1824 # Check for use of the system libffi library
1825 AC_MSG_CHECKING(for --with-system-ffi)
1826 AC_ARG_WITH(system_ffi,
1827 AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library))
1829 AC_MSG_RESULT($with_system_ffi)
1831 # Determine if signalmodule should be used.
1832 AC_SUBST(USE_SIGNAL_MODULE)
1833 AC_SUBST(SIGNAL_OBJS)
1834 AC_MSG_CHECKING(for --with-signal-module)
1835 AC_ARG_WITH(signal-module,
1836 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
1838 if test -z "$with_signal_module"
1839 then with_signal_module="yes"
1841 AC_MSG_RESULT($with_signal_module)
1843 if test "${with_signal_module}" = "yes"; then
1844 USE_SIGNAL_MODULE=""
1847 USE_SIGNAL_MODULE="#"
1848 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1851 # This is used to generate Setup.config
1852 AC_SUBST(USE_THREAD_MODULE)
1853 USE_THREAD_MODULE=""
1855 AC_MSG_CHECKING(for --with-dec-threads)
1857 AC_ARG_WITH(dec-threads,
1858 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1860 AC_MSG_RESULT($withval)
1862 if test "${with_thread+set}" != set; then
1863 with_thread="$withval";
1865 [AC_MSG_RESULT(no)])
1867 # Templates for things AC_DEFINEd more than once.
1868 # For a single AC_DEFINE, no template is needed.
1869 AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1870 AH_TEMPLATE(_REENTRANT,
1871 [Define to force use of thread-safe errno, h_errno, and other functions])
1872 AH_TEMPLATE(WITH_THREAD,
1873 [Define if you want to compile in rudimentary thread support])
1875 AC_MSG_CHECKING(for --with-threads)
1876 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1877 AC_ARG_WITH(threads,
1878 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
1880 # --with-thread is deprecated, but check for it anyway
1881 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1883 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1884 [with_threads=$with_thread])
1886 if test -z "$with_threads"
1887 then with_threads="yes"
1889 AC_MSG_RESULT($with_threads)
1892 if test "$with_threads" = "no"
1894 USE_THREAD_MODULE="#"
1895 elif test "$ac_cv_pthread_is_default" = yes
1897 AC_DEFINE(WITH_THREAD)
1898 # Defining _REENTRANT on system with POSIX threads should not hurt.
1899 AC_DEFINE(_REENTRANT)
1901 THREADOBJ="Python/thread.o"
1902 elif test "$ac_cv_kpthread" = "yes"
1905 if test "$ac_cv_cxx_thread" = "yes"; then
1906 CXX="$CXX -Kpthread"
1908 AC_DEFINE(WITH_THREAD)
1910 THREADOBJ="Python/thread.o"
1911 elif test "$ac_cv_kthread" = "yes"
1914 if test "$ac_cv_cxx_thread" = "yes"; then
1917 AC_DEFINE(WITH_THREAD)
1919 THREADOBJ="Python/thread.o"
1920 elif test "$ac_cv_pthread" = "yes"
1923 if test "$ac_cv_cxx_thread" = "yes"; then
1926 AC_DEFINE(WITH_THREAD)
1928 THREADOBJ="Python/thread.o"
1930 if test ! -z "$with_threads" -a -d "$with_threads"
1931 then LDFLAGS="$LDFLAGS -L$with_threads"
1933 if test ! -z "$withval" -a -d "$withval"
1934 then LDFLAGS="$LDFLAGS -L$withval"
1937 # According to the POSIX spec, a pthreads implementation must
1938 # define _POSIX_THREADS in unistd.h. Some apparently don't
1939 # (e.g. gnu pth with pthread emulation)
1940 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
1944 #ifdef _POSIX_THREADS
1947 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
1948 AC_MSG_RESULT($unistd_defines_pthreads)
1950 AC_DEFINE(_REENTRANT)
1951 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
1952 AC_DEFINE(C_THREADS)
1953 AC_DEFINE(HURD_C_THREADS, 1,
1954 [Define if you are using Mach cthreads directly under /include])
1955 LIBS="$LIBS -lthreads"
1956 THREADOBJ="Python/thread.o"],[
1957 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
1958 AC_DEFINE(C_THREADS)
1959 AC_DEFINE(MACH_C_THREADS, 1,
1960 [Define if you are using Mach cthreads under mach /])
1961 THREADOBJ="Python/thread.o"],[
1962 AC_MSG_CHECKING(for --with-pth)
1964 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
1965 [AC_MSG_RESULT($withval)
1966 AC_DEFINE([WITH_THREAD])
1967 AC_DEFINE([HAVE_PTH], 1,
1968 [Define if you have GNU PTH threads.])
1970 THREADOBJ="Python/thread.o"],
1973 # Just looking for pthread_create in libpthread is not enough:
1974 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
1975 # So we really have to include pthread.h, and then link.
1977 LIBS="$LIBS -lpthread"
1978 AC_MSG_CHECKING([for pthread_create in -lpthread])
1979 AC_TRY_LINK([#include <pthread.h>
1981 void * start_routine (void *arg) { exit (0); }], [
1982 pthread_create (NULL, NULL, start_routine, NULL)], [
1984 AC_DEFINE(WITH_THREAD)
1986 THREADOBJ="Python/thread.o"],[
1988 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
1990 THREADOBJ="Python/thread.o"],[
1991 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
1992 AC_DEFINE(ATHEOS_THREADS, 1,
1993 [Define this if you have AtheOS threads.])
1994 THREADOBJ="Python/thread.o"],[
1995 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
1997 LIBS="$LIBS -lpthreads"
1998 THREADOBJ="Python/thread.o"], [
1999 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
2002 THREADOBJ="Python/thread.o"], [
2003 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
2005 LIBS="$LIBS -lpthread"
2006 THREADOBJ="Python/thread.o"], [
2007 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
2010 THREADOBJ="Python/thread.o"],[
2011 USE_THREAD_MODULE="#"])
2014 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
2016 THREADOBJ="Python/thread.o"
2017 USE_THREAD_MODULE=""])
2019 if test "$posix_threads" != "yes"; then
2020 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
2021 LIBS="$LIBS -lthread"
2022 THREADOBJ="Python/thread.o"
2023 USE_THREAD_MODULE=""])
2026 if test "$USE_THREAD_MODULE" != "#"
2028 # If the above checks didn't disable threads, (at least) OSF1
2029 # needs this '-threads' argument during linking.
2030 case $ac_sys_system in
2031 OSF1) LDLAST=-threads;;
2036 if test "$posix_threads" = "yes"; then
2037 if test "$unistd_defines_pthreads" = "no"; then
2038 AC_DEFINE(_POSIX_THREADS, 1,
2039 [Define if you have POSIX threads,
2040 and your system does not define that.])
2043 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
2044 case $ac_sys_system/$ac_sys_release in
2045 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
2046 Defined for Solaris 2.6 bug in pthread header.)
2048 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2049 Define if the Posix semaphores do not work on your system)
2051 AIX/5) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2052 Define if the Posix semaphores do not work on your system)
2056 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
2057 AC_CACHE_VAL(ac_cv_pthread_system_supported,
2058 [AC_TRY_RUN([#include <pthread.h>
2059 void *foo(void *parm) {
2063 pthread_attr_t attr;
2065 if (pthread_attr_init(&attr)) exit(-1);
2066 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
2067 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
2070 ac_cv_pthread_system_supported=yes,
2071 ac_cv_pthread_system_supported=no,
2072 ac_cv_pthread_system_supported=no)
2074 AC_MSG_RESULT($ac_cv_pthread_system_supported)
2075 if test "$ac_cv_pthread_system_supported" = "yes"; then
2076 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
2078 AC_CHECK_FUNCS(pthread_sigmask,
2079 [case $ac_sys_system in
2081 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
2082 [Define if pthread_sigmask() does not work on your system.])
2088 # Check for enable-ipv6
2089 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
2090 AC_MSG_CHECKING([if --enable-ipv6 is specified])
2092 [ --enable-ipv6 Enable ipv6 (with ipv4) support
2093 --disable-ipv6 Disable ipv6 support],
2094 [ case "$enableval" in
2099 *) AC_MSG_RESULT(yes)
2100 AC_DEFINE(ENABLE_IPV6)
2106 dnl the check does not work on cross compilation case...
2107 AC_TRY_RUN([ /* AF_INET6 available check */
2108 #include <sys/types.h>
2109 #include <sys/socket.h>
2112 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
2126 if test "$ipv6" = "yes"; then
2127 AC_MSG_CHECKING(if RFC2553 API is available)
2128 AC_TRY_COMPILE([#include <sys/types.h>
2129 #include <netinet/in.h>],
2130 [struct sockaddr_in6 x;
2134 AC_MSG_RESULT(no, IPv6 disabled)
2138 if test "$ipv6" = "yes"; then
2139 AC_DEFINE(ENABLE_IPV6)
2147 if test "$ipv6" = "yes"; then
2148 AC_MSG_CHECKING([ipv6 stack type])
2149 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
2153 dnl http://www.kame.net/
2155 #include <netinet/in.h>
2156 #ifdef IPV6_INRIA_VERSION
2162 dnl http://www.kame.net/
2164 #include <netinet/in.h>
2170 ipv6libdir=/usr/local/v6/lib
2174 dnl http://www.v6.linux.or.jp/
2176 #include <features.h>
2177 #if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
2184 dnl http://www.v6.linux.or.jp/
2185 if test -d /usr/inet6; then
2188 ipv6libdir=/usr/inet6/lib
2189 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
2193 if test -f /etc/netconfig; then
2194 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
2202 #include <sys/param.h>
2203 #ifdef _TOSHIBA_INET6
2208 ipv6libdir=/usr/local/v6/lib])
2212 #include </usr/local/v6/include/sys/v6config.h>
2218 ipv6libdir=/usr/local/v6/lib;
2219 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
2223 #include <sys/param.h>
2224 #ifdef _ZETA_MINAMI_INET6
2229 ipv6libdir=/usr/local/v6/lib])
2232 if test "$ipv6type" != "unknown"; then
2236 AC_MSG_RESULT($ipv6type)
2239 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
2240 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
2241 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
2242 echo "using lib$ipv6lib"
2244 if test $ipv6trylibc = "yes"; then
2247 echo 'Fatal: no $ipv6lib library found. cannot continue.'
2248 echo "You need to fetch lib$ipv6lib.a from appropriate"
2249 echo 'ipv6 kit and compile beforehand.'
2255 AC_MSG_CHECKING(for OSX 10.5 SDK or later)
2256 AC_TRY_COMPILE([#include <Carbon/Carbon.h>], FSIORefNum fRef = 0,
2257 AC_DEFINE(HAVE_OSX105_SDK, 1, Define if compiling using MacOS X 10.5 SDK or later.)
2262 # Check for --with-doc-strings
2263 AC_MSG_CHECKING(for --with-doc-strings)
2264 AC_ARG_WITH(doc-strings,
2265 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
2267 if test -z "$with_doc_strings"
2268 then with_doc_strings="yes"
2270 if test "$with_doc_strings" != "no"
2272 AC_DEFINE(WITH_DOC_STRINGS, 1,
2273 [Define if you want documentation strings in extension modules])
2275 AC_MSG_RESULT($with_doc_strings)
2277 # Check for Python-specific malloc support
2278 AC_MSG_CHECKING(for --with-tsc)
2280 [ --with(out)-tsc enable/disable timestamp counter profile], [
2281 if test "$withval" != no
2283 AC_DEFINE(WITH_TSC, 1,
2284 [Define to profile with the Pentium timestamp counter])
2286 else AC_MSG_RESULT(no)
2288 [AC_MSG_RESULT(no)])
2290 # Check for Python-specific malloc support
2291 AC_MSG_CHECKING(for --with-pymalloc)
2292 AC_ARG_WITH(pymalloc,
2293 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
2295 if test -z "$with_pymalloc"
2296 then with_pymalloc="yes"
2298 if test "$with_pymalloc" != "no"
2300 AC_DEFINE(WITH_PYMALLOC, 1,
2301 [Define if you want to compile in Python-specific mallocs])
2303 AC_MSG_RESULT($with_pymalloc)
2305 # Check for --with-wctype-functions
2306 AC_MSG_CHECKING(for --with-wctype-functions)
2307 AC_ARG_WITH(wctype-functions,
2308 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
2310 if test "$withval" != no
2312 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2313 [Define if you want wctype.h functions to be used instead of the
2314 one supplied by Python itself. (see Include/unicodectype.h).])
2316 else AC_MSG_RESULT(no)
2318 [AC_MSG_RESULT(no)])
2320 # -I${DLINCLDIR} is added to the compile rule for importdl.o
2324 # the dlopen() function means we might want to use dynload_shlib.o. some
2325 # platforms, such as AIX, have dlopen(), but don't want to use it.
2326 AC_CHECK_FUNCS(dlopen)
2328 # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2329 # loading of modules.
2330 AC_SUBST(DYNLOADFILE)
2331 AC_MSG_CHECKING(DYNLOADFILE)
2332 if test -z "$DYNLOADFILE"
2334 case $ac_sys_system/$ac_sys_release in
2335 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2336 if test "$ac_cv_func_dlopen" = yes
2337 then DYNLOADFILE="dynload_shlib.o"
2338 else DYNLOADFILE="dynload_aix.o"
2341 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
2342 # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
2343 Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
2344 atheos*) DYNLOADFILE="dynload_atheos.o";;
2346 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2347 # out any dynamic loading
2348 if test "$ac_cv_func_dlopen" = yes
2349 then DYNLOADFILE="dynload_shlib.o"
2350 else DYNLOADFILE="dynload_stub.o"
2355 AC_MSG_RESULT($DYNLOADFILE)
2356 if test "$DYNLOADFILE" != "dynload_stub.o"
2358 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2359 [Defined when any dynamic module loading is enabled.])
2362 # MACHDEP_OBJS can be set to platform-specific object files needed by Python
2364 AC_SUBST(MACHDEP_OBJS)
2365 AC_MSG_CHECKING(MACHDEP_OBJS)
2366 if test -z "$MACHDEP_OBJS"
2368 MACHDEP_OBJS=$extra_machdep_objs
2370 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
2372 AC_MSG_RESULT(MACHDEP_OBJS)
2374 # checks for library functions
2375 AC_CHECK_FUNCS(alarm setitimer getitimer bind_textdomain_codeset chown \
2376 clock confstr ctermid execv fchmod fchown fork fpathconf ftime ftruncate \
2377 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
2378 getpriority getpwent getspnam getspent getsid getwd \
2379 kill killpg lchmod lchown lstat mkfifo mknod mktime \
2380 mremap nice pathconf pause plock poll pthread_init \
2381 putenv readlink realpath \
2382 select setegid seteuid setgid \
2383 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
2384 sigaction siginterrupt sigrelse strftime strlcpy \
2385 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
2386 truncate uname unsetenv utimes waitpid wait3 wait4 wcscoll wcsxfrm _getpty)
2388 # For some functions, having a definition is not sufficient, since
2389 # we want to take their address.
2390 AC_MSG_CHECKING(for chroot)
2391 AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2392 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2396 AC_MSG_CHECKING(for link)
2397 AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2398 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2402 AC_MSG_CHECKING(for symlink)
2403 AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2404 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2408 AC_MSG_CHECKING(for fchdir)
2409 AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2410 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2414 AC_MSG_CHECKING(for fsync)
2415 AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
2416 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
2420 AC_MSG_CHECKING(for fdatasync)
2421 AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2422 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2426 AC_MSG_CHECKING(for epoll)
2427 AC_TRY_COMPILE([#include <sys/epoll.h>], void *x=epoll_create,
2428 AC_DEFINE(HAVE_EPOLL, 1, Define if you have the 'epoll' functions.)
2432 AC_MSG_CHECKING(for kqueue)
2434 #include <sys/types.h>
2435 #include <sys/event.h>
2437 AC_DEFINE(HAVE_KQUEUE, 1, Define if you have the 'kqueue' functions.)
2441 # On some systems (eg. FreeBSD 5), we would find a definition of the
2442 # functions ctermid_r, setgroups in the library, but no prototype
2443 # (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2444 # address to avoid compiler warnings and potential miscompilations
2445 # because of the missing prototypes.
2447 AC_MSG_CHECKING(for ctermid_r)
2449 #include "confdefs.h"
2451 ], void* p = ctermid_r,
2452 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2457 AC_MSG_CHECKING(for flock)
2459 #include "confdefs.h"
2460 #include <sys/file.h>
2462 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2467 AC_MSG_CHECKING(for getpagesize)
2469 #include "confdefs.h"
2471 ], void* p = getpagesize,
2472 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2478 AC_CHECK_PROGS(TRUE, true, /bin/true)
2480 dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2481 dnl On others, they are in the C library, so we to take no action
2482 AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
2483 AC_CHECK_LIB(resolv, inet_aton)
2486 # On Tru64, chflags seems to be present, but calling it will
2488 AC_MSG_CHECKING(for chflags)
2490 #include <sys/stat.h>
2492 int main(int argc, char*argv[])
2494 if(chflags(argv[0], 0) != 0)
2498 ],AC_DEFINE(HAVE_CHFLAGS, 1, Define to 1 if you have the `chflags' function.)
2503 AC_MSG_CHECKING(for lchflags)
2505 #include <sys/stat.h>
2507 int main(int argc, char*argv[])
2509 if(lchflags(argv[0], 0) != 0)
2513 ],AC_DEFINE(HAVE_LCHFLAGS, 1, Define to 1 if you have the `lchflags' function.)
2518 dnl Check if system zlib has *Copy() functions
2520 dnl On MacOSX the linker will search for dylibs on the entire linker path
2521 dnl before searching for static libraries. setup.py adds -Wl,-search_paths_first
2522 dnl to revert to a more traditional unix behaviour and make it possible to
2523 dnl override the system libz with a local static library of libz. Temporarily
2524 dnl add that flag to our CFLAGS as well to ensure that we check the version
2525 dnl of libz that will be used by setup.py.
2526 dnl The -L/usr/local/lib is needed as wel to get the same compilation
2527 dnl environment as setup.py (and leaving it out can cause configure to use the
2528 dnl wrong version of the library)
2529 case $ac_sys_system/$ac_sys_release in
2531 _CUR_CFLAGS="${CFLAGS}"
2532 _CUR_LDFLAGS="${LDFLAGS}"
2533 CFLAGS="${CFLAGS} -Wl,-search_paths_first"
2534 LDFLAGS="${LDFLAGS} -Wl,-search_paths_first -L/usr/local/lib"
2538 AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_ZLIB_COPY, 1, Define if the zlib library has inflateCopy))
2540 case $ac_sys_system/$ac_sys_release in
2542 CFLAGS="${_CUR_CFLAGS}"
2543 LDFLAGS="${_CUR_LDFLAGS}"
2547 AC_MSG_CHECKING(for hstrerror)
2549 #include "confdefs.h"
2551 ], void* p = hstrerror; hstrerror(0),
2552 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2557 AC_MSG_CHECKING(for inet_aton)
2559 #include "confdefs.h"
2560 #include <sys/types.h>
2561 #include <sys/socket.h>
2562 #include <netinet/in.h>
2563 #include <arpa/inet.h>
2564 ], void* p = inet_aton;inet_aton(0,0),
2565 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2570 AC_MSG_CHECKING(for inet_pton)
2572 #include "confdefs.h"
2573 #include <sys/types.h>
2574 #include <sys/socket.h>
2575 #include <netinet/in.h>
2576 #include <arpa/inet.h>
2577 ], void* p = inet_pton,
2578 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2583 # On some systems, setgroups is in unistd.h, on others, in grp.h
2584 AC_MSG_CHECKING(for setgroups)
2586 #include "confdefs.h"
2592 void* p = setgroups,
2593 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2598 # check for openpty and forkpty
2600 AC_CHECK_FUNCS(openpty,,
2601 AC_CHECK_LIB(util,openpty,
2602 [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"],
2603 AC_CHECK_LIB(bsd,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lbsd"])
2606 AC_CHECK_FUNCS(forkpty,,
2607 AC_CHECK_LIB(util,forkpty,
2608 [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"],
2609 AC_CHECK_LIB(bsd,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lbsd"])
2614 AC_CHECK_FUNCS(memmove)
2616 # check for long file support functions
2617 AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2619 AC_REPLACE_FUNCS(dup2 getcwd strdup)
2620 AC_CHECK_FUNCS(getpgrp,
2621 AC_TRY_COMPILE([#include <unistd.h>],
2623 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2624 [Define if getpgrp() must be called as getpgrp(0).])
2627 AC_CHECK_FUNCS(setpgrp,
2628 AC_TRY_COMPILE([#include <unistd.h>],
2630 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2631 [Define if setpgrp() must be called as setpgrp(0, 0).])
2634 AC_CHECK_FUNCS(gettimeofday,
2635 AC_TRY_COMPILE([#include <sys/time.h>],
2636 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2637 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2638 [Define if gettimeofday() does not have second (timezone) argument
2639 This is the case on Motorola V4 (R40V4.2)])
2643 AC_MSG_CHECKING(for major, minor, and makedev)
2645 #if defined(MAJOR_IN_MKDEV)
2646 #include <sys/mkdev.h>
2647 #elif defined(MAJOR_IN_SYSMACROS)
2648 #include <sys/sysmacros.h>
2650 #include <sys/types.h>
2653 makedev(major(0),minor(0));
2655 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2656 [Define to 1 if you have the device macros.])
2662 # On OSF/1 V5.1, getaddrinfo is available, but a define
2663 # for [no]getaddrinfo in netdb.h.
2664 AC_MSG_CHECKING(for getaddrinfo)
2666 #include <sys/types.h>
2667 #include <sys/socket.h>
2671 getaddrinfo(NULL, NULL, NULL, NULL);
2674 AC_MSG_CHECKING(getaddrinfo bug)
2676 #include <sys/types.h>
2679 #include <sys/socket.h>
2680 #include <netinet/in.h>
2684 int passive, gaierr, inet4 = 0, inet6 = 0;
2685 struct addrinfo hints, *ai, *aitop;
2686 char straddr[INET6_ADDRSTRLEN], strport[16];
2688 for (passive = 0; passive <= 1; passive++) {
2689 memset(&hints, 0, sizeof(hints));
2690 hints.ai_family = AF_UNSPEC;
2691 hints.ai_flags = passive ? AI_PASSIVE : 0;
2692 hints.ai_socktype = SOCK_STREAM;
2693 hints.ai_protocol = IPPROTO_TCP;
2694 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2695 (void)gai_strerror(gaierr);
2698 for (ai = aitop; ai; ai = ai->ai_next) {
2699 if (ai->ai_addr == NULL ||
2700 ai->ai_addrlen == 0 ||
2701 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2702 straddr, sizeof(straddr), strport, sizeof(strport),
2703 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2706 switch (ai->ai_family) {
2708 if (strcmp(strport, "54321") != 0) {
2712 if (strcmp(straddr, "0.0.0.0") != 0) {
2716 if (strcmp(straddr, "127.0.0.1") != 0) {
2723 if (strcmp(strport, "54321") != 0) {
2727 if (strcmp(straddr, "::") != 0) {
2731 if (strcmp(straddr, "::1") != 0) {
2741 /* another family support? */
2747 if (!(inet4 == 0 || inet4 == 2))
2749 if (!(inet6 == 0 || inet6 == 2))
2753 freeaddrinfo(aitop);
2758 freeaddrinfo(aitop);
2763 buggygetaddrinfo=no,
2764 AC_MSG_RESULT(buggy)
2765 buggygetaddrinfo=yes,
2766 AC_MSG_RESULT(buggy)
2767 buggygetaddrinfo=yes)], [
2769 buggygetaddrinfo=yes
2772 if test "$buggygetaddrinfo" = "yes"; then
2773 if test "$ipv6" = "yes"; then
2774 echo 'Fatal: You must get working getaddrinfo() function.'
2775 echo ' or you can specify "--disable-ipv6"'.
2779 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
2781 AC_CHECK_FUNCS(getnameinfo)
2783 # checks for structures
2787 AC_CHECK_MEMBERS([struct stat.st_rdev])
2788 AC_CHECK_MEMBERS([struct stat.st_blksize])
2789 AC_CHECK_MEMBERS([struct stat.st_flags])
2790 AC_CHECK_MEMBERS([struct stat.st_gen])
2791 AC_CHECK_MEMBERS([struct stat.st_birthtime])
2794 AC_MSG_CHECKING(for time.h that defines altzone)
2795 AC_CACHE_VAL(ac_cv_header_time_altzone,
2796 [AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2797 ac_cv_header_time_altzone=yes,
2798 ac_cv_header_time_altzone=no)])
2799 AC_MSG_RESULT($ac_cv_header_time_altzone)
2800 if test $ac_cv_header_time_altzone = yes; then
2801 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
2805 AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
2807 #include <sys/types.h>
2808 #include <sys/select.h>
2809 #include <sys/time.h>
2811 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2812 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2813 (which you can't on SCO ODT 3.0).])
2816 AC_MSG_RESULT($was_it_defined)
2818 AC_MSG_CHECKING(for addrinfo)
2819 AC_CACHE_VAL(ac_cv_struct_addrinfo,
2821 # include <netdb.h>],
2822 [struct addrinfo a],
2823 ac_cv_struct_addrinfo=yes,
2824 ac_cv_struct_addrinfo=no))
2825 AC_MSG_RESULT($ac_cv_struct_addrinfo)
2826 if test $ac_cv_struct_addrinfo = yes; then
2827 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
2830 AC_MSG_CHECKING(for sockaddr_storage)
2831 AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2833 # include <sys/types.h>
2834 # include <sys/socket.h>],
2835 [struct sockaddr_storage s],
2836 ac_cv_struct_sockaddr_storage=yes,
2837 ac_cv_struct_sockaddr_storage=no))
2838 AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2839 if test $ac_cv_struct_sockaddr_storage = yes; then
2840 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
2843 # checks for compiler characteristics
2849 AC_MSG_CHECKING(for working volatile)
2850 AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2851 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2853 AC_MSG_RESULT($works)
2856 AC_MSG_CHECKING(for working signed char)
2857 AC_TRY_COMPILE([], [signed char c;], works=yes,
2858 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2860 AC_MSG_RESULT($works)
2863 AC_MSG_CHECKING(for prototypes)
2864 AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2865 AC_DEFINE(HAVE_PROTOTYPES, 1,
2866 [Define if your compiler supports function prototype])
2869 AC_MSG_RESULT($have_prototypes)
2872 AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
2875 int foo(int x, ...) {
2883 ], [return foo(10, "", 3.14);], [
2884 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2885 [Define if your compiler supports variable length function prototypes
2886 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2889 AC_MSG_RESULT($works)
2891 # check for socketpair
2892 AC_MSG_CHECKING(for socketpair)
2894 #include <sys/types.h>
2895 #include <sys/socket.h>
2896 ], void *x=socketpair,
2897 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
2902 # check if sockaddr has sa_len member
2903 AC_MSG_CHECKING(if sockaddr has sa_len member)
2904 AC_TRY_COMPILE([#include <sys/types.h>
2905 #include <sys/socket.h>],
2909 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
2913 AC_MSG_CHECKING(whether va_list is an array)
2915 #ifdef HAVE_STDARG_PROTOTYPES
2918 #include <varargs.h>
2920 ], [va_list list1, list2; list1 = list2;], , [
2921 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
2922 va_list_is_array=yes
2924 AC_MSG_RESULT($va_list_is_array)
2926 # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
2927 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
2928 [Define this if you have some version of gethostbyname_r()])
2930 AC_CHECK_FUNC(gethostbyname_r, [
2931 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2932 AC_MSG_CHECKING([gethostbyname_r with 6 args])
2934 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
2939 struct hostent *he, *res;
2944 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
2946 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2947 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
2948 [Define this if you have the 6-arg version of gethostbyname_r().])
2952 AC_MSG_CHECKING([gethostbyname_r with 5 args])
2962 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
2964 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2965 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
2966 [Define this if you have the 5-arg version of gethostbyname_r().])
2970 AC_MSG_CHECKING([gethostbyname_r with 3 args])
2976 struct hostent_data data;
2978 (void) gethostbyname_r(name, he, &data);
2980 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2981 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
2982 [Define this if you have the 3-arg version of gethostbyname_r().])
2991 AC_CHECK_FUNCS(gethostbyname)
2993 AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
2994 AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
2995 AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
2996 AC_SUBST(HAVE_GETHOSTBYNAME_R)
2997 AC_SUBST(HAVE_GETHOSTBYNAME)
2999 # checks for system services
3002 # Linux requires this for correct f.p. operations
3003 AC_CHECK_FUNC(__fpu_control,
3005 [AC_CHECK_LIB(ieee, __fpu_control)
3008 # Check for --with-fpectl
3009 AC_MSG_CHECKING(for --with-fpectl)
3011 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
3013 if test "$withval" != no
3015 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
3016 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
3018 else AC_MSG_RESULT(no)
3020 [AC_MSG_RESULT(no)])
3022 # check for --with-libm=...
3024 case $ac_sys_system in
3028 AC_MSG_CHECKING(for --with-libm=STRING)
3030 AC_HELP_STRING(--with-libm=STRING, math library),
3032 if test "$withval" = no
3034 AC_MSG_RESULT(force LIBM empty)
3035 elif test "$withval" != yes
3037 AC_MSG_RESULT(set LIBM="$withval")
3038 else AC_MSG_ERROR([proper usage is --with-libm=STRING])
3040 [AC_MSG_RESULT(default LIBM="$LIBM")])
3042 # check for --with-libc=...
3044 AC_MSG_CHECKING(for --with-libc=STRING)
3046 AC_HELP_STRING(--with-libc=STRING, C library),
3048 if test "$withval" = no
3050 AC_MSG_RESULT(force LIBC empty)
3051 elif test "$withval" != yes
3053 AC_MSG_RESULT(set LIBC="$withval")
3054 else AC_MSG_ERROR([proper usage is --with-libc=STRING])
3056 [AC_MSG_RESULT(default LIBC="$LIBC")])
3058 # ************************************
3059 # * Check for mathematical functions *
3060 # ************************************
3065 # Detect whether system arithmetic is subject to x87-style double
3066 # rounding issues. The result of this test has little meaning on non
3067 # IEEE 754 platforms. On IEEE 754, test should return 1 if rounding
3068 # mode is round-to-nearest and double rounding issues are present, and
3069 # 0 otherwise. See http://bugs.python.org/issue2937 for more info.
3070 AC_MSG_CHECKING(for x87-style double rounding)
3071 AC_CACHE_VAL(ac_cv_x87_double_rounding, [
3076 volatile double x, y, z;
3077 /* 1./(1-2**-53) -> 1+2**-52 (correct), 1.0 (double rounding) */
3078 x = 0.99999999999999989; /* 1-2**-53 */
3082 /* 1e16+2.99999 -> 1e16+2. (correct), 1e16+4. (double rounding) */
3088 /* both tests show evidence of double rounding */
3092 ac_cv_x87_double_rounding=no,
3093 ac_cv_x87_double_rounding=yes,
3094 ac_cv_x87_double_rounding=no)])
3095 AC_MSG_RESULT($ac_cv_x87_double_rounding)
3096 if test "$ac_cv_x87_double_rounding" = yes
3098 AC_DEFINE(X87_DOUBLE_ROUNDING, 1,
3099 [Define if arithmetic is subject to x87-style double rounding issue])
3103 # On FreeBSD 6.2, it appears that tanh(-0.) returns 0. instead of
3104 # -0. on some architectures.
3105 AC_MSG_CHECKING(whether tanh preserves the sign of zero)
3106 AC_CACHE_VAL(ac_cv_tanh_preserves_zero_sign, [
3111 /* return 0 if either negative zeros don't exist
3112 on this platform or if negative zeros exist
3113 and tanh(-0.) == -0. */
3114 if (atan2(0., -1.) == atan2(-0., -1.) ||
3115 atan2(tanh(-0.), -1.) == atan2(-0., -1.)) exit(0);
3119 ac_cv_tanh_preserves_zero_sign=yes,
3120 ac_cv_tanh_preserves_zero_sign=no,
3121 ac_cv_tanh_preserves_zero_sign=no)])
3122 AC_MSG_RESULT($ac_cv_tanh_preserves_zero_sign)
3123 if test "$ac_cv_tanh_preserves_zero_sign" = yes
3125 AC_DEFINE(TANH_PRESERVES_ZERO_SIGN, 1,
3126 [Define if tanh(-0.) is -0., or if platform doesn't have signed zeros])
3129 AC_CHECK_FUNCS([acosh asinh atanh copysign expm1 finite hypot log1p])
3130 AC_CHECK_DECLS([isinf, isnan, isfinite], [], [], [[#include <math.h>]])
3134 # determine what size digit to use for Python's longs
3135 AC_MSG_CHECKING([digit size for Python's longs])
3136 AC_ARG_ENABLE(big-digits,
3137 AC_HELP_STRING([--enable-big-digits@<:@=BITS@:>@],[use big digits for Python longs [[BITS=30]]]),
3138 [case $enable_big_digits in
3140 enable_big_digits=30 ;;
3142 enable_big_digits=15 ;;
3146 AC_MSG_ERROR([bad value $enable_big_digits for --enable-big-digits; value should be 15 or 30]) ;;
3148 AC_MSG_RESULT($enable_big_digits)
3149 AC_DEFINE_UNQUOTED(PYLONG_BITS_IN_DIGIT, $enable_big_digits, [Define as the preferred size in bits of long digits])
3151 [AC_MSG_RESULT(no value specified)])
3154 AC_CHECK_HEADER(wchar.h, [
3155 AC_DEFINE(HAVE_WCHAR_H, 1,
3156 [Define if the compiler provides a wchar.h header file.])
3162 # determine wchar_t size
3163 if test "$wchar_h" = yes
3165 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
3168 AC_MSG_CHECKING(for UCS-4 tcl)
3172 #if TCL_UTF_MAX != 6
3173 # error "NOT UCS4_TCL"
3175 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
3178 AC_MSG_RESULT($have_ucs4_tcl)
3180 # check whether wchar_t is signed or not
3181 if test "$wchar_h" = yes
3183 # check whether wchar_t is signed or not
3184 AC_MSG_CHECKING(whether wchar_t is signed)
3185 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
3190 /* Success: exit code 0 */
3191 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1);
3194 ac_cv_wchar_t_signed=yes,
3195 ac_cv_wchar_t_signed=no,
3196 ac_cv_wchar_t_signed=yes)])
3197 AC_MSG_RESULT($ac_cv_wchar_t_signed)
3200 AC_MSG_CHECKING(what type to use for str)
3201 AC_ARG_WITH(wide-unicode,
3202 AC_HELP_STRING(--with-wide-unicode, Use 4-byte Unicode characters (default is 2 bytes)),
3204 if test "$withval" != no
3205 then unicode_size="4"
3206 else unicode_size="2"
3210 case "$have_ucs4_tcl" in
3211 yes) unicode_size="4" ;;
3212 *) unicode_size="2" ;;
3216 AH_TEMPLATE(Py_UNICODE_SIZE,
3217 [Define as the size of the unicode type.])
3218 case "$unicode_size" in
3219 4) AC_DEFINE(Py_UNICODE_SIZE, 4) ;;
3220 *) AC_DEFINE(Py_UNICODE_SIZE, 2) ;;
3223 AH_TEMPLATE(PY_UNICODE_TYPE,
3224 [Define as the integral type used for Unicode representation.])
3226 # wchar_t is only usable if it maps to an unsigned type
3227 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
3228 -a "$ac_cv_wchar_t_signed" = "no"
3230 PY_UNICODE_TYPE="wchar_t"
3231 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
3232 [Define if you have a useable wchar_t type defined in wchar.h; useable
3233 means wchar_t must be an unsigned type with at least 16 bits. (see
3234 Include/unicodeobject.h).])
3235 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
3236 elif test "$ac_cv_sizeof_short" = "$unicode_size"
3238 PY_UNICODE_TYPE="unsigned short"
3239 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
3240 elif test "$ac_cv_sizeof_long" = "$unicode_size"
3242 PY_UNICODE_TYPE="unsigned long"
3243 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
3245 PY_UNICODE_TYPE="no type found"
3247 AC_MSG_RESULT($PY_UNICODE_TYPE)
3249 # check for endianness
3252 # Check whether right shifting a negative integer extends the sign bit
3253 # or fills with zeros (like the Cray J90, according to Tim Peters).
3254 AC_MSG_CHECKING(whether right shift extends the sign bit)
3255 AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
3259 exit(((-1)>>3 == -1) ? 0 : 1);
3262 ac_cv_rshift_extends_sign=yes,
3263 ac_cv_rshift_extends_sign=no,
3264 ac_cv_rshift_extends_sign=yes)])
3265 AC_MSG_RESULT($ac_cv_rshift_extends_sign)
3266 if test "$ac_cv_rshift_extends_sign" = no
3268 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
3269 [Define if i>>j for signed int i does not extend the sign bit
3273 # check for getc_unlocked and related locking functions
3274 AC_MSG_CHECKING(for getc_unlocked() and friends)
3275 AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
3276 AC_TRY_LINK([#include <stdio.h>],[
3277 FILE *f = fopen("/dev/null", "r");
3281 ], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
3282 AC_MSG_RESULT($ac_cv_have_getc_unlocked)
3283 if test "$ac_cv_have_getc_unlocked" = yes
3285 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
3286 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
3289 # check where readline lives
3290 # save the value of LIBS so we don't actually link Python with readline
3291 LIBS_no_readline=$LIBS
3293 # On some systems we need to link readline to a termcap compatible
3294 # library. NOTE: Keep the precedence of listed libraries synchronised
3296 py_cv_lib_readline=no
3297 AC_MSG_CHECKING([how to link readline libs])
3298 for py_libtermcap in "" ncursesw ncurses curses termcap; do
3299 if test -z "$py_libtermcap"; then
3300 READLINE_LIBS="-lreadline"
3302 READLINE_LIBS="-lreadline -l$py_libtermcap"
3304 LIBS="$READLINE_LIBS $LIBS_no_readline"
3306 [AC_LANG_CALL([],[readline])],
3307 [py_cv_lib_readline=yes])
3308 if test $py_cv_lib_readline = yes; then
3312 # Uncomment this line if you want to use READINE_LIBS in Makefile or scripts
3313 #AC_SUBST([READLINE_LIBS])
3314 if test $py_cv_lib_readline = no; then
3315 AC_MSG_RESULT([none])
3317 AC_MSG_RESULT([$READLINE_LIBS])
3318 AC_DEFINE(HAVE_LIBREADLINE, 1,
3319 [Define if you have the readline library (-lreadline).])
3322 # check for readline 2.1
3323 AC_CHECK_LIB(readline, rl_callback_handler_install,
3324 AC_DEFINE(HAVE_RL_CALLBACK, 1,
3325 [Define if you have readline 2.1]), ,$READLINE_LIBS)
3327 # check for readline 2.2
3328 AC_TRY_CPP([#include <readline/readline.h>],
3329 have_readline=yes, have_readline=no)
3330 if test $have_readline = yes
3332 AC_EGREP_HEADER([extern int rl_completion_append_character;],
3333 [readline/readline.h],
3334 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
3335 [Define if you have readline 2.2]), )
3338 # check for readline 4.0
3339 AC_CHECK_LIB(readline, rl_pre_input_hook,
3340 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
3341 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3344 AC_CHECK_LIB(readline, rl_completion_display_matches_hook,
3345 AC_DEFINE(HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK, 1,
3346 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3348 # check for readline 4.2
3349 AC_CHECK_LIB(readline, rl_completion_matches,
3350 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
3351 [Define if you have readline 4.2]), ,$READLINE_LIBS)
3353 # also in readline 4.2
3354 AC_TRY_CPP([#include <readline/readline.h>],
3355 have_readline=yes, have_readline=no)
3356 if test $have_readline = yes
3358 AC_EGREP_HEADER([extern int rl_catch_signals;],
3359 [readline/readline.h],
3360 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
3361 [Define if you can turn off readline's signal handling.]), )
3364 # End of readline checks: restore LIBS
3365 LIBS=$LIBS_no_readline
3367 AC_MSG_CHECKING(for broken nice())
3368 AC_CACHE_VAL(ac_cv_broken_nice, [
3373 if (val1 != -1 && val1 == nice(2))
3378 ac_cv_broken_nice=yes,
3379 ac_cv_broken_nice=no,
3380 ac_cv_broken_nice=no)])
3381 AC_MSG_RESULT($ac_cv_broken_nice)
3382 if test "$ac_cv_broken_nice" = yes
3384 AC_DEFINE(HAVE_BROKEN_NICE, 1,
3385 [Define if nice() returns success/failure instead of the new priority.])
3388 AC_MSG_CHECKING(for broken poll())
3394 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
3398 int poll_test = poll (&poll_struct, 1, 0);
3404 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
3414 ac_cv_broken_poll=yes,
3415 ac_cv_broken_poll=no,
3416 ac_cv_broken_poll=no)
3417 AC_MSG_RESULT($ac_cv_broken_poll)
3418 if test "$ac_cv_broken_poll" = yes
3420 AC_DEFINE(HAVE_BROKEN_POLL, 1,
3421 [Define if poll() sets errno on invalid file descriptors.])
3424 # Before we can test tzset, we need to check if struct tm has a tm_zone
3425 # (which is not required by ISO C or UNIX spec) and/or if we support
3429 # check tzset(3) exists and works like we expect it to
3430 AC_MSG_CHECKING(for working tzset())
3431 AC_CACHE_VAL(ac_cv_working_tzset, [
3438 extern char *tzname[];
3443 /* Note that we need to ensure that not only does tzset(3)
3444 do 'something' with localtime, but it works as documented
3445 in the library reference and as expected by the test suite.
3446 This includes making sure that tzname is set properly if
3447 tm->tm_zone does not exist since it is the alternative way
3448 of getting timezone info.
3450 Red Hat 6.2 doesn't understand the southern hemisphere
3451 after New Year's Day.
3454 time_t groundhogday = 1044144000; /* GMT-based */
3455 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
3459 if (localtime(&groundhogday)->tm_hour != 0)
3462 /* For UTC, tzname[1] is sometimes "", sometimes " " */
3463 if (strcmp(tzname[0], "UTC") ||
3464 (tzname[1][0] != 0 && tzname[1][0] != ' '))
3468 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
3470 if (localtime(&groundhogday)->tm_hour != 19)
3473 if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT"))
3477 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
3479 if (localtime(&groundhogday)->tm_hour != 11)
3482 if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT"))
3486 #if HAVE_STRUCT_TM_TM_ZONE
3487 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
3489 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
3496 ac_cv_working_tzset=yes,
3497 ac_cv_working_tzset=no,
3498 ac_cv_working_tzset=no)])
3499 AC_MSG_RESULT($ac_cv_working_tzset)
3500 if test "$ac_cv_working_tzset" = yes
3502 AC_DEFINE(HAVE_WORKING_TZSET, 1,
3503 [Define if tzset() actually switches the local timezone in a meaningful way.])
3506 # Look for subsecond timestamps in struct stat
3507 AC_MSG_CHECKING(for tv_nsec in struct stat)
3508 AC_CACHE_VAL(ac_cv_stat_tv_nsec,
3509 AC_TRY_COMPILE([#include <sys/stat.h>], [
3511 st.st_mtim.tv_nsec = 1;
3513 ac_cv_stat_tv_nsec=yes,
3514 ac_cv_stat_tv_nsec=no,
3515 ac_cv_stat_tv_nsec=no))
3516 AC_MSG_RESULT($ac_cv_stat_tv_nsec)
3517 if test "$ac_cv_stat_tv_nsec" = yes
3519 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
3520 [Define if you have struct stat.st_mtim.tv_nsec])
3523 # Look for BSD style subsecond timestamps in struct stat
3524 AC_MSG_CHECKING(for tv_nsec2 in struct stat)
3525 AC_CACHE_VAL(ac_cv_stat_tv_nsec2,
3526 AC_TRY_COMPILE([#include <sys/stat.h>], [
3528 st.st_mtimespec.tv_nsec = 1;
3530 ac_cv_stat_tv_nsec2=yes,
3531 ac_cv_stat_tv_nsec2=no,
3532 ac_cv_stat_tv_nsec2=no))
3533 AC_MSG_RESULT($ac_cv_stat_tv_nsec2)
3534 if test "$ac_cv_stat_tv_nsec2" = yes
3536 AC_DEFINE(HAVE_STAT_TV_NSEC2, 1,
3537 [Define if you have struct stat.st_mtimensec])
3540 # On HP/UX 11.0, mvwdelch is a block with a return statement
3541 AC_MSG_CHECKING(whether mvwdelch is an expression)
3542 AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
3543 AC_TRY_COMPILE([#include <curses.h>], [
3545 rtn = mvwdelch(0,0,0);
3546 ], ac_cv_mvwdelch_is_expression=yes,
3547 ac_cv_mvwdelch_is_expression=no,
3548 ac_cv_mvwdelch_is_expression=yes))
3549 AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
3551 if test "$ac_cv_mvwdelch_is_expression" = yes
3553 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
3554 [Define if mvwdelch in curses.h is an expression.])
3557 AC_MSG_CHECKING(whether WINDOW has _flags)
3558 AC_CACHE_VAL(ac_cv_window_has_flags,
3559 AC_TRY_COMPILE([#include <curses.h>], [
3562 ], ac_cv_window_has_flags=yes,
3563 ac_cv_window_has_flags=no,
3564 ac_cv_window_has_flags=no))
3565 AC_MSG_RESULT($ac_cv_window_has_flags)
3568 if test "$ac_cv_window_has_flags" = yes
3570 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3571 [Define if WINDOW in curses.h offers a field _flags.])
3574 AC_MSG_CHECKING(for is_term_resized)
3575 AC_TRY_COMPILE([#include <curses.h>], void *x=is_term_resized,
3576 AC_DEFINE(HAVE_CURSES_IS_TERM_RESIZED, 1, Define if you have the 'is_term_resized' function.)
3581 AC_MSG_CHECKING(for resize_term)
3582 AC_TRY_COMPILE([#include <curses.h>], void *x=resize_term,
3583 AC_DEFINE(HAVE_CURSES_RESIZE_TERM, 1, Define if you have the 'resize_term' function.)
3588 AC_MSG_CHECKING(for resizeterm)
3589 AC_TRY_COMPILE([#include <curses.h>], void *x=resizeterm,
3590 AC_DEFINE(HAVE_CURSES_RESIZETERM, 1, Define if you have the 'resizeterm' function.)
3595 AC_MSG_CHECKING(for /dev/ptmx)
3597 if test -r /dev/ptmx
3600 AC_DEFINE(HAVE_DEV_PTMX, 1,
3601 [Define if we have /dev/ptmx.])
3606 AC_MSG_CHECKING(for /dev/ptc)
3611 AC_DEFINE(HAVE_DEV_PTC, 1,
3612 [Define if we have /dev/ptc.])
3617 AC_MSG_CHECKING(for %zd printf() format support)
3618 AC_TRY_RUN([#include <stdio.h>
3622 #ifdef HAVE_SYS_TYPES_H
3623 #include <sys/types.h>
3627 typedef ssize_t Py_ssize_t;
3628 #elif SIZEOF_VOID_P == SIZEOF_LONG
3629 typedef long Py_ssize_t;
3631 typedef int Py_ssize_t;
3638 if(sprintf(buffer, "%zd", (size_t)123) < 0)
3641 if (strcmp(buffer, "123"))
3644 if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
3647 if (strcmp(buffer, "-123"))
3653 AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
3656 AC_CHECK_TYPE(socklen_t,,
3657 AC_DEFINE(socklen_t,int,
3658 Define to `int' if <sys/socket.h> does not define.),[
3659 #ifdef HAVE_SYS_TYPES_H
3660 #include <sys/types.h>
3662 #ifdef HAVE_SYS_SOCKET_H
3663 #include <sys/socket.h>
3667 AC_MSG_CHECKING(for broken mbstowcs)
3672 const char *str = "text";
3673 len = mbstowcs(NULL, str, 0);
3677 ac_cv_broken_mbstowcs=no,
3678 ac_cv_broken_mbstowcs=yes,
3679 ac_cv_broken_mbstowcs=no)
3680 AC_MSG_RESULT($ac_cv_broken_mbstowcs)
3681 if test "$ac_cv_broken_mbstowcs" = yes
3683 AC_DEFINE(HAVE_BROKEN_MBSTOWCS, 1,
3684 [Define if mbstowcs(NULL, "text", 0) does not return the number of
3685 wide chars that would be converted.])
3688 # Check for --with-computed-gotos
3689 AC_MSG_CHECKING(for --with-computed-gotos)
3690 AC_ARG_WITH(computed-gotos,
3691 AC_HELP_STRING(--with-computed-gotos,
3692 Use computed gotos / threaded dispatch in evaluation loop (not available on all compilers)),
3694 if test "$withval" != no
3696 AC_DEFINE(USE_COMPUTED_GOTOS, 1,
3697 [Define if you want to use computed gotos in ceval.c.])
3699 else AC_MSG_RESULT(no)
3701 [AC_MSG_RESULT(no)])
3704 AC_SUBST(THREADHEADERS)
3706 for h in `(cd $srcdir;echo Python/thread_*.h)`
3708 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3712 SRCDIRS="Parser Grammar Objects Python Modules Mac"
3713 AC_MSG_CHECKING(for build directories)
3714 for dir in $SRCDIRS; do
3715 if test ! -d $dir; then
3721 # generate output files
3722 AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
3725 echo "creating Modules/Setup"
3726 if test ! -f Modules/Setup
3728 cp $srcdir/Modules/Setup.dist Modules/Setup
3731 echo "creating Modules/Setup.local"
3732 if test ! -f Modules/Setup.local
3734 echo "# Edit this file for local setup changes" >Modules/Setup.local
3737 echo "creating Makefile"
3738 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3739 -s Modules Modules/Setup.config \
3740 Modules/Setup.local Modules/Setup