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, 2.7)
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"
158 FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools"
161 if test "x${prefix}" = "xNONE" ; then
162 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
164 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
166 prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
168 # Add files for Mac specific code to the list of output
170 AC_CONFIG_FILES(Mac/Makefile)
171 AC_CONFIG_FILES(Mac/PythonLauncher/Makefile)
172 AC_CONFIG_FILES(Mac/IDLE/Makefile)
173 AC_CONFIG_FILES(Mac/Resources/framework/Info.plist)
174 AC_CONFIG_FILES(Mac/Resources/app/Info.plist)
178 PYTHONFRAMEWORKDIR=no-framework
179 PYTHONFRAMEWORKPREFIX=
180 PYTHONFRAMEWORKINSTALLDIR=
181 FRAMEWORKINSTALLFIRST=
182 FRAMEWORKINSTALLLAST=
183 FRAMEWORKALTINSTALLFIRST=
184 FRAMEWORKALTINSTALLLAST=
185 if test "x${prefix}" = "xNONE" ; then
186 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
188 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
192 if test "$UNIVERSAL_ARCHS" = "all"
194 FRAMEWORKINSTALLLAST=update4wayuniversal
195 FRAMEWORKALTINSTALLLAST=update4wayuniversal
198 AC_SUBST(PYTHONFRAMEWORK)
199 AC_SUBST(PYTHONFRAMEWORKIDENTIFIER)
200 AC_SUBST(PYTHONFRAMEWORKDIR)
201 AC_SUBST(PYTHONFRAMEWORKPREFIX)
202 AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)
203 AC_SUBST(FRAMEWORKINSTALLFIRST)
204 AC_SUBST(FRAMEWORKINSTALLLAST)
205 AC_SUBST(FRAMEWORKALTINSTALLFIRST)
206 AC_SUBST(FRAMEWORKALTINSTALLLAST)
207 AC_SUBST(FRAMEWORKUNIXTOOLSPREFIX)
210 ## AC_HELP_STRING(--with-dyld,
211 ## Use (OpenStep|Rhapsody) dynamic linker))
213 # Set name for machine-dependent library files
215 AC_MSG_CHECKING(MACHDEP)
216 if test -z "$MACHDEP"
218 ac_sys_system=`uname -s`
219 if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \
220 -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
221 ac_sys_release=`uname -v`
223 ac_sys_release=`uname -r`
225 ac_md_system=`echo $ac_sys_system |
226 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
227 ac_md_release=`echo $ac_sys_release |
228 tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
229 MACHDEP="$ac_md_system$ac_md_release"
232 cygwin*) MACHDEP="cygwin";;
233 darwin*) MACHDEP="darwin";;
234 atheos*) MACHDEP="atheos";;
235 irix646) MACHDEP="irix6";;
236 '') MACHDEP="unknown";;
240 # Some systems cannot stand _XOPEN_SOURCE being defined at all; they
241 # disable features if it is defined, without any means to access these
242 # features as extensions. For these systems, we skip the definition of
243 # _XOPEN_SOURCE. Before adding a system to the list to gain access to
244 # some feature, make sure there is no alternative way to access this
245 # feature. Also, when using wildcards, make sure you have verified the
246 # need for not defining _XOPEN_SOURCE on all systems matching the
247 # wildcard, and that the wildcard does not include future systems
248 # (which may remove their limitations).
249 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
250 case $ac_sys_system/$ac_sys_release in
251 # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined,
252 # even though select is a POSIX function. Reported by J. Ribbens.
253 # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
254 OpenBSD/2.* | OpenBSD/3.@<:@0123456789@:>@ | OpenBSD/4.@<:@0123@:>@)
255 define_xopen_source=no
256 # OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is
257 # also defined. This can be overridden by defining _BSD_SOURCE
258 # As this has a different meaning on Linux, only define it on OpenBSD
259 AC_DEFINE(_BSD_SOURCE, 1, [Define on OpenBSD to activate all library features])
261 # Defining _XOPEN_SOURCE on NetBSD version prior to the introduction of
262 # _NETBSD_SOURCE disables certain features (eg. setgroups). Reported by
264 NetBSD/1.5 | NetBSD/1.5.* | NetBSD/1.6 | NetBSD/1.6.* | NetBSD/1.6@<:@A-S@:>@)
265 define_xopen_source=no;;
266 # On Solaris 2.6, sys/wait.h is inconsistent in the usage
267 # of union __?sigval. Reported by Stuart Bishop.
269 define_xopen_source=no;;
270 # On UnixWare 7, u_long is never defined with _XOPEN_SOURCE,
271 # but used in /usr/include/netinet/tcp.h. Reported by Tim Rice.
272 # Reconfirmed for 7.1.4 by Martin v. Loewis.
273 OpenUNIX/8.0.0| UnixWare/7.1.@<:@0-4@:>@)
274 define_xopen_source=no;;
275 # On OpenServer 5, u_short is never defined with _XOPEN_SOURCE,
276 # but used in struct sockaddr.sa_family. Reported by Tim Rice.
278 define_xopen_source=no;;
279 # On FreeBSD 4, the math functions C89 does not cover are never defined
280 # with _XOPEN_SOURCE and __BSD_VISIBLE does not re-enable them.
282 define_xopen_source=no;;
283 # On MacOS X 10.2, a bug in ncurses.h means that it craps out if
284 # _XOPEN_EXTENDED_SOURCE is defined. Apparently, this is fixed in 10.3, which
285 # identifies itself as Darwin/7.*
286 # On Mac OS X 10.4, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
287 # disables platform specific features beyond repair.
288 # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
289 # has no effect, don't bother defining them
290 Darwin/@<:@6789@:>@.*)
291 define_xopen_source=no;;
292 # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
293 # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
294 # or has another value. By not (re)defining it, the defaults come in place.
296 define_xopen_source=no;;
298 if test `uname -r` -eq 1; then
299 define_xopen_source=no
302 # On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from
303 # defining NI_NUMERICHOST.
305 define_xopen_source=no
310 if test $define_xopen_source = yes
312 # On Solaris w/ g++ it appears that _XOPEN_SOURCE has to be
313 # defined precisely as g++ defines it
314 # Furthermore, on Solaris 10, XPG6 requires the use of a C99
316 case $ac_sys_system/$ac_sys_release in
317 SunOS/5.8|SunOS/5.9|SunOS/5.10)
318 AC_DEFINE(_XOPEN_SOURCE, 500,
319 Define to the level of X/Open that your system supports)
322 AC_DEFINE(_XOPEN_SOURCE, 600,
323 Define to the level of X/Open that your system supports)
327 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
328 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
329 # several APIs are not declared. Since this is also needed in some
330 # cases for HP-UX, we define it globally.
331 # except for Solaris 10, where it must not be defined,
332 # as it implies XPG4.2
333 case $ac_sys_system/$ac_sys_release in
337 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1,
338 Define to activate Unix95-and-earlier features)
342 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
347 # SGI compilers allow the specification of the both the ABI and the
348 # ISA on the command line. Depending on the values of these switches,
349 # different and often incompatable code will be generated.
351 # The SGI_ABI variable can be used to modify the CC and LDFLAGS and
352 # thus supply support for various ABI/ISA combinations. The MACHDEP
353 # variable is also adjusted.
356 if test ! -z "$SGI_ABI"
359 LDFLAGS="$SGI_ABI $LDFLAGS"
360 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
362 AC_MSG_RESULT($MACHDEP)
364 # And add extra plat-mac for darwin
365 AC_SUBST(EXTRAPLATDIR)
366 AC_SUBST(EXTRAMACHDEPPATH)
367 AC_MSG_CHECKING(EXTRAPLATDIR)
368 if test -z "$EXTRAPLATDIR"
372 EXTRAPLATDIR="\$(PLATMACDIRS)"
373 EXTRAMACHDEPPATH="\$(PLATMACPATH)"
381 AC_MSG_RESULT($EXTRAPLATDIR)
383 # Record the configure-time value of MACOSX_DEPLOYMENT_TARGET,
384 # it may influence the way we can build extensions, so distutils
386 AC_SUBST(CONFIGURE_MACOSX_DEPLOYMENT_TARGET)
387 AC_SUBST(EXPORT_MACOSX_DEPLOYMENT_TARGET)
388 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
389 EXPORT_MACOSX_DEPLOYMENT_TARGET='#'
391 AC_MSG_CHECKING(machine type as reported by uname -m)
392 ac_sys_machine=`uname -m`
393 AC_MSG_RESULT($ac_sys_machine)
395 # checks for alternative programs
397 # compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
398 # for debug/optimization stuff. BASECFLAGS is for flags that are required
399 # just to get things to compile and link. Users are free to override OPT
400 # when running configure or make. The build should not break if they do.
401 # BASECFLAGS should generally not be messed with, however.
403 # XXX shouldn't some/most/all of this code be merged with the stuff later
404 # on that fiddles with OPT and BASECFLAGS?
405 AC_MSG_CHECKING(for --without-gcc)
407 AC_HELP_STRING(--without-gcc,never use gcc),
415 without_gcc=$withval;;
417 case $ac_sys_system in
425 BASECFLAGS="$BASECFLAGS -export pragma"
427 LDFLAGS="$LDFLAGS -nodup"
435 AC_MSG_ERROR([Unknown BeOS platform "$BE_HOST_CPU"])
438 AR="\$(srcdir)/Modules/ar_beos"
446 AC_MSG_RESULT($without_gcc)
448 # If the user switches compilers, we can't believe the cache
449 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
451 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
452 (it is also a good idea to do 'make clean' before compiling)])
459 AC_MSG_CHECKING(for --with-cxx-main=<compiler>)
460 AC_ARG_WITH(cxx_main,
461 AC_HELP_STRING([--with-cxx-main=<compiler>],
462 [compile main() and link python executable with C++ compiler]),
468 yes) with_cxx_main=yes
480 AC_MSG_RESULT($with_cxx_main)
486 gcc) AC_PATH_PROG(CXX, [g++], [g++], [notfound]) ;;
487 cc) AC_PATH_PROG(CXX, [c++], [c++], [notfound]) ;;
489 if test "$CXX" = "notfound"
496 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
497 if test "$CXX" = "notfound"
502 if test "$preset_cxx" != "$CXX"
506 By default, distutils will build C++ extension modules with "$CXX".
507 If this is not intended, then set CXX on the configure command line.
512 # checks for UNIX variants that set C preprocessor variables
515 # Check for unsupported systems
516 case $ac_sys_system/$ac_sys_release in
518 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
519 echo See README for details.
524 AC_MSG_CHECKING(for --with-suffix)
526 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
533 AC_MSG_RESULT($EXEEXT)
535 # Test whether we're running on a non-case-sensitive system, in which
536 # case we give a warning if no ext is given
537 AC_SUBST(BUILDEXEEXT)
538 AC_MSG_CHECKING(for case-insensitive build directory)
539 if test ! -d CaseSensitiveTestDir; then
540 mkdir CaseSensitiveTestDir
543 if test -d casesensitivetestdir
551 rmdir CaseSensitiveTestDir
556 gcc) CC="$CC -D_HAVE_BSDI";;
560 case $ac_sys_system in
563 cc|*/cc) CC="$CC -Ae";;
567 cc) CC="$CC -Wl,-Bexport";;
570 # Some functions have a prototype only with that define, e.g. confstr
571 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
577 AC_MSG_CHECKING(LIBRARY)
578 if test -z "$LIBRARY"
580 LIBRARY='libpython$(VERSION).a'
582 AC_MSG_RESULT($LIBRARY)
584 # LDLIBRARY is the name of the library to link against (as opposed to the
585 # name of the library into which to insert object files). BLDLIBRARY is also
586 # the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
587 # is blank as the main program is not linked directly against LDLIBRARY.
588 # LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
589 # systems without shared libraries, LDLIBRARY is the same as LIBRARY
590 # (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
591 # DLLLIBRARY is the shared (i.e., DLL) library.
593 # RUNSHARED is used to run shared python without installed libraries
595 # INSTSONAME is the name of the shared library that will be use to install
596 # on the system - some systems like version suffix, others don't
600 AC_SUBST(LDLIBRARYDIR)
604 BLDLIBRARY='$(LDLIBRARY)'
605 INSTSONAME='$(LDLIBRARY)'
610 # LINKCC is the command that links the python executable -- default is $(CC).
611 # If CXX is set, and if it is needed to link a main function that was
612 # compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
613 # python might then depend on the C++ runtime
614 # This is altered for AIX in order to build the export list before
617 AC_MSG_CHECKING(LINKCC)
620 LINKCC='$(PURIFY) $(MAINCC)'
621 case $ac_sys_system in
624 if test $ac_sys_release -ge 5 -o \
625 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
628 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
630 LINKCC="$LINKCC -L/usr/lib/ia64l64";;
632 # qcc must be used because the other compilers do not
637 AC_MSG_RESULT($LINKCC)
639 AC_MSG_CHECKING(for --enable-shared)
640 AC_ARG_ENABLE(shared,
641 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
643 if test -z "$enable_shared"
645 case $ac_sys_system in
647 enable_shared="yes";;
652 AC_MSG_RESULT($enable_shared)
654 AC_MSG_CHECKING(for --enable-profiling)
655 AC_ARG_ENABLE(profiling,
656 AC_HELP_STRING(--enable-profiling, enable C-level code profiling),
659 AC_TRY_RUN([int main() { return 0; }],
660 ac_enable_profiling="yes",
661 ac_enable_profiling="no",
662 ac_enable_profiling="no")
664 AC_MSG_RESULT($ac_enable_profiling)
666 case "$ac_enable_profiling" in
668 BASECFLAGS="-pg $BASECFLAGS"
669 LDFLAGS="-pg $LDFLAGS"
673 AC_MSG_CHECKING(LDLIBRARY)
675 # MacOSX framework builds need more magic. LDLIBRARY is the dynamic
676 # library that we build, but we do not want to link against it (we
677 # will find it with a -framework option). For this reason there is an
678 # extra variable BLDLIBRARY against which Python and the extension
679 # modules are linked, BLDLIBRARY. This is normally the same as
680 # LDLIBRARY, but empty for MacOSX framework builds.
681 if test "$enable_framework"
683 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
684 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
687 BLDLIBRARY='$(LDLIBRARY)'
690 # Other platforms follow
691 if test $enable_shared = "yes"; then
692 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
693 case $ac_sys_system in
695 LDLIBRARY='libpython$(VERSION).so'
698 LDLIBRARY='libpython$(VERSION).dll.a'
699 DLLLIBRARY='libpython$(VERSION).dll'
702 LDLIBRARY='libpython$(VERSION).so'
703 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
704 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
705 INSTSONAME="$LDLIBRARY".$SOVERSION
707 Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*)
708 LDLIBRARY='libpython$(VERSION).so'
709 BLDLIBRARY='-L. -lpython$(VERSION)'
710 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
711 case $ac_sys_system in
713 SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
716 INSTSONAME="$LDLIBRARY".$SOVERSION
721 LDLIBRARY='libpython$(VERSION).so'
724 LDLIBRARY='libpython$(VERSION).sl'
727 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
728 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
731 LDLIBRARY='libpython$(VERSION).so'
732 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
733 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
736 LDLIBRARY='libpython$(VERSION).so'
737 BLDLIBRARY='-L. -lpython$(VERSION)'
738 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
741 LDLIBRARY='libpython$(VERSION).dylib'
742 BLDLIBRARY='-L. -lpython$(VERSION)'
743 RUNSHARED='DYLD_LIBRARY_PATH=`pwd`:${DYLD_LIBRARY_PATH}'
747 else # shared is disabled
748 case $ac_sys_system in
750 BLDLIBRARY='$(LIBRARY)'
751 LDLIBRARY='libpython$(VERSION).dll.a'
756 AC_MSG_RESULT($LDLIBRARY)
760 AC_CHECK_PROGS(AR, ar aal, ar)
763 AC_CHECK_PROG(SVNVERSION, svnversion, found, not-found)
764 if test $SVNVERSION = found
766 SVNVERSION="svnversion \$(srcdir)"
768 SVNVERSION="echo exported"
773 # install -d does not work on BSDI or HP-UX
774 if test -z "$INSTALL"
776 INSTALL="${srcdir}/install-sh -c"
781 # Not every filesystem supports hard links
783 if test -z "$LN" ; then
784 case $ac_sys_system in
786 CYGWIN*) LN="ln -s";;
787 atheos*) LN="ln -s";;
792 # Check for --with-pydebug
793 AC_MSG_CHECKING(for --with-pydebug)
795 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
797 if test "$withval" != no
799 AC_DEFINE(Py_DEBUG, 1,
800 [Define if you want to build an interpreter with many run-time checks.])
803 else AC_MSG_RESULT(no); Py_DEBUG='false'
807 # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
808 # merged with this chunk of code?
810 # Optimizer/debugger flags
811 # ------------------------
812 # (The following bit of code is complicated enough - please keep things
813 # indented properly. Just pretend you're editing Python code. ;-)
815 # There are two parallel sets of case statements below, one that checks to
816 # see if OPT was set and one that does BASECFLAGS setting based upon
817 # compiler and platform. BASECFLAGS tweaks need to be made even if the
820 # tweak OPT based on compiler and platform, only if the user didn't set
821 # it on the command line
827 if test "$CC" != 'g++' ; then
828 STRICT_PROTO="-Wstrict-prototypes"
830 # For gcc 4.x we need to use -fwrapv so lets check if its supported
831 if "$CC" -v --help 2>/dev/null |grep -- -fwrapv > /dev/null; then
834 case $ac_cv_prog_cc_g in
836 if test "$Py_DEBUG" = 'true' ; then
837 # Optimization messes up debuggers, so turn it off for
839 OPT="-g -Wall $STRICT_PROTO"
841 OPT="-g $WRAP -O3 -Wall $STRICT_PROTO"
845 OPT="-O3 -Wall $STRICT_PROTO"
848 case $ac_sys_system in
849 SCO_SV*) OPT="$OPT -m486 -DSCO5"
859 # The current (beta) Monterey compiler dies with optimizations
860 # XXX what is Monterey? Does it still die w/ -O? Can we get rid of this?
861 case $ac_sys_system in
871 # The -arch flags for universal builds on OSX
872 UNIVERSAL_ARCH_FLAGS=
873 AC_SUBST(UNIVERSAL_ARCH_FLAGS)
875 # tweak BASECFLAGS based on compiler and platform
878 # Python violates C99 rules, by casting between incompatible
879 # pointer types. GCC may generate bad code as a result of that,
880 # so use -fno-strict-aliasing if supported.
881 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
883 CC="$CC -fno-strict-aliasing"
884 AC_TRY_RUN([int main() { return 0; }],
885 ac_cv_no_strict_aliasing_ok=yes,
886 ac_cv_no_strict_aliasing_ok=no,
887 ac_cv_no_strict_aliasing_ok=no)
889 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
890 if test $ac_cv_no_strict_aliasing_ok = yes
892 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
895 # if using gcc on alpha, use -mieee to get (near) full IEEE 754
896 # support. Without this, treatment of subnormals doesn't follow
898 case $ac_sys_machine in
900 BASECFLAGS="$BASECFLAGS -mieee"
904 case $ac_sys_system in
906 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
908 # is there any other compiler on Darwin besides gcc?
910 # -Wno-long-double, -no-cpp-precomp, and -mno-fused-madd
911 # used to be here, but non-Apple gcc doesn't accept them.
914 if test "${enable_universalsdk}"; then
915 UNIVERSAL_ARCH_FLAGS=""
916 if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
917 UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
920 elif test "$UNIVERSAL_ARCHS" = "64-bit" ; then
921 UNIVERSAL_ARCH_FLAGS="-arch ppc64 -arch x86_64"
923 elif test "$UNIVERSAL_ARCHS" = "all" ; then
924 UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
925 ARCH_RUN_32BIT="arch -i386 -ppc"
928 AC_MSG_ERROR([proper usage is --with-universalarch=32-bit|64-bit|all])
933 BASECFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${BASECFLAGS}"
934 tgt=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
935 if test "${UNIVERSALSDK}" != "/" -a "${tgt}" '>' '10.4' ; then
936 CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
940 # Calculate the right deployment target for this build.
942 cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
943 if test ${cur_target} '>' 10.2; then
946 if test "${UNIVERSAL_ARCHS}" = "all"; then
947 # Ensure that the default platform for a 4-way
948 # universal build is OSX 10.5, that's the first
949 # OS release where 4-way builds make sense.
952 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
954 # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
955 # environment with a value that is the same as what we'll use
956 # in the Makefile to ensure that we'll get the same compiler
957 # environment during configure and build time.
958 MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
959 export MACOSX_DEPLOYMENT_TARGET
960 EXPORT_MACOSX_DEPLOYMENT_TARGET=''
964 BASECFLAGS="$BASECFLAGS -mieee"
970 case $ac_sys_system in
972 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
975 BASECFLAGS="$BASECFLAGS -ieee -std"
978 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
984 if test "$Py_DEBUG" = 'true'; then
990 if test "$ac_arch_flags"
992 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
995 # disable check for icc since it seems to pass, but generates a warning
998 ac_cv_opt_olimit_ok=no
1001 AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
1002 AC_CACHE_VAL(ac_cv_opt_olimit_ok,
1004 CC="$CC -OPT:Olimit=0"
1005 AC_TRY_RUN([int main() { return 0; }],
1006 ac_cv_opt_olimit_ok=yes,
1007 ac_cv_opt_olimit_ok=no,
1008 ac_cv_opt_olimit_ok=no)
1010 AC_MSG_RESULT($ac_cv_opt_olimit_ok)
1011 if test $ac_cv_opt_olimit_ok = yes; then
1012 case $ac_sys_system in
1013 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
1014 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
1019 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
1023 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
1024 AC_CACHE_VAL(ac_cv_olimit_ok,
1026 CC="$CC -Olimit 1500"
1027 AC_TRY_RUN([int main() { return 0; }],
1028 ac_cv_olimit_ok=yes,
1032 AC_MSG_RESULT($ac_cv_olimit_ok)
1033 if test $ac_cv_olimit_ok = yes; then
1034 BASECFLAGS="$BASECFLAGS -Olimit 1500"
1038 # Check whether GCC supports PyArg_ParseTuple format
1039 if test "$GCC" = "yes"
1041 AC_MSG_CHECKING(whether gcc supports ParseTuple __format__)
1043 CFLAGS="$CFLAGS -Werror"
1045 void f(char*,...)__attribute((format(PyArg_ParseTuple, 1, 2)));
1047 AC_DEFINE(HAVE_ATTRIBUTE_FORMAT_PARSETUPLE, 1, [Define if GCC supports __attribute__((format(PyArg_ParseTuple, 2, 3)))])
1054 # On some compilers, pthreads are available without further options
1055 # (e.g. MacOS X). On some of these systems, the compiler will not
1056 # complain if unaccepted options are passed (e.g. gcc on Mac OS X).
1057 # So we have to see first whether pthreads are available without
1058 # options before we can check whether -Kpthread improves anything.
1059 AC_MSG_CHECKING(whether pthreads are available without options)
1060 AC_CACHE_VAL(ac_cv_pthread_is_default,
1062 #include <pthread.h>
1064 void* routine(void* p){return NULL;}
1068 if(pthread_create(&p,NULL,routine,NULL)!=0)
1070 (void)pthread_detach(p);
1075 ac_cv_pthread_is_default=yes
1079 ac_cv_pthread_is_default=no,
1080 ac_cv_pthread_is_default=no)
1082 AC_MSG_RESULT($ac_cv_pthread_is_default)
1085 if test $ac_cv_pthread_is_default = yes
1089 # -Kpthread, if available, provides the right #defines
1090 # and linker options to make pthread_create available
1091 # Some compilers won't report that they do not support -Kpthread,
1092 # so we need to run a program to see whether it really made the
1093 # function available.
1094 AC_MSG_CHECKING(whether $CC accepts -Kpthread)
1095 AC_CACHE_VAL(ac_cv_kpthread,
1099 #include <pthread.h>
1101 void* routine(void* p){return NULL;}
1105 if(pthread_create(&p,NULL,routine,NULL)!=0)
1107 (void)pthread_detach(p);
1115 AC_MSG_RESULT($ac_cv_kpthread)
1118 if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
1120 # -Kthread, if available, provides the right #defines
1121 # and linker options to make pthread_create available
1122 # Some compilers won't report that they do not support -Kthread,
1123 # so we need to run a program to see whether it really made the
1124 # function available.
1125 AC_MSG_CHECKING(whether $CC accepts -Kthread)
1126 AC_CACHE_VAL(ac_cv_kthread,
1130 #include <pthread.h>
1132 void* routine(void* p){return NULL;}
1136 if(pthread_create(&p,NULL,routine,NULL)!=0)
1138 (void)pthread_detach(p);
1146 AC_MSG_RESULT($ac_cv_kthread)
1149 if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
1151 # -pthread, if available, provides the right #defines
1152 # and linker options to make pthread_create available
1153 # Some compilers won't report that they do not support -pthread,
1154 # so we need to run a program to see whether it really made the
1155 # function available.
1156 AC_MSG_CHECKING(whether $CC accepts -pthread)
1157 AC_CACHE_VAL(ac_cv_thread,
1161 #include <pthread.h>
1163 void* routine(void* p){return NULL;}
1167 if(pthread_create(&p,NULL,routine,NULL)!=0)
1169 (void)pthread_detach(p);
1177 AC_MSG_RESULT($ac_cv_pthread)
1180 # If we have set a CC compiler flag for thread support then
1181 # check if it works for CXX, too.
1185 AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
1188 if test "$ac_cv_kpthread" = "yes"
1190 CXX="$CXX -Kpthread"
1191 ac_cv_cxx_thread=yes
1192 elif test "$ac_cv_kthread" = "yes"
1195 ac_cv_cxx_thread=yes
1196 elif test "$ac_cv_pthread" = "yes"
1199 ac_cv_cxx_thread=yes
1202 if test $ac_cv_cxx_thread = yes
1204 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
1205 $CXX -c conftest.$ac_ext 2>&5
1206 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
1207 && test -s conftest$ac_exeext && ./conftest$ac_exeext
1209 ac_cv_cxx_thread=yes
1215 AC_MSG_RESULT($ac_cv_cxx_thread)
1219 dnl # check for ANSI or K&R ("traditional") preprocessor
1220 dnl AC_MSG_CHECKING(for C preprocessor type)
1221 dnl AC_TRY_COMPILE([
1222 dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
1224 dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
1225 dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
1226 dnl AC_MSG_RESULT($cpp_type)
1228 # checks for header files
1230 AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
1232 ieeefp.h io.h langinfo.h libintl.h ncurses.h poll.h process.h pthread.h \
1233 shadow.h signal.h stdint.h stropts.h termios.h thread.h \
1235 sys/audioio.h sys/bsdtty.h sys/epoll.h sys/event.h sys/file.h sys/loadavg.h \
1236 sys/lock.h sys/mkdev.h sys/modem.h \
1237 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/statvfs.h sys/stat.h \
1238 sys/termio.h sys/time.h \
1239 sys/times.h sys/types.h sys/un.h sys/utsname.h sys/wait.h pty.h libutil.h \
1240 sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
1241 bluetooth/bluetooth.h linux/tipc.h)
1245 # On Solaris, term.h requires curses.h
1246 AC_CHECK_HEADERS(term.h,,,[
1247 #ifdef HAVE_CURSES_H
1252 # On Linux, netlink.h requires asm/types.h
1253 AC_CHECK_HEADERS(linux/netlink.h,,,[
1254 #ifdef HAVE_ASM_TYPES_H
1255 #include <asm/types.h>
1257 #ifdef HAVE_SYS_SOCKET_H
1258 #include <sys/socket.h>
1262 # checks for typedefs
1264 AC_MSG_CHECKING(for clock_t in time.h)
1265 AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
1266 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
1268 AC_MSG_RESULT($was_it_defined)
1270 # Check whether using makedev requires defining _OSF_SOURCE
1271 AC_MSG_CHECKING(for makedev)
1272 AC_TRY_LINK([#include <sys/types.h> ],
1274 ac_cv_has_makedev=yes,
1275 ac_cv_has_makedev=no)
1276 if test "$ac_cv_has_makedev" = "no"; then
1277 # we didn't link, try if _OSF_SOURCE will allow us to link
1279 #define _OSF_SOURCE 1
1280 #include <sys/types.h>
1283 ac_cv_has_makedev=yes,
1284 ac_cv_has_makedev=no)
1285 if test "$ac_cv_has_makedev" = "yes"; then
1286 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
1289 AC_MSG_RESULT($ac_cv_has_makedev)
1290 if test "$ac_cv_has_makedev" = "yes"; then
1291 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
1294 # Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
1295 # the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
1296 # defined, but the compiler does not support pragma redefine_extname,
1297 # and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
1298 # structures (such as rlimit64) without declaring them. As a
1299 # work-around, disable LFS on such configurations
1302 AC_MSG_CHECKING(Solaris LFS bug)
1304 #define _LARGEFILE_SOURCE 1
1305 #define _FILE_OFFSET_BITS 64
1306 #include <sys/resource.h>
1307 ],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
1308 AC_MSG_RESULT($sol_lfs_bug)
1309 if test "$sol_lfs_bug" = "yes"; then
1313 if test "$use_lfs" = "yes"; then
1314 # Two defines needed to enable largefile support on various platforms
1315 # These may affect some typedefs
1316 AC_DEFINE(_LARGEFILE_SOURCE, 1,
1317 [This must be defined on some systems to enable large file support.])
1318 AC_DEFINE(_FILE_OFFSET_BITS, 64,
1319 [This must be set to 64 on some systems to enable large file support.])
1322 # Add some code to confdefs.h so that the test for off_t works on SCO
1323 cat >> confdefs.h <<\EOF
1329 # Type availability checks
1336 AC_CHECK_TYPE(ssize_t,
1337 AC_DEFINE(HAVE_SSIZE_T, 1, Define if your compiler provides ssize_t),,)
1339 # Sizes of various common basic types
1340 # ANSI C requires sizeof(char) == 1, so no need to check it
1341 AC_CHECK_SIZEOF(int, 4)
1342 AC_CHECK_SIZEOF(long, 4)
1343 AC_CHECK_SIZEOF(void *, 4)
1344 AC_CHECK_SIZEOF(short, 2)
1345 AC_CHECK_SIZEOF(float, 4)
1346 AC_CHECK_SIZEOF(double, 8)
1347 AC_CHECK_SIZEOF(fpos_t, 4)
1348 AC_CHECK_SIZEOF(size_t, 4)
1349 AC_CHECK_SIZEOF(pid_t, 4)
1351 AC_MSG_CHECKING(for long long support)
1353 AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1354 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1357 AC_MSG_RESULT($have_long_long)
1358 if test "$have_long_long" = yes ; then
1359 AC_CHECK_SIZEOF(long long, 8)
1362 AC_MSG_CHECKING(for long double support)
1364 AC_TRY_COMPILE([], [long double x; x = (long double)0.;], [
1365 AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define this if you have the type long double.])
1366 have_long_double=yes
1368 AC_MSG_RESULT($have_long_double)
1369 if test "$have_long_double" = yes ; then
1370 AC_CHECK_SIZEOF(long double, 12)
1373 AC_MSG_CHECKING(for _Bool support)
1375 AC_TRY_COMPILE([], [_Bool x; x = (_Bool)0;], [
1376 AC_DEFINE(HAVE_C99_BOOL, 1, [Define this if you have the type _Bool.])
1379 AC_MSG_RESULT($have_c99_bool)
1380 if test "$have_c99_bool" = yes ; then
1381 AC_CHECK_SIZEOF(_Bool, 1)
1384 AC_CHECK_TYPES(uintptr_t,
1385 [AC_CHECK_SIZEOF(uintptr_t, 4)],
1386 [], [#ifdef HAVE_STDINT_H
1391 # Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1392 AC_MSG_CHECKING(size of off_t)
1393 AC_CACHE_VAL(ac_cv_sizeof_off_t,
1394 [AC_TRY_RUN([#include <stdio.h>
1395 #include <sys/types.h>
1398 FILE *f=fopen("conftestval", "w");
1400 fprintf(f, "%d\n", sizeof(off_t));
1403 ac_cv_sizeof_off_t=`cat conftestval`,
1404 ac_cv_sizeof_off_t=0,
1405 ac_cv_sizeof_off_t=4)
1407 AC_MSG_RESULT($ac_cv_sizeof_off_t)
1408 AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1409 [The number of bytes in an off_t.])
1411 AC_MSG_CHECKING(whether to enable large file support)
1412 if test "$have_long_long" = yes -a \
1413 "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1414 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
1415 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1416 [Defined to enable large file support when an off_t is bigger than a long
1417 and long long is available and at least as big as an off_t. You may need
1418 to add some flags for configuration and compilation to enable this mode.
1419 (For Solaris and Linux, the necessary defines are already defined.)])
1425 # AC_CHECK_SIZEOF() doesn't include <time.h>.
1426 AC_MSG_CHECKING(size of time_t)
1427 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1428 [AC_TRY_RUN([#include <stdio.h>
1432 FILE *f=fopen("conftestval", "w");
1434 fprintf(f, "%d\n", sizeof(time_t));
1437 ac_cv_sizeof_time_t=`cat conftestval`,
1438 ac_cv_sizeof_time_t=0,
1439 ac_cv_sizeof_time_t=4)
1441 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1442 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1443 [The number of bytes in a time_t.])
1446 # if have pthread_t then define SIZEOF_PTHREAD_T
1448 if test "$ac_cv_kpthread" = "yes"
1449 then CC="$CC -Kpthread"
1450 elif test "$ac_cv_kthread" = "yes"
1451 then CC="$CC -Kthread"
1452 elif test "$ac_cv_pthread" = "yes"
1453 then CC="$CC -pthread"
1455 AC_MSG_CHECKING(for pthread_t)
1457 AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
1458 AC_MSG_RESULT($have_pthread_t)
1459 if test "$have_pthread_t" = yes ; then
1460 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1461 AC_MSG_CHECKING(size of pthread_t)
1462 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1463 [AC_TRY_RUN([#include <stdio.h>
1464 #include <pthread.h>
1467 FILE *f=fopen("conftestval", "w");
1469 fprintf(f, "%d\n", sizeof(pthread_t));
1472 ac_cv_sizeof_pthread_t=`cat conftestval`,
1473 ac_cv_sizeof_pthread_t=0,
1474 ac_cv_sizeof_pthread_t=4)
1476 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
1477 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1478 [The number of bytes in a pthread_t.])
1482 AC_MSG_CHECKING(for --enable-toolbox-glue)
1483 AC_ARG_ENABLE(toolbox-glue,
1484 AC_HELP_STRING(--enable-toolbox-glue, disable/enable MacOSX glue code for extensions))
1486 if test -z "$enable_toolbox_glue"
1488 case $ac_sys_system/$ac_sys_release in
1490 enable_toolbox_glue="yes";;
1492 enable_toolbox_glue="no";;
1495 case "$enable_toolbox_glue" in
1497 extra_machdep_objs="Python/mactoolboxglue.o"
1498 extra_undefs="-u _PyMac_Error"
1499 AC_DEFINE(USE_TOOLBOX_OBJECT_GLUE, 1,
1500 [Define if you want to use MacPython modules on MacOSX in unix-Python.])
1503 extra_machdep_objs=""
1507 AC_MSG_RESULT($enable_toolbox_glue)
1510 AC_SUBST(OTHER_LIBTOOL_OPT)
1511 case $ac_sys_system/$ac_sys_release in
1512 Darwin/@<:@01567@:>@\..*)
1513 OTHER_LIBTOOL_OPT="-prebind -seg1addr 0x10000000"
1516 OTHER_LIBTOOL_OPT=""
1520 AC_SUBST(LIBTOOL_CRUFT)
1521 case $ac_sys_system/$ac_sys_release in
1522 Darwin/@<:@01567@:>@\..*)
1523 LIBTOOL_CRUFT="-framework System -lcc_dynamic"
1524 if test "${enable_universalsdk}"; then
1527 LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only `arch`"
1529 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1530 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1532 gcc_version=`gcc -v 2>&1 | grep version | cut -d\ -f3`
1533 if test ${gcc_version} '<' 4.0
1535 LIBTOOL_CRUFT="-lcc_dynamic"
1539 LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only `arch`"
1540 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1541 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1544 AC_MSG_CHECKING(for --enable-framework)
1545 if test "$enable_framework"
1547 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
1548 # -F. is needed to allow linking to the framework while
1549 # in the build location.
1550 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1551 [Define if you want to produce an OpenStep/Rhapsody framework
1552 (shared library plus accessory files).])
1558 AC_MSG_CHECKING(for dyld)
1559 case $ac_sys_system/$ac_sys_release in
1561 AC_DEFINE(WITH_DYLD, 1,
1562 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1563 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1564 linker (rld). Dyld is necessary to support frameworks.])
1565 AC_MSG_RESULT(always on for Darwin)
1572 # Set info about shared libraries.
1577 AC_SUBST(LINKFORSHARED)
1578 # SO is the extension of shared libraries `(including the dot!)
1579 # -- usually .so, .sl on HP-UX, .dll on Cygwin
1583 case $ac_sys_system in
1594 # this might also be a termcap variable, see #610332
1596 echo '====================================================================='
1598 echo '+ WARNING: You have set SO in your environment. +'
1599 echo '+ Do you really mean to change the extension for shared libraries? +'
1600 echo '+ Continuing in 10 seconds to let you to ponder. +'
1602 echo '====================================================================='
1607 AC_DEFINE_UNQUOTED(SHLIB_EXT, "$SO", [Define this to be extension of shared libraries (including the dot!).])
1608 # LDSHARED is the ld *command* used to create shared library
1609 # -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
1610 # (Shared libraries in this instance are shared modules to be loaded into
1611 # Python, as opposed to building Python itself as a shared library.)
1612 AC_MSG_CHECKING(LDSHARED)
1613 if test -z "$LDSHARED"
1615 case $ac_sys_system/$ac_sys_release in
1617 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
1618 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
1621 BLDSHARED="\$(srcdir)/Modules/ld_so_beos $LDLIBRARY"
1622 LDSHARED="\$(BINLIBDEST)/config/ld_so_beos \$(LIBDIR)/$LDLIBRARY"
1624 IRIX/5*) LDSHARED="ld -shared";;
1625 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
1627 if test "$GCC" = "yes"
1628 then LDSHARED='$(CC) -shared'
1629 else LDSHARED='$(CC) -G';
1632 if test "$GCC" = "yes"
1633 then LDSHARED='$(CC) -shared'
1634 else LDSHARED='ld -b';
1636 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
1638 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1639 if test "$enable_framework" ; then
1640 # Link against the framework. All externals should be defined.
1641 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1642 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1644 # No framework. Ignore undefined symbols, assuming they come from Python
1645 LDSHARED="$LDSHARED -undefined suppress"
1647 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
1648 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1649 if test "$enable_framework" ; then
1650 # Link against the framework. All externals should be defined.
1651 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1652 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1654 # No framework, use the Python app as bundle-loader
1655 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1656 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1659 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1660 # This allows an extension to be used in any Python
1662 if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
1664 if test "${enable_universalsdk}"; then
1665 LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
1667 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1668 BLDSHARED="$LDSHARED"
1670 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1671 if test "$enable_framework" ; then
1672 # Link against the framework. All externals should be defined.
1673 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1674 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1676 # No framework, use the Python app as bundle-loader
1677 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1678 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1682 Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
1683 BSD/OS*/4*) LDSHARED="gcc -shared";;
1685 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1687 LDSHARED="$CC -shared ${LDFLAGS}"
1689 LDSHARED="ld -Bshareable ${LDFLAGS}"
1692 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1694 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1697 [[01]].* | 2.[[0-7]] | 2.[[0-7]].*)
1698 LDSHARED="ld -Bshareable ${LDFLAGS}"
1701 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1705 NetBSD*|DragonFly*) LDSHARED="cc -shared ${LDFLAGS}";;
1706 OpenUNIX*|UnixWare*)
1707 if test "$GCC" = "yes"
1708 then LDSHARED='$(CC) -shared'
1709 else LDSHARED='$(CC) -G'
1711 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
1712 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
1713 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
1714 atheos*) LDSHARED="gcc -shared";;
1718 AC_MSG_RESULT($LDSHARED)
1719 BLDSHARED=${BLDSHARED-$LDSHARED}
1720 # CCSHARED are the C *flags* used to create objects to go into a shared
1721 # library (module) -- this is only needed for a few systems
1722 AC_MSG_CHECKING(CCSHARED)
1723 if test -z "$CCSHARED"
1725 case $ac_sys_system/$ac_sys_release in
1726 SunOS*) if test "$GCC" = yes;
1727 then CCSHARED="-fPIC";
1728 elif test `uname -p` = sparc;
1729 then CCSHARED="-xcode=pic32";
1730 else CCSHARED="-Kpic";
1732 hp*|HP*) if test "$GCC" = yes;
1733 then CCSHARED="-fPIC";
1736 Linux*|GNU*) CCSHARED="-fPIC";;
1737 BSD/OS*/4*) CCSHARED="-fpic";;
1738 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";;
1739 OpenUNIX*|UnixWare*)
1740 if test "$GCC" = "yes"
1741 then CCSHARED="-fPIC"
1742 else CCSHARED="-KPIC"
1745 if test "$GCC" = "yes"
1746 then CCSHARED="-fPIC"
1747 else CCSHARED="-Kpic -belf"
1749 Monterey*) CCSHARED="-G";;
1750 IRIX*/6*) case $CC in
1751 *gcc*) CCSHARED="-shared";;
1754 atheos*) CCSHARED="-fPIC";;
1757 AC_MSG_RESULT($CCSHARED)
1758 # LINKFORSHARED are the flags passed to the $(CC) command that links
1759 # the python executable -- this is only needed for a few systems
1760 AC_MSG_CHECKING(LINKFORSHARED)
1761 if test -z "$LINKFORSHARED"
1763 case $ac_sys_system/$ac_sys_release in
1764 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
1766 LINKFORSHARED="-Wl,-E -Wl,+s";;
1767 # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
1768 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
1769 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
1770 # -u libsys_s pulls in all symbols in libsys
1772 # -u _PyMac_Error is needed to pull in the mac toolbox glue,
1774 # not used by the core itself but which needs to be in the core so
1775 # that dynamically loaded extension modules have access to it.
1776 # -prebind is no longer used, because it actually seems to give a
1777 # slowdown in stead of a speedup, maybe due to the large number of
1778 # dynamic loads Python does.
1780 LINKFORSHARED="$extra_undefs"
1781 if test "$enable_framework"
1783 LINKFORSHARED="$LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1785 LINKFORSHARED="$LINKFORSHARED";;
1786 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
1787 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
1788 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
1789 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*)
1790 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1792 LINKFORSHARED="-Wl,--export-dynamic"
1794 SunOS/5*) case $CC in
1796 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
1798 LINKFORSHARED="-Xlinker --export-dynamic"
1802 if test $enable_shared = "no"
1804 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1807 # -Wl,-E causes the symbols to be added to the dynamic
1808 # symbol table so that they can be found when a module
1809 # is loaded. -N 2048K causes the stack size to be set
1810 # to 2048 kilobytes so that the stack doesn't overflow
1811 # when running test_compile.py.
1812 LINKFORSHARED='-Wl,-E -N 2048K';;
1815 AC_MSG_RESULT($LINKFORSHARED)
1818 AC_SUBST(CFLAGSFORSHARED)
1819 AC_MSG_CHECKING(CFLAGSFORSHARED)
1820 if test ! "$LIBRARY" = "$LDLIBRARY"
1822 case $ac_sys_system in
1824 # Cygwin needs CCSHARED when building extension DLLs
1825 # but not when building the interpreter DLL.
1826 CFLAGSFORSHARED='';;
1828 CFLAGSFORSHARED='$(CCSHARED)'
1831 AC_MSG_RESULT($CFLAGSFORSHARED)
1833 # SHLIBS are libraries (except -lc and -lm) to link to the python shared
1834 # library (with --enable-shared).
1835 # For platforms on which shared libraries are not allowed to have unresolved
1836 # symbols, this must be set to $(LIBS) (expanded by make). We do this even
1837 # if it is not required, since it creates a dependency of the shared library
1838 # to LIBS. This, in turn, means that applications linking the shared libpython
1839 # don't need to link LIBS explicitly. The default should be only changed
1840 # on systems where this approach causes problems.
1842 AC_MSG_CHECKING(SHLIBS)
1843 case "$ac_sys_system" in
1847 AC_MSG_RESULT($SHLIBS)
1850 # checks for libraries
1851 AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1852 AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
1854 # only check for sem_init if thread support is requested
1855 if test "$with_threads" = "yes" -o -z "$with_threads"; then
1856 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1857 # posix4 on Solaris 2.6
1858 # pthread (first!) on Linux
1861 # check if we need libintl for locale functions
1862 AC_CHECK_LIB(intl, textdomain,
1863 AC_DEFINE(WITH_LIBINTL, 1,
1864 [Define to 1 if libintl is needed for locale functions.]))
1866 # checks for system dependent C++ extensions support
1867 case "$ac_sys_system" in
1868 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1869 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1870 [loadAndInit("", 0, "")],
1871 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1872 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1873 and you want support for AIX C++ shared extension modules.])
1874 AC_MSG_RESULT(yes)],
1875 [AC_MSG_RESULT(no)]);;
1879 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
1880 # BeOS' sockets are stashed in libnet.
1881 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
1882 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
1884 case "$ac_sys_system" in
1886 AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
1890 AC_MSG_CHECKING(for --with-libs)
1892 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1894 AC_MSG_RESULT($withval)
1895 LIBS="$withval $LIBS"
1897 [AC_MSG_RESULT(no)])
1899 # Check for use of the system libffi library
1900 AC_MSG_CHECKING(for --with-system-ffi)
1901 AC_ARG_WITH(system_ffi,
1902 AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library))
1904 AC_MSG_RESULT($with_system_ffi)
1906 # Determine if signalmodule should be used.
1907 AC_SUBST(USE_SIGNAL_MODULE)
1908 AC_SUBST(SIGNAL_OBJS)
1909 AC_MSG_CHECKING(for --with-signal-module)
1910 AC_ARG_WITH(signal-module,
1911 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
1913 if test -z "$with_signal_module"
1914 then with_signal_module="yes"
1916 AC_MSG_RESULT($with_signal_module)
1918 if test "${with_signal_module}" = "yes"; then
1919 USE_SIGNAL_MODULE=""
1922 USE_SIGNAL_MODULE="#"
1923 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1926 # This is used to generate Setup.config
1927 AC_SUBST(USE_THREAD_MODULE)
1928 USE_THREAD_MODULE=""
1930 AC_MSG_CHECKING(for --with-dec-threads)
1932 AC_ARG_WITH(dec-threads,
1933 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1935 AC_MSG_RESULT($withval)
1937 if test "${with_thread+set}" != set; then
1938 with_thread="$withval";
1940 [AC_MSG_RESULT(no)])
1942 # Templates for things AC_DEFINEd more than once.
1943 # For a single AC_DEFINE, no template is needed.
1944 AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1945 AH_TEMPLATE(_REENTRANT,
1946 [Define to force use of thread-safe errno, h_errno, and other functions])
1947 AH_TEMPLATE(WITH_THREAD,
1948 [Define if you want to compile in rudimentary thread support])
1950 AC_MSG_CHECKING(for --with-threads)
1951 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1952 AC_ARG_WITH(threads,
1953 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
1955 # --with-thread is deprecated, but check for it anyway
1956 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1958 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1959 [with_threads=$with_thread])
1961 if test -z "$with_threads"
1962 then with_threads="yes"
1964 AC_MSG_RESULT($with_threads)
1967 if test "$with_threads" = "no"
1969 USE_THREAD_MODULE="#"
1970 elif test "$ac_cv_pthread_is_default" = yes
1972 AC_DEFINE(WITH_THREAD)
1973 # Defining _REENTRANT on system with POSIX threads should not hurt.
1974 AC_DEFINE(_REENTRANT)
1976 THREADOBJ="Python/thread.o"
1977 elif test "$ac_cv_kpthread" = "yes"
1980 if test "$ac_cv_cxx_thread" = "yes"; then
1981 CXX="$CXX -Kpthread"
1983 AC_DEFINE(WITH_THREAD)
1985 THREADOBJ="Python/thread.o"
1986 elif test "$ac_cv_kthread" = "yes"
1989 if test "$ac_cv_cxx_thread" = "yes"; then
1992 AC_DEFINE(WITH_THREAD)
1994 THREADOBJ="Python/thread.o"
1995 elif test "$ac_cv_pthread" = "yes"
1998 if test "$ac_cv_cxx_thread" = "yes"; then
2001 AC_DEFINE(WITH_THREAD)
2003 THREADOBJ="Python/thread.o"
2005 if test ! -z "$with_threads" -a -d "$with_threads"
2006 then LDFLAGS="$LDFLAGS -L$with_threads"
2008 if test ! -z "$withval" -a -d "$withval"
2009 then LDFLAGS="$LDFLAGS -L$withval"
2012 # According to the POSIX spec, a pthreads implementation must
2013 # define _POSIX_THREADS in unistd.h. Some apparently don't
2014 # (e.g. gnu pth with pthread emulation)
2015 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
2019 #ifdef _POSIX_THREADS
2022 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
2023 AC_MSG_RESULT($unistd_defines_pthreads)
2025 AC_DEFINE(_REENTRANT)
2026 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
2027 AC_DEFINE(C_THREADS)
2028 AC_DEFINE(HURD_C_THREADS, 1,
2029 [Define if you are using Mach cthreads directly under /include])
2030 LIBS="$LIBS -lthreads"
2031 THREADOBJ="Python/thread.o"],[
2032 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
2033 AC_DEFINE(C_THREADS)
2034 AC_DEFINE(MACH_C_THREADS, 1,
2035 [Define if you are using Mach cthreads under mach /])
2036 THREADOBJ="Python/thread.o"],[
2037 AC_MSG_CHECKING(for --with-pth)
2039 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
2040 [AC_MSG_RESULT($withval)
2041 AC_DEFINE([WITH_THREAD])
2042 AC_DEFINE([HAVE_PTH], 1,
2043 [Define if you have GNU PTH threads.])
2045 THREADOBJ="Python/thread.o"],
2048 # Just looking for pthread_create in libpthread is not enough:
2049 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
2050 # So we really have to include pthread.h, and then link.
2052 LIBS="$LIBS -lpthread"
2053 AC_MSG_CHECKING([for pthread_create in -lpthread])
2054 AC_TRY_LINK([#include <pthread.h>
2056 void * start_routine (void *arg) { exit (0); }], [
2057 pthread_create (NULL, NULL, start_routine, NULL)], [
2059 AC_DEFINE(WITH_THREAD)
2061 THREADOBJ="Python/thread.o"],[
2063 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
2065 THREADOBJ="Python/thread.o"],[
2066 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
2067 AC_DEFINE(ATHEOS_THREADS, 1,
2068 [Define this if you have AtheOS threads.])
2069 THREADOBJ="Python/thread.o"],[
2070 AC_CHECK_HEADER(kernel/OS.h, [AC_DEFINE(WITH_THREAD)
2071 AC_DEFINE(BEOS_THREADS, 1,
2072 [Define this if you have BeOS threads.])
2073 THREADOBJ="Python/thread.o"],[
2074 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
2076 LIBS="$LIBS -lpthreads"
2077 THREADOBJ="Python/thread.o"], [
2078 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
2081 THREADOBJ="Python/thread.o"], [
2082 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
2084 LIBS="$LIBS -lpthread"
2085 THREADOBJ="Python/thread.o"], [
2086 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
2089 THREADOBJ="Python/thread.o"],[
2090 USE_THREAD_MODULE="#"])
2091 ])])])])])])])])])])
2093 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
2095 THREADOBJ="Python/thread.o"
2096 USE_THREAD_MODULE=""])
2098 if test "$posix_threads" != "yes"; then
2099 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
2100 LIBS="$LIBS -lthread"
2101 THREADOBJ="Python/thread.o"
2102 USE_THREAD_MODULE=""])
2105 if test "$USE_THREAD_MODULE" != "#"
2107 # If the above checks didn't disable threads, (at least) OSF1
2108 # needs this '-threads' argument during linking.
2109 case $ac_sys_system in
2110 OSF1) LDLAST=-threads;;
2115 if test "$posix_threads" = "yes"; then
2116 if test "$unistd_defines_pthreads" = "no"; then
2117 AC_DEFINE(_POSIX_THREADS, 1,
2118 [Define if you have POSIX threads,
2119 and your system does not define that.])
2122 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
2123 case $ac_sys_system/$ac_sys_release in
2124 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
2125 Defined for Solaris 2.6 bug in pthread header.)
2127 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2128 Define if the Posix semaphores do not work on your system)
2130 AIX/5) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2131 Define if the Posix semaphores do not work on your system)
2135 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
2136 AC_CACHE_VAL(ac_cv_pthread_system_supported,
2137 [AC_TRY_RUN([#include <pthread.h>
2138 void *foo(void *parm) {
2142 pthread_attr_t attr;
2144 if (pthread_attr_init(&attr)) exit(-1);
2145 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
2146 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
2149 ac_cv_pthread_system_supported=yes,
2150 ac_cv_pthread_system_supported=no,
2151 ac_cv_pthread_system_supported=no)
2153 AC_MSG_RESULT($ac_cv_pthread_system_supported)
2154 if test "$ac_cv_pthread_system_supported" = "yes"; then
2155 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
2157 AC_CHECK_FUNCS(pthread_sigmask,
2158 [case $ac_sys_system in
2160 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
2161 [Define if pthread_sigmask() does not work on your system.])
2167 # Check for enable-ipv6
2168 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
2169 AC_MSG_CHECKING([if --enable-ipv6 is specified])
2171 [ --enable-ipv6 Enable ipv6 (with ipv4) support
2172 --disable-ipv6 Disable ipv6 support],
2173 [ case "$enableval" in
2178 *) AC_MSG_RESULT(yes)
2179 AC_DEFINE(ENABLE_IPV6)
2185 dnl the check does not work on cross compilation case...
2186 AC_TRY_RUN([ /* AF_INET6 available check */
2187 #include <sys/types.h>
2188 #include <sys/socket.h>
2191 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
2205 if test "$ipv6" = "yes"; then
2206 AC_MSG_CHECKING(if RFC2553 API is available)
2207 AC_TRY_COMPILE([#include <sys/types.h>
2208 #include <netinet/in.h>],
2209 [struct sockaddr_in6 x;
2213 AC_MSG_RESULT(no, IPv6 disabled)
2217 if test "$ipv6" = "yes"; then
2218 AC_DEFINE(ENABLE_IPV6)
2226 if test "$ipv6" = "yes"; then
2227 AC_MSG_CHECKING([ipv6 stack type])
2228 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
2232 dnl http://www.kame.net/
2234 #include <netinet/in.h>
2235 #ifdef IPV6_INRIA_VERSION
2241 dnl http://www.kame.net/
2243 #include <netinet/in.h>
2249 ipv6libdir=/usr/local/v6/lib
2253 dnl http://www.v6.linux.or.jp/
2255 #include <features.h>
2256 #if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
2263 dnl http://www.v6.linux.or.jp/
2264 if test -d /usr/inet6; then
2267 ipv6libdir=/usr/inet6/lib
2268 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
2272 if test -f /etc/netconfig; then
2273 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
2281 #include <sys/param.h>
2282 #ifdef _TOSHIBA_INET6
2287 ipv6libdir=/usr/local/v6/lib])
2291 #include </usr/local/v6/include/sys/v6config.h>
2297 ipv6libdir=/usr/local/v6/lib;
2298 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
2302 #include <sys/param.h>
2303 #ifdef _ZETA_MINAMI_INET6
2308 ipv6libdir=/usr/local/v6/lib])
2311 if test "$ipv6type" != "unknown"; then
2315 AC_MSG_RESULT($ipv6type)
2318 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
2319 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
2320 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
2321 echo "using lib$ipv6lib"
2323 if test $ipv6trylibc = "yes"; then
2326 echo 'Fatal: no $ipv6lib library found. cannot continue.'
2327 echo "You need to fetch lib$ipv6lib.a from appropriate"
2328 echo 'ipv6 kit and compile beforehand.'
2334 AC_MSG_CHECKING(for OSX 10.5 SDK or later)
2335 AC_TRY_COMPILE([#include <Carbon/Carbon.h>], FSIORefNum fRef = 0,
2336 AC_DEFINE(HAVE_OSX105_SDK, 1, Define if compiling using MacOS X 10.5 SDK or later.)
2341 # Check for --with-doc-strings
2342 AC_MSG_CHECKING(for --with-doc-strings)
2343 AC_ARG_WITH(doc-strings,
2344 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
2346 if test -z "$with_doc_strings"
2347 then with_doc_strings="yes"
2349 if test "$with_doc_strings" != "no"
2351 AC_DEFINE(WITH_DOC_STRINGS, 1,
2352 [Define if you want documentation strings in extension modules])
2354 AC_MSG_RESULT($with_doc_strings)
2356 # Check for Python-specific malloc support
2357 AC_MSG_CHECKING(for --with-tsc)
2359 [ --with(out)-tsc enable/disable timestamp counter profile], [
2360 if test "$withval" != no
2362 AC_DEFINE(WITH_TSC, 1,
2363 [Define to profile with the Pentium timestamp counter])
2365 else AC_MSG_RESULT(no)
2367 [AC_MSG_RESULT(no)])
2369 # Check for Python-specific malloc support
2370 AC_MSG_CHECKING(for --with-pymalloc)
2371 AC_ARG_WITH(pymalloc,
2372 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
2374 if test -z "$with_pymalloc"
2375 then with_pymalloc="yes"
2377 if test "$with_pymalloc" != "no"
2379 AC_DEFINE(WITH_PYMALLOC, 1,
2380 [Define if you want to compile in Python-specific mallocs])
2382 AC_MSG_RESULT($with_pymalloc)
2384 # Check for --with-wctype-functions
2385 AC_MSG_CHECKING(for --with-wctype-functions)
2386 AC_ARG_WITH(wctype-functions,
2387 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
2389 if test "$withval" != no
2391 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2392 [Define if you want wctype.h functions to be used instead of the
2393 one supplied by Python itself. (see Include/unicodectype.h).])
2395 else AC_MSG_RESULT(no)
2397 [AC_MSG_RESULT(no)])
2399 # -I${DLINCLDIR} is added to the compile rule for importdl.o
2403 # the dlopen() function means we might want to use dynload_shlib.o. some
2404 # platforms, such as AIX, have dlopen(), but don't want to use it.
2405 AC_CHECK_FUNCS(dlopen)
2407 # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2408 # loading of modules.
2409 AC_SUBST(DYNLOADFILE)
2410 AC_MSG_CHECKING(DYNLOADFILE)
2411 if test -z "$DYNLOADFILE"
2413 case $ac_sys_system/$ac_sys_release in
2414 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2415 if test "$ac_cv_func_dlopen" = yes
2416 then DYNLOADFILE="dynload_shlib.o"
2417 else DYNLOADFILE="dynload_aix.o"
2420 BeOS*) DYNLOADFILE="dynload_beos.o";;
2421 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
2422 # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
2423 Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
2424 atheos*) DYNLOADFILE="dynload_atheos.o";;
2426 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2427 # out any dynamic loading
2428 if test "$ac_cv_func_dlopen" = yes
2429 then DYNLOADFILE="dynload_shlib.o"
2430 else DYNLOADFILE="dynload_stub.o"
2435 AC_MSG_RESULT($DYNLOADFILE)
2436 if test "$DYNLOADFILE" != "dynload_stub.o"
2438 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2439 [Defined when any dynamic module loading is enabled.])
2442 # MACHDEP_OBJS can be set to platform-specific object files needed by Python
2444 AC_SUBST(MACHDEP_OBJS)
2445 AC_MSG_CHECKING(MACHDEP_OBJS)
2446 if test -z "$MACHDEP_OBJS"
2448 MACHDEP_OBJS=$extra_machdep_objs
2450 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
2452 AC_MSG_RESULT(MACHDEP_OBJS)
2454 # checks for library functions
2455 AC_CHECK_FUNCS(alarm setitimer getitimer bind_textdomain_codeset chown \
2456 clock confstr ctermid execv fchmod fchown fork fpathconf ftime ftruncate \
2457 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
2458 getpriority getpwent getspnam getspent getsid getwd \
2459 kill killpg lchmod lchown lstat mkfifo mknod mktime \
2460 mremap nice pathconf pause plock poll pthread_init \
2461 putenv readlink realpath \
2462 select setegid seteuid setgid \
2463 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
2464 sigaction siginterrupt sigrelse strftime \
2465 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
2466 truncate uname unsetenv utimes waitpid wait3 wait4 wcscoll _getpty)
2468 # For some functions, having a definition is not sufficient, since
2469 # we want to take their address.
2470 AC_MSG_CHECKING(for chroot)
2471 AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2472 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2476 AC_MSG_CHECKING(for link)
2477 AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2478 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2482 AC_MSG_CHECKING(for symlink)
2483 AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2484 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2488 AC_MSG_CHECKING(for fchdir)
2489 AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2490 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2494 AC_MSG_CHECKING(for fsync)
2495 AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
2496 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
2500 AC_MSG_CHECKING(for fdatasync)
2501 AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2502 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2506 AC_MSG_CHECKING(for epoll)
2507 AC_TRY_COMPILE([#include <sys/epoll.h>], void *x=epoll_create,
2508 AC_DEFINE(HAVE_EPOLL, 1, Define if you have the 'epoll' functions.)
2512 AC_MSG_CHECKING(for kqueue)
2514 #include <sys/types.h>
2515 #include <sys/event.h>
2517 AC_DEFINE(HAVE_KQUEUE, 1, Define if you have the 'kqueue' functions.)
2521 # On some systems (eg. FreeBSD 5), we would find a definition of the
2522 # functions ctermid_r, setgroups in the library, but no prototype
2523 # (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2524 # address to avoid compiler warnings and potential miscompilations
2525 # because of the missing prototypes.
2527 AC_MSG_CHECKING(for ctermid_r)
2529 #include "confdefs.h"
2531 ], void* p = ctermid_r,
2532 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2537 AC_MSG_CHECKING(for flock)
2539 #include "confdefs.h"
2540 #include <sys/file.h>
2542 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2547 AC_MSG_CHECKING(for getpagesize)
2549 #include "confdefs.h"
2551 ], void* p = getpagesize,
2552 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2558 AC_CHECK_PROGS(TRUE, true, /bin/true)
2560 dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2561 dnl On others, they are in the C library, so we to take no action
2562 AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
2563 AC_CHECK_LIB(resolv, inet_aton)
2566 # On Tru64, chflags seems to be present, but calling it will
2568 AC_MSG_CHECKING(for chflags)
2570 #include <sys/stat.h>
2572 int main(int argc, char*argv[])
2574 if(chflags(argv[0], 0) != 0)
2578 ],AC_DEFINE(HAVE_CHFLAGS, 1, Define to 1 if you have the `chflags' function.)
2583 AC_MSG_CHECKING(for lchflags)
2585 #include <sys/stat.h>
2587 int main(int argc, char*argv[])
2589 if(lchflags(argv[0], 0) != 0)
2593 ],AC_DEFINE(HAVE_LCHFLAGS, 1, Define to 1 if you have the `lchflags' function.)
2598 dnl Check if system zlib has *Copy() functions
2600 dnl On MacOSX the linker will search for dylibs on the entire linker path
2601 dnl before searching for static libraries. setup.py adds -Wl,-search_paths_first
2602 dnl to revert to a more traditional unix behaviour and make it possible to
2603 dnl override the system libz with a local static library of libz. Temporarily
2604 dnl add that flag to our CFLAGS as well to ensure that we check the version
2605 dnl of libz that will be used by setup.py.
2606 dnl The -L/usr/local/lib is needed as wel to get the same compilation
2607 dnl environment as setup.py (and leaving it out can cause configure to use the
2608 dnl wrong version of the library)
2609 case $ac_sys_system/$ac_sys_release in
2611 _CUR_CFLAGS="${CFLAGS}"
2612 _CUR_LDFLAGS="${LDFLAGS}"
2613 CFLAGS="${CFLAGS} -Wl,-search_paths_first"
2614 LDFLAGS="${LDFLAGS} -Wl,-search_paths_first -L/usr/local/lib"
2618 AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_ZLIB_COPY, 1, Define if the zlib library has inflateCopy))
2620 case $ac_sys_system/$ac_sys_release in
2622 CFLAGS="${_CUR_CFLAGS}"
2623 LDFLAGS="${_CUR_LDFLAGS}"
2627 AC_MSG_CHECKING(for hstrerror)
2629 #include "confdefs.h"
2631 ], void* p = hstrerror; hstrerror(0),
2632 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2637 AC_MSG_CHECKING(for inet_aton)
2639 #include "confdefs.h"
2640 #include <sys/types.h>
2641 #include <sys/socket.h>
2642 #include <netinet/in.h>
2643 #include <arpa/inet.h>
2644 ], void* p = inet_aton;inet_aton(0,0),
2645 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2650 AC_MSG_CHECKING(for inet_pton)
2652 #include "confdefs.h"
2653 #include <sys/types.h>
2654 #include <sys/socket.h>
2655 #include <netinet/in.h>
2656 #include <arpa/inet.h>
2657 ], void* p = inet_pton,
2658 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2663 # On some systems, setgroups is in unistd.h, on others, in grp.h
2664 AC_MSG_CHECKING(for setgroups)
2666 #include "confdefs.h"
2672 void* p = setgroups,
2673 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2678 # check for openpty and forkpty
2680 AC_CHECK_FUNCS(openpty,,
2681 AC_CHECK_LIB(util,openpty,
2682 [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"],
2683 AC_CHECK_LIB(bsd,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lbsd"])
2686 AC_CHECK_FUNCS(forkpty,,
2687 AC_CHECK_LIB(util,forkpty,
2688 [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"],
2689 AC_CHECK_LIB(bsd,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lbsd"])
2694 AC_CHECK_FUNCS(memmove)
2696 # check for long file support functions
2697 AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2699 AC_REPLACE_FUNCS(dup2 getcwd strdup)
2700 AC_CHECK_FUNCS(getpgrp,
2701 AC_TRY_COMPILE([#include <unistd.h>],
2703 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2704 [Define if getpgrp() must be called as getpgrp(0).])
2707 AC_CHECK_FUNCS(setpgrp,
2708 AC_TRY_COMPILE([#include <unistd.h>],
2710 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2711 [Define if setpgrp() must be called as setpgrp(0, 0).])
2714 AC_CHECK_FUNCS(gettimeofday,
2715 AC_TRY_COMPILE([#include <sys/time.h>],
2716 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2717 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2718 [Define if gettimeofday() does not have second (timezone) argument
2719 This is the case on Motorola V4 (R40V4.2)])
2723 AC_MSG_CHECKING(for major, minor, and makedev)
2725 #if defined(MAJOR_IN_MKDEV)
2726 #include <sys/mkdev.h>
2727 #elif defined(MAJOR_IN_SYSMACROS)
2728 #include <sys/sysmacros.h>
2730 #include <sys/types.h>
2733 makedev(major(0),minor(0));
2735 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2736 [Define to 1 if you have the device macros.])
2742 # On OSF/1 V5.1, getaddrinfo is available, but a define
2743 # for [no]getaddrinfo in netdb.h.
2744 AC_MSG_CHECKING(for getaddrinfo)
2746 #include <sys/types.h>
2747 #include <sys/socket.h>
2751 getaddrinfo(NULL, NULL, NULL, NULL);
2754 AC_MSG_CHECKING(getaddrinfo bug)
2756 #include <sys/types.h>
2759 #include <sys/socket.h>
2760 #include <netinet/in.h>
2764 int passive, gaierr, inet4 = 0, inet6 = 0;
2765 struct addrinfo hints, *ai, *aitop;
2766 char straddr[INET6_ADDRSTRLEN], strport[16];
2768 for (passive = 0; passive <= 1; passive++) {
2769 memset(&hints, 0, sizeof(hints));
2770 hints.ai_family = AF_UNSPEC;
2771 hints.ai_flags = passive ? AI_PASSIVE : 0;
2772 hints.ai_socktype = SOCK_STREAM;
2773 hints.ai_protocol = IPPROTO_TCP;
2774 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2775 (void)gai_strerror(gaierr);
2778 for (ai = aitop; ai; ai = ai->ai_next) {
2779 if (ai->ai_addr == NULL ||
2780 ai->ai_addrlen == 0 ||
2781 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2782 straddr, sizeof(straddr), strport, sizeof(strport),
2783 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2786 switch (ai->ai_family) {
2788 if (strcmp(strport, "54321") != 0) {
2792 if (strcmp(straddr, "0.0.0.0") != 0) {
2796 if (strcmp(straddr, "127.0.0.1") != 0) {
2803 if (strcmp(strport, "54321") != 0) {
2807 if (strcmp(straddr, "::") != 0) {
2811 if (strcmp(straddr, "::1") != 0) {
2821 /* another family support? */
2827 if (!(inet4 == 0 || inet4 == 2))
2829 if (!(inet6 == 0 || inet6 == 2))
2833 freeaddrinfo(aitop);
2838 freeaddrinfo(aitop);
2843 buggygetaddrinfo=no,
2844 AC_MSG_RESULT(buggy)
2845 buggygetaddrinfo=yes,
2846 AC_MSG_RESULT(buggy)
2847 buggygetaddrinfo=yes)], [
2849 buggygetaddrinfo=yes
2852 if test "$buggygetaddrinfo" = "yes"; then
2853 if test "$ipv6" = "yes"; then
2854 echo 'Fatal: You must get working getaddrinfo() function.'
2855 echo ' or you can specify "--disable-ipv6"'.
2859 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
2861 AC_CHECK_FUNCS(getnameinfo)
2863 # checks for structures
2867 AC_CHECK_MEMBERS([struct stat.st_rdev])
2868 AC_CHECK_MEMBERS([struct stat.st_blksize])
2869 AC_CHECK_MEMBERS([struct stat.st_flags])
2870 AC_CHECK_MEMBERS([struct stat.st_gen])
2871 AC_CHECK_MEMBERS([struct stat.st_birthtime])
2874 AC_MSG_CHECKING(for time.h that defines altzone)
2875 AC_CACHE_VAL(ac_cv_header_time_altzone,
2876 [AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2877 ac_cv_header_time_altzone=yes,
2878 ac_cv_header_time_altzone=no)])
2879 AC_MSG_RESULT($ac_cv_header_time_altzone)
2880 if test $ac_cv_header_time_altzone = yes; then
2881 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
2885 AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
2887 #include <sys/types.h>
2888 #include <sys/select.h>
2889 #include <sys/time.h>
2891 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2892 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2893 (which you can't on SCO ODT 3.0).])
2896 AC_MSG_RESULT($was_it_defined)
2898 AC_MSG_CHECKING(for addrinfo)
2899 AC_CACHE_VAL(ac_cv_struct_addrinfo,
2901 # include <netdb.h>],
2902 [struct addrinfo a],
2903 ac_cv_struct_addrinfo=yes,
2904 ac_cv_struct_addrinfo=no))
2905 AC_MSG_RESULT($ac_cv_struct_addrinfo)
2906 if test $ac_cv_struct_addrinfo = yes; then
2907 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
2910 AC_MSG_CHECKING(for sockaddr_storage)
2911 AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2913 # include <sys/types.h>
2914 # include <sys/socket.h>],
2915 [struct sockaddr_storage s],
2916 ac_cv_struct_sockaddr_storage=yes,
2917 ac_cv_struct_sockaddr_storage=no))
2918 AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2919 if test $ac_cv_struct_sockaddr_storage = yes; then
2920 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
2923 # checks for compiler characteristics
2929 AC_MSG_CHECKING(for working volatile)
2930 AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2931 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2933 AC_MSG_RESULT($works)
2936 AC_MSG_CHECKING(for working signed char)
2937 AC_TRY_COMPILE([], [signed char c;], works=yes,
2938 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2940 AC_MSG_RESULT($works)
2943 AC_MSG_CHECKING(for prototypes)
2944 AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2945 AC_DEFINE(HAVE_PROTOTYPES, 1,
2946 [Define if your compiler supports function prototype])
2949 AC_MSG_RESULT($have_prototypes)
2952 AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
2955 int foo(int x, ...) {
2963 ], [return foo(10, "", 3.14);], [
2964 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2965 [Define if your compiler supports variable length function prototypes
2966 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2969 AC_MSG_RESULT($works)
2971 # check for socketpair
2972 AC_MSG_CHECKING(for socketpair)
2974 #include <sys/types.h>
2975 #include <sys/socket.h>
2976 ], void *x=socketpair,
2977 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
2982 # check if sockaddr has sa_len member
2983 AC_MSG_CHECKING(if sockaddr has sa_len member)
2984 AC_TRY_COMPILE([#include <sys/types.h>
2985 #include <sys/socket.h>],
2989 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
2993 AC_MSG_CHECKING(whether va_list is an array)
2995 #ifdef HAVE_STDARG_PROTOTYPES
2998 #include <varargs.h>
3000 ], [va_list list1, list2; list1 = list2;], , [
3001 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
3002 va_list_is_array=yes
3004 AC_MSG_RESULT($va_list_is_array)
3006 # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
3007 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
3008 [Define this if you have some version of gethostbyname_r()])
3010 AC_CHECK_FUNC(gethostbyname_r, [
3011 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3012 AC_MSG_CHECKING([gethostbyname_r with 6 args])
3014 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
3019 struct hostent *he, *res;
3024 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
3026 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3027 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
3028 [Define this if you have the 6-arg version of gethostbyname_r().])
3032 AC_MSG_CHECKING([gethostbyname_r with 5 args])
3042 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
3044 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3045 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
3046 [Define this if you have the 5-arg version of gethostbyname_r().])
3050 AC_MSG_CHECKING([gethostbyname_r with 3 args])
3056 struct hostent_data data;
3058 (void) gethostbyname_r(name, he, &data);
3060 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3061 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
3062 [Define this if you have the 3-arg version of gethostbyname_r().])
3071 AC_CHECK_FUNCS(gethostbyname)
3073 AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
3074 AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
3075 AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
3076 AC_SUBST(HAVE_GETHOSTBYNAME_R)
3077 AC_SUBST(HAVE_GETHOSTBYNAME)
3079 # checks for system services
3082 # Linux requires this for correct f.p. operations
3083 AC_CHECK_FUNC(__fpu_control,
3085 [AC_CHECK_LIB(ieee, __fpu_control)
3088 # Check for --with-fpectl
3089 AC_MSG_CHECKING(for --with-fpectl)
3091 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
3093 if test "$withval" != no
3095 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
3096 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
3098 else AC_MSG_RESULT(no)
3100 [AC_MSG_RESULT(no)])
3102 # check for --with-libm=...
3104 case $ac_sys_system in
3109 AC_MSG_CHECKING(for --with-libm=STRING)
3111 AC_HELP_STRING(--with-libm=STRING, math library),
3113 if test "$withval" = no
3115 AC_MSG_RESULT(force LIBM empty)
3116 elif test "$withval" != yes
3118 AC_MSG_RESULT(set LIBM="$withval")
3119 else AC_MSG_ERROR([proper usage is --with-libm=STRING])
3121 [AC_MSG_RESULT(default LIBM="$LIBM")])
3123 # check for --with-libc=...
3125 AC_MSG_CHECKING(for --with-libc=STRING)
3127 AC_HELP_STRING(--with-libc=STRING, C library),
3129 if test "$withval" = no
3131 AC_MSG_RESULT(force LIBC empty)
3132 elif test "$withval" != yes
3134 AC_MSG_RESULT(set LIBC="$withval")
3135 else AC_MSG_ERROR([proper usage is --with-libc=STRING])
3137 [AC_MSG_RESULT(default LIBC="$LIBC")])
3139 # ************************************
3140 # * Check for mathematical functions *
3141 # ************************************
3146 # Detect whether system arithmetic is subject to x87-style double
3147 # rounding issues. The result of this test has little meaning on non
3148 # IEEE 754 platforms. On IEEE 754, test should return 1 if rounding
3149 # mode is round-to-nearest and double rounding issues are present, and
3150 # 0 otherwise. See http://bugs.python.org/issue2937 for more info.
3151 AC_MSG_CHECKING(for x87-style double rounding)
3152 AC_CACHE_VAL(ac_cv_x87_double_rounding, [
3157 volatile double x, y, z;
3158 /* 1./(1-2**-53) -> 1+2**-52 (correct), 1.0 (double rounding) */
3159 x = 0.99999999999999989; /* 1-2**-53 */
3163 /* 1e16+2.99999 -> 1e16+2. (correct), 1e16+4. (double rounding) */
3169 /* both tests show evidence of double rounding */
3173 ac_cv_x87_double_rounding=no,
3174 ac_cv_x87_double_rounding=yes,
3175 ac_cv_x87_double_rounding=no)])
3176 AC_MSG_RESULT($ac_cv_x87_double_rounding)
3177 if test "$ac_cv_x87_double_rounding" = yes
3179 AC_DEFINE(X87_DOUBLE_ROUNDING, 1,
3180 [Define if arithmetic is subject to x87-style double rounding issue])
3184 # On FreeBSD 6.2, it appears that tanh(-0.) returns 0. instead of
3185 # -0. on some architectures.
3186 AC_MSG_CHECKING(whether tanh preserves the sign of zero)
3187 AC_CACHE_VAL(ac_cv_tanh_preserves_zero_sign, [
3192 /* return 0 if either negative zeros don't exist
3193 on this platform or if negative zeros exist
3194 and tanh(-0.) == -0. */
3195 if (atan2(0., -1.) == atan2(-0., -1.) ||
3196 atan2(tanh(-0.), -1.) == atan2(-0., -1.)) exit(0);
3200 ac_cv_tanh_preserves_zero_sign=yes,
3201 ac_cv_tanh_preserves_zero_sign=no,
3202 ac_cv_tanh_preserves_zero_sign=no)])
3203 AC_MSG_RESULT($ac_cv_tanh_preserves_zero_sign)
3204 if test "$ac_cv_tanh_preserves_zero_sign" = yes
3206 AC_DEFINE(TANH_PRESERVES_ZERO_SIGN, 1,
3207 [Define if tanh(-0.) is -0., or if platform doesn't have signed zeros])
3210 AC_CHECK_FUNCS([acosh asinh atanh copysign expm1 finite hypot log1p])
3211 AC_CHECK_DECLS([isinf, isnan, isfinite], [], [], [[#include <math.h>]])
3216 AC_CHECK_HEADER(wchar.h, [
3217 AC_DEFINE(HAVE_WCHAR_H, 1,
3218 [Define if the compiler provides a wchar.h header file.])
3224 # determine wchar_t size
3225 if test "$wchar_h" = yes
3227 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
3230 AC_MSG_CHECKING(for UCS-4 tcl)
3234 #if TCL_UTF_MAX != 6
3235 # error "NOT UCS4_TCL"
3237 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
3240 AC_MSG_RESULT($have_ucs4_tcl)
3242 # check whether wchar_t is signed or not
3243 if test "$wchar_h" = yes
3245 # check whether wchar_t is signed or not
3246 AC_MSG_CHECKING(whether wchar_t is signed)
3247 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
3252 /* Success: exit code 0 */
3253 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1);
3256 ac_cv_wchar_t_signed=yes,
3257 ac_cv_wchar_t_signed=no,
3258 ac_cv_wchar_t_signed=yes)])
3259 AC_MSG_RESULT($ac_cv_wchar_t_signed)
3262 AC_MSG_CHECKING(what type to use for unicode)
3263 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
3264 AC_ARG_ENABLE(unicode,
3265 AC_HELP_STRING(--enable-unicode@<:@=ucs@<:@24@:>@@:>@, Enable Unicode strings (default is yes)),
3267 [enable_unicode=yes])
3269 if test $enable_unicode = yes
3271 # Without any arguments, Py_UNICODE defaults to two-byte mode
3272 case "$have_ucs4_tcl" in
3273 yes) enable_unicode="ucs4"
3275 *) enable_unicode="ucs2"
3280 AH_TEMPLATE(Py_UNICODE_SIZE,
3281 [Define as the size of the unicode type.])
3282 case "$enable_unicode" in
3283 ucs2) unicode_size="2"
3284 AC_DEFINE(Py_UNICODE_SIZE,2)
3286 ucs4) unicode_size="4"
3287 AC_DEFINE(Py_UNICODE_SIZE,4)
3291 AH_TEMPLATE(PY_UNICODE_TYPE,
3292 [Define as the integral type used for Unicode representation.])
3294 AC_SUBST(UNICODE_OBJS)
3295 if test "$enable_unicode" = "no"
3298 AC_MSG_RESULT(not used)
3300 UNICODE_OBJS="Objects/unicodeobject.o Objects/unicodectype.o"
3301 AC_DEFINE(Py_USING_UNICODE, 1,
3302 [Define if you want to have a Unicode type.])
3304 # wchar_t is only usable if it maps to an unsigned type
3305 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
3306 -a "$ac_cv_wchar_t_signed" = "no"
3308 PY_UNICODE_TYPE="wchar_t"
3309 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
3310 [Define if you have a useable wchar_t type defined in wchar.h; useable
3311 means wchar_t must be an unsigned type with at least 16 bits. (see
3312 Include/unicodeobject.h).])
3313 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
3314 elif test "$ac_cv_sizeof_short" = "$unicode_size"
3316 PY_UNICODE_TYPE="unsigned short"
3317 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
3318 elif test "$ac_cv_sizeof_long" = "$unicode_size"
3320 PY_UNICODE_TYPE="unsigned long"
3321 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
3323 PY_UNICODE_TYPE="no type found"
3325 AC_MSG_RESULT($PY_UNICODE_TYPE)
3328 # check for endianness
3331 # Check whether right shifting a negative integer extends the sign bit
3332 # or fills with zeros (like the Cray J90, according to Tim Peters).
3333 AC_MSG_CHECKING(whether right shift extends the sign bit)
3334 AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
3338 exit(((-1)>>3 == -1) ? 0 : 1);
3341 ac_cv_rshift_extends_sign=yes,
3342 ac_cv_rshift_extends_sign=no,
3343 ac_cv_rshift_extends_sign=yes)])
3344 AC_MSG_RESULT($ac_cv_rshift_extends_sign)
3345 if test "$ac_cv_rshift_extends_sign" = no
3347 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
3348 [Define if i>>j for signed int i does not extend the sign bit
3352 # check for getc_unlocked and related locking functions
3353 AC_MSG_CHECKING(for getc_unlocked() and friends)
3354 AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
3355 AC_TRY_LINK([#include <stdio.h>],[
3356 FILE *f = fopen("/dev/null", "r");
3360 ], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
3361 AC_MSG_RESULT($ac_cv_have_getc_unlocked)
3362 if test "$ac_cv_have_getc_unlocked" = yes
3364 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
3365 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
3368 # check where readline lives
3369 # save the value of LIBS so we don't actually link Python with readline
3370 LIBS_no_readline=$LIBS
3372 # On some systems we need to link readline to a termcap compatible
3373 # library. NOTE: Keep the precedence of listed libraries synchronised
3375 py_cv_lib_readline=no
3376 AC_MSG_CHECKING([how to link readline libs])
3377 for py_libtermcap in "" ncursesw ncurses curses termcap; do
3378 if test -z "$py_libtermcap"; then
3379 READLINE_LIBS="-lreadline"
3381 READLINE_LIBS="-lreadline -l$py_libtermcap"
3383 LIBS="$READLINE_LIBS $LIBS_no_readline"
3385 [AC_LANG_CALL([],[readline])],
3386 [py_cv_lib_readline=yes])
3387 if test $py_cv_lib_readline = yes; then
3391 # Uncomment this line if you want to use READINE_LIBS in Makefile or scripts
3392 #AC_SUBST([READLINE_LIBS])
3393 if test $py_cv_lib_readline = no; then
3394 AC_MSG_RESULT([none])
3396 AC_MSG_RESULT([$READLINE_LIBS])
3397 AC_DEFINE(HAVE_LIBREADLINE, 1,
3398 [Define if you have the readline library (-lreadline).])
3401 # check for readline 2.1
3402 AC_CHECK_LIB(readline, rl_callback_handler_install,
3403 AC_DEFINE(HAVE_RL_CALLBACK, 1,
3404 [Define if you have readline 2.1]), ,$READLINE_LIBS)
3406 # check for readline 2.2
3407 AC_TRY_CPP([#include <readline/readline.h>],
3408 have_readline=yes, have_readline=no)
3409 if test $have_readline = yes
3411 AC_EGREP_HEADER([extern int rl_completion_append_character;],
3412 [readline/readline.h],
3413 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
3414 [Define if you have readline 2.2]), )
3417 # check for readline 4.0
3418 AC_CHECK_LIB(readline, rl_pre_input_hook,
3419 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
3420 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3423 AC_CHECK_LIB(readline, rl_completion_display_matches_hook,
3424 AC_DEFINE(HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK, 1,
3425 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3427 # check for readline 4.2
3428 AC_CHECK_LIB(readline, rl_completion_matches,
3429 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
3430 [Define if you have readline 4.2]), ,$READLINE_LIBS)
3432 # also in readline 4.2
3433 AC_TRY_CPP([#include <readline/readline.h>],
3434 have_readline=yes, have_readline=no)
3435 if test $have_readline = yes
3437 AC_EGREP_HEADER([extern int rl_catch_signals;],
3438 [readline/readline.h],
3439 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
3440 [Define if you can turn off readline's signal handling.]), )
3443 # End of readline checks: restore LIBS
3444 LIBS=$LIBS_no_readline
3446 AC_MSG_CHECKING(for broken nice())
3447 AC_CACHE_VAL(ac_cv_broken_nice, [
3452 if (val1 != -1 && val1 == nice(2))
3457 ac_cv_broken_nice=yes,
3458 ac_cv_broken_nice=no,
3459 ac_cv_broken_nice=no)])
3460 AC_MSG_RESULT($ac_cv_broken_nice)
3461 if test "$ac_cv_broken_nice" = yes
3463 AC_DEFINE(HAVE_BROKEN_NICE, 1,
3464 [Define if nice() returns success/failure instead of the new priority.])
3467 AC_MSG_CHECKING(for broken poll())
3473 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
3477 int poll_test = poll (&poll_struct, 1, 0);
3483 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
3493 ac_cv_broken_poll=yes,
3494 ac_cv_broken_poll=no,
3495 ac_cv_broken_poll=no)
3496 AC_MSG_RESULT($ac_cv_broken_poll)
3497 if test "$ac_cv_broken_poll" = yes
3499 AC_DEFINE(HAVE_BROKEN_POLL, 1,
3500 [Define if poll() sets errno on invalid file descriptors.])
3503 # Before we can test tzset, we need to check if struct tm has a tm_zone
3504 # (which is not required by ISO C or UNIX spec) and/or if we support
3508 # check tzset(3) exists and works like we expect it to
3509 AC_MSG_CHECKING(for working tzset())
3510 AC_CACHE_VAL(ac_cv_working_tzset, [
3517 extern char *tzname[];
3522 /* Note that we need to ensure that not only does tzset(3)
3523 do 'something' with localtime, but it works as documented
3524 in the library reference and as expected by the test suite.
3525 This includes making sure that tzname is set properly if
3526 tm->tm_zone does not exist since it is the alternative way
3527 of getting timezone info.
3529 Red Hat 6.2 doesn't understand the southern hemisphere
3530 after New Year's Day.
3533 time_t groundhogday = 1044144000; /* GMT-based */
3534 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
3538 if (localtime(&groundhogday)->tm_hour != 0)
3541 /* For UTC, tzname[1] is sometimes "", sometimes " " */
3542 if (strcmp(tzname[0], "UTC") ||
3543 (tzname[1][0] != 0 && tzname[1][0] != ' '))
3547 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
3549 if (localtime(&groundhogday)->tm_hour != 19)
3552 if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT"))
3556 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
3558 if (localtime(&groundhogday)->tm_hour != 11)
3561 if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT"))
3565 #if HAVE_STRUCT_TM_TM_ZONE
3566 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
3568 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
3575 ac_cv_working_tzset=yes,
3576 ac_cv_working_tzset=no,
3577 ac_cv_working_tzset=no)])
3578 AC_MSG_RESULT($ac_cv_working_tzset)
3579 if test "$ac_cv_working_tzset" = yes
3581 AC_DEFINE(HAVE_WORKING_TZSET, 1,
3582 [Define if tzset() actually switches the local timezone in a meaningful way.])
3585 # Look for subsecond timestamps in struct stat
3586 AC_MSG_CHECKING(for tv_nsec in struct stat)
3587 AC_CACHE_VAL(ac_cv_stat_tv_nsec,
3588 AC_TRY_COMPILE([#include <sys/stat.h>], [
3590 st.st_mtim.tv_nsec = 1;
3592 ac_cv_stat_tv_nsec=yes,
3593 ac_cv_stat_tv_nsec=no,
3594 ac_cv_stat_tv_nsec=no))
3595 AC_MSG_RESULT($ac_cv_stat_tv_nsec)
3596 if test "$ac_cv_stat_tv_nsec" = yes
3598 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
3599 [Define if you have struct stat.st_mtim.tv_nsec])
3602 # Look for BSD style subsecond timestamps in struct stat
3603 AC_MSG_CHECKING(for tv_nsec2 in struct stat)
3604 AC_CACHE_VAL(ac_cv_stat_tv_nsec2,
3605 AC_TRY_COMPILE([#include <sys/stat.h>], [
3607 st.st_mtimespec.tv_nsec = 1;
3609 ac_cv_stat_tv_nsec2=yes,
3610 ac_cv_stat_tv_nsec2=no,
3611 ac_cv_stat_tv_nsec2=no))
3612 AC_MSG_RESULT($ac_cv_stat_tv_nsec2)
3613 if test "$ac_cv_stat_tv_nsec2" = yes
3615 AC_DEFINE(HAVE_STAT_TV_NSEC2, 1,
3616 [Define if you have struct stat.st_mtimensec])
3619 # On HP/UX 11.0, mvwdelch is a block with a return statement
3620 AC_MSG_CHECKING(whether mvwdelch is an expression)
3621 AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
3622 AC_TRY_COMPILE([#include <curses.h>], [
3624 rtn = mvwdelch(0,0,0);
3625 ], ac_cv_mvwdelch_is_expression=yes,
3626 ac_cv_mvwdelch_is_expression=no,
3627 ac_cv_mvwdelch_is_expression=yes))
3628 AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
3630 if test "$ac_cv_mvwdelch_is_expression" = yes
3632 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
3633 [Define if mvwdelch in curses.h is an expression.])
3636 AC_MSG_CHECKING(whether WINDOW has _flags)
3637 AC_CACHE_VAL(ac_cv_window_has_flags,
3638 AC_TRY_COMPILE([#include <curses.h>], [
3641 ], ac_cv_window_has_flags=yes,
3642 ac_cv_window_has_flags=no,
3643 ac_cv_window_has_flags=no))
3644 AC_MSG_RESULT($ac_cv_window_has_flags)
3647 if test "$ac_cv_window_has_flags" = yes
3649 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3650 [Define if WINDOW in curses.h offers a field _flags.])
3653 AC_MSG_CHECKING(for is_term_resized)
3654 AC_TRY_COMPILE([#include <curses.h>], void *x=is_term_resized,
3655 AC_DEFINE(HAVE_CURSES_IS_TERM_RESIZED, 1, Define if you have the 'is_term_resized' function.)
3660 AC_MSG_CHECKING(for resize_term)
3661 AC_TRY_COMPILE([#include <curses.h>], void *x=resize_term,
3662 AC_DEFINE(HAVE_CURSES_RESIZE_TERM, 1, Define if you have the 'resize_term' function.)
3667 AC_MSG_CHECKING(for resizeterm)
3668 AC_TRY_COMPILE([#include <curses.h>], void *x=resizeterm,
3669 AC_DEFINE(HAVE_CURSES_RESIZETERM, 1, Define if you have the 'resizeterm' function.)
3674 AC_MSG_CHECKING(for /dev/ptmx)
3676 if test -r /dev/ptmx
3679 AC_DEFINE(HAVE_DEV_PTMX, 1,
3680 [Define if we have /dev/ptmx.])
3685 AC_MSG_CHECKING(for /dev/ptc)
3690 AC_DEFINE(HAVE_DEV_PTC, 1,
3691 [Define if we have /dev/ptc.])
3696 AC_MSG_CHECKING(for %zd printf() format support)
3697 AC_TRY_RUN([#include <stdio.h>
3701 #ifdef HAVE_SYS_TYPES_H
3702 #include <sys/types.h>
3706 typedef ssize_t Py_ssize_t;
3707 #elif SIZEOF_VOID_P == SIZEOF_LONG
3708 typedef long Py_ssize_t;
3710 typedef int Py_ssize_t;
3717 if(sprintf(buffer, "%zd", (size_t)123) < 0)
3720 if (strcmp(buffer, "123"))
3723 if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
3726 if (strcmp(buffer, "-123"))
3732 AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
3735 AC_CHECK_TYPE(socklen_t,,
3736 AC_DEFINE(socklen_t,int,
3737 Define to `int' if <sys/socket.h> does not define.),[
3738 #ifdef HAVE_SYS_TYPES_H
3739 #include <sys/types.h>
3741 #ifdef HAVE_SYS_SOCKET_H
3742 #include <sys/socket.h>
3746 AC_SUBST(THREADHEADERS)
3748 for h in `(cd $srcdir;echo Python/thread_*.h)`
3750 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3754 SRCDIRS="Parser Grammar Objects Python Modules Mac"
3755 AC_MSG_CHECKING(for build directories)
3756 for dir in $SRCDIRS; do
3757 if test ! -d $dir; then
3763 # generate output files
3764 AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
3767 echo "creating Modules/Setup"
3768 if test ! -f Modules/Setup
3770 cp $srcdir/Modules/Setup.dist Modules/Setup
3773 echo "creating Modules/Setup.local"
3774 if test ! -f Modules/Setup.local
3776 echo "# Edit this file for local setup changes" >Modules/Setup.local
3779 echo "creating Makefile"
3780 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3781 -s Modules Modules/Setup.config \
3782 Modules/Setup.local Modules/Setup
3784 case $ac_sys_system in
3788 Support for BeOS is deprecated as of Python 2.6.
3789 See PEP 11 for the gory details.