1 dnl ***********************************************
2 dnl * Please run autoreconf to test your changes! *
3 dnl ***********************************************
4 dnl NOTE: autoconf 2.64 doesn't seem to work (use 2.61).
6 # Set VERSION so we only need to edit in one place (i.e., here)
7 m4_define(PYTHON_VERSION, 3.1)
9 AC_REVISION($Revision$)
11 AC_INIT(python, PYTHON_VERSION, http://bugs.python.org/)
12 AC_CONFIG_SRCDIR([Include/object.h])
13 AC_CONFIG_HEADER(pyconfig.h)
15 dnl Ensure that if prefix is specified, it does not end in a slash. If
16 dnl it does, we get path names containing '//' which is both ugly and
17 dnl can cause trouble.
19 dnl Last slash shouldn't be stripped if prefix=/
20 if test "$prefix" != "/"; then
21 prefix=`echo "$prefix" | sed -e 's/\/$//g'`
24 dnl This is for stuff that absolutely must end up in pyconfig.h.
25 dnl Please use pyport.h instead, if possible.
31 /* Define the macros needed if on a UnixWare 7.x system. */
32 #if defined(__USLC__) && defined(__SCO_VERSION__)
33 #define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
36 #endif /*Py_PYCONFIG_H*/
39 # We don't use PACKAGE_ variables, and they cause conflicts
40 # with other autoconf-based packages that include Python.h
41 grep -v 'define PACKAGE_' <confdefs.h >confdefs.h.new
43 mv confdefs.h.new confdefs.h
46 VERSION=PYTHON_VERSION
51 # The later defininition of _XOPEN_SOURCE disables certain features
52 # on Linux, so we need _GNU_SOURCE to re-enable them (makedev, tm_zone).
53 AC_DEFINE(_GNU_SOURCE, 1, [Define on Linux to activate all library features])
55 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
56 # certain features on NetBSD, so we need _NETBSD_SOURCE to re-enable
58 AC_DEFINE(_NETBSD_SOURCE, 1, [Define on NetBSD to activate all library features])
60 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
61 # certain features on FreeBSD, so we need __BSD_VISIBLE to re-enable
63 AC_DEFINE(__BSD_VISIBLE, 1, [Define on FreeBSD to activate all library features])
65 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
66 # u_int on Irix 5.3. Defining _BSD_TYPES brings it back.
67 AC_DEFINE(_BSD_TYPES, 1, [Define on Irix to enable u_int])
69 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
70 # certain features on Mac OS X, so we need _DARWIN_C_SOURCE to re-enable
72 AC_DEFINE(_DARWIN_C_SOURCE, 1, [Define on Darwin to activate all library features])
75 define_xopen_source=yes
77 # Arguments passed to configure.
79 CONFIG_ARGS="$ac_configure_args"
81 AC_MSG_CHECKING([for --enable-universalsdk])
82 AC_ARG_ENABLE(universalsdk,
83 AC_HELP_STRING(--enable-universalsdk@<:@=SDKDIR@:>@, Build against Mac OS X 10.4u SDK (ppc/i386)),
87 enableval=/Developer/SDKs/MacOSX10.4u.sdk
88 if test ! -d "${enableval}"
100 UNIVERSALSDK=$enableval
101 if test ! -d "${UNIVERSALSDK}"
103 AC_MSG_ERROR([--enable-universalsdk specifies non-existing SDK: ${UNIVERSALSDK}])
112 if test -n "${UNIVERSALSDK}"
114 AC_MSG_RESULT(${UNIVERSALSDK})
118 AC_SUBST(UNIVERSALSDK)
120 AC_SUBST(ARCH_RUN_32BIT)
122 UNIVERSAL_ARCHS="32-bit"
123 AC_MSG_CHECKING(for --with-universal-archs)
124 AC_ARG_WITH(universal-archs,
125 AC_HELP_STRING(--with-universal-archs=ARCH, select architectures for universal build ("32-bit", "64-bit", "3-way", "intel" or "all")),
127 AC_MSG_RESULT($withval)
128 UNIVERSAL_ARCHS="$withval"
131 AC_MSG_RESULT(32-bit)
136 AC_ARG_WITH(framework-name,
137 AC_HELP_STRING(--with-framework-name=FRAMEWORK,
138 specify an alternate name of the framework built with --enable-framework),
140 PYTHONFRAMEWORK=${withval}
141 PYTHONFRAMEWORKDIR=${withval}.framework
142 PYTHONFRAMEWORKIDENTIFIER=org.python.`echo $withval | tr '[A-Z]' '[a-z]'`
144 PYTHONFRAMEWORK=Python
145 PYTHONFRAMEWORKDIR=Python.framework
146 PYTHONFRAMEWORKIDENTIFIER=org.python.python
148 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
149 AC_ARG_ENABLE(framework,
150 AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework),
154 enableval=/Library/Frameworks
159 PYTHONFRAMEWORKDIR=no-framework
160 PYTHONFRAMEWORKPREFIX=
161 PYTHONFRAMEWORKINSTALLDIR=
162 FRAMEWORKINSTALLFIRST=
163 FRAMEWORKINSTALLLAST=
164 FRAMEWORKALTINSTALLFIRST=
165 FRAMEWORKALTINSTALLLAST=
166 if test "x${prefix}" = "xNONE"; then
167 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
169 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
174 PYTHONFRAMEWORKPREFIX=$enableval
175 PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
176 FRAMEWORKINSTALLFIRST="frameworkinstallstructure"
177 FRAMEWORKALTINSTALLFIRST="frameworkinstallstructure "
178 if test "$UNIVERSAL_ARCHS" = "all"
180 FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps4way frameworkinstallunixtools4way"
181 FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps4way frameworkaltinstallunixtools4way"
183 FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools"
184 FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools"
187 if test "x${prefix}" = "xNONE" ; then
188 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
190 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
192 prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
194 # Add files for Mac specific code to the list of output
196 AC_CONFIG_FILES(Mac/Makefile)
197 AC_CONFIG_FILES(Mac/PythonLauncher/Makefile)
198 AC_CONFIG_FILES(Mac/Resources/framework/Info.plist)
199 AC_CONFIG_FILES(Mac/Resources/app/Info.plist)
203 PYTHONFRAMEWORKDIR=no-framework
204 PYTHONFRAMEWORKPREFIX=
205 PYTHONFRAMEWORKINSTALLDIR=
206 FRAMEWORKINSTALLFIRST=
207 FRAMEWORKINSTALLLAST=
208 FRAMEWORKALTINSTALLFIRST=
209 FRAMEWORKALTINSTALLLAST=
210 if test "x${prefix}" = "xNONE" ; then
211 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
213 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
217 if test "$UNIVERSAL_ARCHS" = "all"
219 FRAMEWORKINSTALLLAST=update4wayuniversal
220 FRAMEWORKALTINSTALLLAST=update4wayuniversal
223 AC_SUBST(PYTHONFRAMEWORK)
224 AC_SUBST(PYTHONFRAMEWORKIDENTIFIER)
225 AC_SUBST(PYTHONFRAMEWORKDIR)
226 AC_SUBST(PYTHONFRAMEWORKPREFIX)
227 AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)
228 AC_SUBST(FRAMEWORKINSTALLFIRST)
229 AC_SUBST(FRAMEWORKINSTALLLAST)
230 AC_SUBST(FRAMEWORKALTINSTALLFIRST)
231 AC_SUBST(FRAMEWORKALTINSTALLLAST)
232 AC_SUBST(FRAMEWORKUNIXTOOLSPREFIX)
235 ## AC_HELP_STRING(--with-dyld,
236 ## Use (OpenStep|Rhapsody) dynamic linker))
238 # Set name for machine-dependent library files
240 AC_MSG_CHECKING(MACHDEP)
241 if test -z "$MACHDEP"
243 ac_sys_system=`uname -s`
244 if test "$ac_sys_system" = "AIX" \
245 -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
246 ac_sys_release=`uname -v`
248 ac_sys_release=`uname -r`
250 ac_md_system=`echo $ac_sys_system |
251 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
252 ac_md_release=`echo $ac_sys_release |
253 tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
254 MACHDEP="$ac_md_system$ac_md_release"
257 cygwin*) MACHDEP="cygwin";;
258 darwin*) MACHDEP="darwin";;
259 atheos*) MACHDEP="atheos";;
260 irix646) MACHDEP="irix6";;
261 '') MACHDEP="unknown";;
265 # Some systems cannot stand _XOPEN_SOURCE being defined at all; they
266 # disable features if it is defined, without any means to access these
267 # features as extensions. For these systems, we skip the definition of
268 # _XOPEN_SOURCE. Before adding a system to the list to gain access to
269 # some feature, make sure there is no alternative way to access this
270 # feature. Also, when using wildcards, make sure you have verified the
271 # need for not defining _XOPEN_SOURCE on all systems matching the
272 # wildcard, and that the wildcard does not include future systems
273 # (which may remove their limitations).
274 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
275 case $ac_sys_system/$ac_sys_release in
276 # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined,
277 # even though select is a POSIX function. Reported by J. Ribbens.
278 # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
279 # In addition, Stefan Krah confirms that issue #1244610 exists through
280 # OpenBSD 4.6, but is fixed in 4.7.
281 OpenBSD/2.* | OpenBSD/3.@<:@0123456789@:>@ | OpenBSD/4.@<:@0123456@:>@)
282 define_xopen_source=no
283 # OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is
284 # also defined. This can be overridden by defining _BSD_SOURCE
285 # As this has a different meaning on Linux, only define it on OpenBSD
286 AC_DEFINE(_BSD_SOURCE, 1, [Define on OpenBSD to activate all library features])
288 OpenBSD/4.@<:@789@:>@)
289 # OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is
290 # also defined. This can be overridden by defining _BSD_SOURCE
291 # As this has a different meaning on Linux, only define it on OpenBSD
292 AC_DEFINE(_BSD_SOURCE, 1, [Define on OpenBSD to activate all library features])
294 # Defining _XOPEN_SOURCE on NetBSD version prior to the introduction of
295 # _NETBSD_SOURCE disables certain features (eg. setgroups). Reported by
297 NetBSD/1.5 | NetBSD/1.5.* | NetBSD/1.6 | NetBSD/1.6.* | NetBSD/1.6@<:@A-S@:>@)
298 define_xopen_source=no;;
299 # On Solaris 2.6, sys/wait.h is inconsistent in the usage
300 # of union __?sigval. Reported by Stuart Bishop.
302 define_xopen_source=no;;
303 # On UnixWare 7, u_long is never defined with _XOPEN_SOURCE,
304 # but used in /usr/include/netinet/tcp.h. Reported by Tim Rice.
305 # Reconfirmed for 7.1.4 by Martin v. Loewis.
306 OpenUNIX/8.0.0| UnixWare/7.1.@<:@0-4@:>@)
307 define_xopen_source=no;;
308 # On OpenServer 5, u_short is never defined with _XOPEN_SOURCE,
309 # but used in struct sockaddr.sa_family. Reported by Tim Rice.
311 define_xopen_source=no;;
312 # On FreeBSD 4, the math functions C89 does not cover are never defined
313 # with _XOPEN_SOURCE and __BSD_VISIBLE does not re-enable them.
315 define_xopen_source=no;;
316 # On MacOS X 10.2, a bug in ncurses.h means that it craps out if
317 # _XOPEN_EXTENDED_SOURCE is defined. Apparently, this is fixed in 10.3, which
318 # identifies itself as Darwin/7.*
319 # On Mac OS X 10.4, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
320 # disables platform specific features beyond repair.
321 # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
322 # has no effect, don't bother defining them
323 Darwin/@<:@6789@:>@.*)
324 define_xopen_source=no;;
325 # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
326 # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
327 # or has another value. By not (re)defining it, the defaults come in place.
329 define_xopen_source=no;;
331 if test `uname -r` -eq 1; then
332 define_xopen_source=no
335 # On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from
336 # defining NI_NUMERICHOST.
338 define_xopen_source=no
343 if test $define_xopen_source = yes
345 # On Solaris w/ g++ it appears that _XOPEN_SOURCE has to be
346 # defined precisely as g++ defines it
347 # Furthermore, on Solaris 10, XPG6 requires the use of a C99
349 case $ac_sys_system/$ac_sys_release in
350 SunOS/5.8|SunOS/5.9|SunOS/5.10)
351 AC_DEFINE(_XOPEN_SOURCE, 500,
352 Define to the level of X/Open that your system supports)
355 AC_DEFINE(_XOPEN_SOURCE, 600,
356 Define to the level of X/Open that your system supports)
360 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
361 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
362 # several APIs are not declared. Since this is also needed in some
363 # cases for HP-UX, we define it globally.
364 # except for Solaris 10, where it must not be defined,
365 # as it implies XPG4.2
366 case $ac_sys_system/$ac_sys_release in
370 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1,
371 Define to activate Unix95-and-earlier features)
375 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
380 # SGI compilers allow the specification of the both the ABI and the
381 # ISA on the command line. Depending on the values of these switches,
382 # different and often incompatable code will be generated.
384 # The SGI_ABI variable can be used to modify the CC and LDFLAGS and
385 # thus supply support for various ABI/ISA combinations. The MACHDEP
386 # variable is also adjusted.
389 if test ! -z "$SGI_ABI"
392 LDFLAGS="$SGI_ABI $LDFLAGS"
393 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
395 AC_MSG_RESULT($MACHDEP)
397 # Record the configure-time value of MACOSX_DEPLOYMENT_TARGET,
398 # it may influence the way we can build extensions, so distutils
400 AC_SUBST(CONFIGURE_MACOSX_DEPLOYMENT_TARGET)
401 AC_SUBST(EXPORT_MACOSX_DEPLOYMENT_TARGET)
402 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
403 EXPORT_MACOSX_DEPLOYMENT_TARGET='#'
405 AC_MSG_CHECKING(machine type as reported by uname -m)
406 ac_sys_machine=`uname -m`
407 AC_MSG_RESULT($ac_sys_machine)
409 # checks for alternative programs
411 # compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
412 # for debug/optimization stuff. BASECFLAGS is for flags that are required
413 # just to get things to compile and link. Users are free to override OPT
414 # when running configure or make. The build should not break if they do.
415 # BASECFLAGS should generally not be messed with, however.
417 # XXX shouldn't some/most/all of this code be merged with the stuff later
418 # on that fiddles with OPT and BASECFLAGS?
419 AC_MSG_CHECKING(for --without-gcc)
421 AC_HELP_STRING(--without-gcc,never use gcc),
429 without_gcc=$withval;;
431 case $ac_sys_system in
436 AC_MSG_RESULT($without_gcc)
438 # If the user switches compilers, we can't believe the cache
439 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
441 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
442 (it is also a good idea to do 'make clean' before compiling)])
449 AC_MSG_CHECKING(for --with-cxx-main=<compiler>)
450 AC_ARG_WITH(cxx_main,
451 AC_HELP_STRING([--with-cxx-main=<compiler>],
452 [compile main() and link python executable with C++ compiler]),
458 yes) with_cxx_main=yes
470 AC_MSG_RESULT($with_cxx_main)
476 gcc) AC_PATH_PROG(CXX, [g++], [g++], [notfound]) ;;
477 cc) AC_PATH_PROG(CXX, [c++], [c++], [notfound]) ;;
479 if test "$CXX" = "notfound"
486 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
487 if test "$CXX" = "notfound"
492 if test "$preset_cxx" != "$CXX"
496 By default, distutils will build C++ extension modules with "$CXX".
497 If this is not intended, then set CXX on the configure command line.
502 # checks for UNIX variants that set C preprocessor variables
505 # Check for unsupported systems
506 case $ac_sys_system/$ac_sys_release in
508 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
509 echo See README for details.
514 AC_MSG_CHECKING(for --with-suffix)
516 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
523 AC_MSG_RESULT($EXEEXT)
525 # Test whether we're running on a non-case-sensitive system, in which
526 # case we give a warning if no ext is given
527 AC_SUBST(BUILDEXEEXT)
528 AC_MSG_CHECKING(for case-insensitive build directory)
529 if test ! -d CaseSensitiveTestDir; then
530 mkdir CaseSensitiveTestDir
533 if test -d casesensitivetestdir
541 rmdir CaseSensitiveTestDir
546 gcc) CC="$CC -D_HAVE_BSDI";;
550 case $ac_sys_system in
553 cc|*/cc) CC="$CC -Ae";;
556 # Some functions have a prototype only with that define, e.g. confstr
557 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
563 AC_MSG_CHECKING(LIBRARY)
564 if test -z "$LIBRARY"
566 LIBRARY='libpython$(VERSION).a'
568 AC_MSG_RESULT($LIBRARY)
570 # LDLIBRARY is the name of the library to link against (as opposed to the
571 # name of the library into which to insert object files). BLDLIBRARY is also
572 # the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
573 # is blank as the main program is not linked directly against LDLIBRARY.
574 # LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
575 # systems without shared libraries, LDLIBRARY is the same as LIBRARY
576 # (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
577 # DLLLIBRARY is the shared (i.e., DLL) library.
579 # RUNSHARED is used to run shared python without installed libraries
581 # INSTSONAME is the name of the shared library that will be use to install
582 # on the system - some systems like version suffix, others don't
586 AC_SUBST(LDLIBRARYDIR)
590 BLDLIBRARY='$(LDLIBRARY)'
591 INSTSONAME='$(LDLIBRARY)'
596 # LINKCC is the command that links the python executable -- default is $(CC).
597 # If CXX is set, and if it is needed to link a main function that was
598 # compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
599 # python might then depend on the C++ runtime
600 # This is altered for AIX in order to build the export list before
603 AC_MSG_CHECKING(LINKCC)
606 LINKCC='$(PURIFY) $(MAINCC)'
607 case $ac_sys_system in
610 if test $ac_sys_release -ge 5 -o \
611 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
614 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
616 # qcc must be used because the other compilers do not
621 AC_MSG_RESULT($LINKCC)
623 # GNULD is set to "yes" if the GNU linker is used. If this goes wrong
624 # make sure we default having it set to "no": this is used by
625 # distutils.unixccompiler to know if it should add --enable-new-dtags
626 # to linker command lines, and failing to detect GNU ld simply results
627 # in the same bahaviour as before.
629 AC_MSG_CHECKING(for GNU ld)
631 if test "$GCC" = yes; then
632 ac_prog=`$CC -print-prog-name=ld`
634 case `"$ac_prog" -V 2>&1 < /dev/null` in
640 AC_MSG_RESULT($GNULD)
642 AC_MSG_CHECKING(for --enable-shared)
643 AC_ARG_ENABLE(shared,
644 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
646 if test -z "$enable_shared"
648 case $ac_sys_system in
650 enable_shared="yes";;
655 AC_MSG_RESULT($enable_shared)
657 AC_MSG_CHECKING(for --enable-profiling)
658 AC_ARG_ENABLE(profiling,
659 AC_HELP_STRING(--enable-profiling, enable C-level code profiling),
662 AC_TRY_RUN([int main() { return 0; }],
663 ac_enable_profiling="yes",
664 ac_enable_profiling="no",
665 ac_enable_profiling="no")
667 AC_MSG_RESULT($ac_enable_profiling)
669 case "$ac_enable_profiling" in
671 BASECFLAGS="-pg $BASECFLAGS"
672 LDFLAGS="-pg $LDFLAGS"
676 AC_MSG_CHECKING(LDLIBRARY)
678 # MacOSX framework builds need more magic. LDLIBRARY is the dynamic
679 # library that we build, but we do not want to link against it (we
680 # will find it with a -framework option). For this reason there is an
681 # extra variable BLDLIBRARY against which Python and the extension
682 # modules are linked, BLDLIBRARY. This is normally the same as
683 # LDLIBRARY, but empty for MacOSX framework builds.
684 if test "$enable_framework"
686 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
687 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
690 BLDLIBRARY='$(LDLIBRARY)'
693 # Other platforms follow
694 if test $enable_shared = "yes"; then
695 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
696 case $ac_sys_system in
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)
762 # tweak ARFLAGS only if the user didn't set it on the command line
764 if test -z "$ARFLAGS"
770 AC_CHECK_PROG(SVNVERSION, svnversion, found, not-found)
771 if test $SVNVERSION = found
773 SVNVERSION="svnversion \$(srcdir)"
775 SVNVERSION="echo Unversioned directory"
780 # install -d does not work on BSDI or HP-UX
781 if test -z "$INSTALL"
783 INSTALL="${srcdir}/install-sh -c"
788 # Not every filesystem supports hard links
790 if test -z "$LN" ; then
791 case $ac_sys_system in
792 CYGWIN*) LN="ln -s";;
793 atheos*) LN="ln -s";;
798 # Check for --with-pydebug
799 AC_MSG_CHECKING(for --with-pydebug)
801 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
803 if test "$withval" != no
805 AC_DEFINE(Py_DEBUG, 1,
806 [Define if you want to build an interpreter with many run-time checks.])
809 else AC_MSG_RESULT(no); Py_DEBUG='false'
813 # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
814 # merged with this chunk of code?
816 # Optimizer/debugger flags
817 # ------------------------
818 # (The following bit of code is complicated enough - please keep things
819 # indented properly. Just pretend you're editing Python code. ;-)
821 # There are two parallel sets of case statements below, one that checks to
822 # see if OPT was set and one that does BASECFLAGS setting based upon
823 # compiler and platform. BASECFLAGS tweaks need to be made even if the
826 # tweak OPT based on compiler and platform, only if the user didn't set
827 # it on the command line
833 if test "$CC" != 'g++' ; then
834 STRICT_PROTO="-Wstrict-prototypes"
836 # For gcc 4.x we need to use -fwrapv so lets check if its supported
837 if "$CC" -v --help 2>/dev/null |grep -- -fwrapv > /dev/null; then
840 case $ac_cv_prog_cc_g in
842 if test "$Py_DEBUG" = 'true' ; then
843 # Optimization messes up debuggers, so turn it off for
845 OPT="-g -Wall $STRICT_PROTO"
847 OPT="-g $WRAP -O3 -Wall $STRICT_PROTO"
851 OPT="-O3 -Wall $STRICT_PROTO"
854 case $ac_sys_system in
855 SCO_SV*) OPT="$OPT -m486 -DSCO5"
868 # The -arch flags for universal builds on OSX
869 UNIVERSAL_ARCH_FLAGS=
870 AC_SUBST(UNIVERSAL_ARCH_FLAGS)
872 # tweak BASECFLAGS based on compiler and platform
875 # Python violates C99 rules, by casting between incompatible
876 # pointer types. GCC may generate bad code as a result of that,
877 # so use -fno-strict-aliasing if supported.
878 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
880 CC="$CC -fno-strict-aliasing"
881 AC_TRY_RUN([int main() { return 0; }],
882 ac_cv_no_strict_aliasing_ok=yes,
883 ac_cv_no_strict_aliasing_ok=no,
884 ac_cv_no_strict_aliasing_ok=no)
886 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
887 if test $ac_cv_no_strict_aliasing_ok = yes
889 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
892 # if using gcc on alpha, use -mieee to get (near) full IEEE 754
893 # support. Without this, treatment of subnormals doesn't follow
895 case $ac_sys_machine in
897 BASECFLAGS="$BASECFLAGS -mieee"
901 case $ac_sys_system in
903 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
905 # is there any other compiler on Darwin besides gcc?
907 # -Wno-long-double, -no-cpp-precomp, and -mno-fused-madd
908 # used to be here, but non-Apple gcc doesn't accept them.
911 if test "${enable_universalsdk}"; then
912 UNIVERSAL_ARCH_FLAGS=""
913 if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
914 UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
917 elif test "$UNIVERSAL_ARCHS" = "64-bit" ; then
918 UNIVERSAL_ARCH_FLAGS="-arch ppc64 -arch x86_64"
919 ARCH_RUN_32BIT="true"
921 elif test "$UNIVERSAL_ARCHS" = "all" ; then
922 UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
923 ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
925 elif test "$UNIVERSAL_ARCHS" = "intel" ; then
926 UNIVERSAL_ARCH_FLAGS="-arch i386 -arch x86_64"
927 ARCH_RUN_32BIT="/usr/bin/arch -i386"
929 elif test "$UNIVERSAL_ARCHS" = "3-way" ; then
930 UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch x86_64"
931 ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
934 AC_MSG_ERROR([proper usage is --with-universal-arch=32-bit|64-bit|all|intel|3-way])
939 BASECFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${BASECFLAGS}"
940 tgt=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
941 if test "${UNIVERSALSDK}" != "/" -a "${tgt}" '>' '10.4' ; then
942 CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
946 # Calculate the right deployment target for this build.
948 cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
949 if test ${cur_target} '>' 10.2; then
951 if test ${enable_universalsdk}; then
952 if test "${UNIVERSAL_ARCHS}" = "all"; then
953 # Ensure that the default platform for a
954 # 4-way universal build is OSX 10.5,
955 # that's the first OS release where
956 # 4-way builds make sense.
959 elif test "${UNIVERSAL_ARCHS}" = "3-way"; then
962 elif test "${UNIVERSAL_ARCHS}" = "intel"; then
965 elif test "${UNIVERSAL_ARCHS}" = "64-bit"; then
969 if test `/usr/bin/arch` = "i386"; then
970 # On Intel macs default to a deployment
971 # target of 10.4, that's the first OSX
972 # release with Intel support.
977 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
979 # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
980 # environment with a value that is the same as what we'll use
981 # in the Makefile to ensure that we'll get the same compiler
982 # environment during configure and build time.
983 MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
984 export MACOSX_DEPLOYMENT_TARGET
985 EXPORT_MACOSX_DEPLOYMENT_TARGET=''
989 BASECFLAGS="$BASECFLAGS -mieee"
995 case $ac_sys_system in
997 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
1000 BASECFLAGS="$BASECFLAGS -ieee -std"
1003 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
1009 if test "$Py_DEBUG" = 'true'; then
1015 if test "$ac_arch_flags"
1017 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
1020 # disable check for icc since it seems to pass, but generates a warning
1023 ac_cv_opt_olimit_ok=no
1026 AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
1027 AC_CACHE_VAL(ac_cv_opt_olimit_ok,
1029 CC="$CC -OPT:Olimit=0"
1030 AC_TRY_RUN([int main() { return 0; }],
1031 ac_cv_opt_olimit_ok=yes,
1032 ac_cv_opt_olimit_ok=no,
1033 ac_cv_opt_olimit_ok=no)
1035 AC_MSG_RESULT($ac_cv_opt_olimit_ok)
1036 if test $ac_cv_opt_olimit_ok = yes; then
1037 case $ac_sys_system in
1038 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
1039 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
1044 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
1048 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
1049 AC_CACHE_VAL(ac_cv_olimit_ok,
1051 CC="$CC -Olimit 1500"
1052 AC_TRY_RUN([int main() { return 0; }],
1053 ac_cv_olimit_ok=yes,
1057 AC_MSG_RESULT($ac_cv_olimit_ok)
1058 if test $ac_cv_olimit_ok = yes; then
1059 BASECFLAGS="$BASECFLAGS -Olimit 1500"
1063 # Check whether GCC supports PyArg_ParseTuple format
1064 if test "$GCC" = "yes"
1066 AC_MSG_CHECKING(whether gcc supports ParseTuple __format__)
1068 CFLAGS="$CFLAGS -Werror"
1070 void f(char*,...)__attribute((format(PyArg_ParseTuple, 1, 2)));
1072 AC_DEFINE(HAVE_ATTRIBUTE_FORMAT_PARSETUPLE, 1, [Define if GCC supports __attribute__((format(PyArg_ParseTuple, 2, 3)))])
1079 # On some compilers, pthreads are available without further options
1080 # (e.g. MacOS X). On some of these systems, the compiler will not
1081 # complain if unaccepted options are passed (e.g. gcc on Mac OS X).
1082 # So we have to see first whether pthreads are available without
1083 # options before we can check whether -Kpthread improves anything.
1084 AC_MSG_CHECKING(whether pthreads are available without options)
1085 AC_CACHE_VAL(ac_cv_pthread_is_default,
1087 #include <pthread.h>
1089 void* routine(void* p){return NULL;}
1093 if(pthread_create(&p,NULL,routine,NULL)!=0)
1095 (void)pthread_detach(p);
1100 ac_cv_pthread_is_default=yes
1104 ac_cv_pthread_is_default=no,
1105 ac_cv_pthread_is_default=no)
1107 AC_MSG_RESULT($ac_cv_pthread_is_default)
1110 if test $ac_cv_pthread_is_default = yes
1114 # -Kpthread, if available, provides the right #defines
1115 # and linker options to make pthread_create available
1116 # Some compilers won't report that they do not support -Kpthread,
1117 # so we need to run a program to see whether it really made the
1118 # function available.
1119 AC_MSG_CHECKING(whether $CC accepts -Kpthread)
1120 AC_CACHE_VAL(ac_cv_kpthread,
1124 #include <pthread.h>
1126 void* routine(void* p){return NULL;}
1130 if(pthread_create(&p,NULL,routine,NULL)!=0)
1132 (void)pthread_detach(p);
1140 AC_MSG_RESULT($ac_cv_kpthread)
1143 if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
1145 # -Kthread, if available, provides the right #defines
1146 # and linker options to make pthread_create available
1147 # Some compilers won't report that they do not support -Kthread,
1148 # so we need to run a program to see whether it really made the
1149 # function available.
1150 AC_MSG_CHECKING(whether $CC accepts -Kthread)
1151 AC_CACHE_VAL(ac_cv_kthread,
1155 #include <pthread.h>
1157 void* routine(void* p){return NULL;}
1161 if(pthread_create(&p,NULL,routine,NULL)!=0)
1163 (void)pthread_detach(p);
1171 AC_MSG_RESULT($ac_cv_kthread)
1174 if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
1176 # -pthread, if available, provides the right #defines
1177 # and linker options to make pthread_create available
1178 # Some compilers won't report that they do not support -pthread,
1179 # so we need to run a program to see whether it really made the
1180 # function available.
1181 AC_MSG_CHECKING(whether $CC accepts -pthread)
1182 AC_CACHE_VAL(ac_cv_thread,
1186 #include <pthread.h>
1188 void* routine(void* p){return NULL;}
1192 if(pthread_create(&p,NULL,routine,NULL)!=0)
1194 (void)pthread_detach(p);
1202 AC_MSG_RESULT($ac_cv_pthread)
1205 # If we have set a CC compiler flag for thread support then
1206 # check if it works for CXX, too.
1210 AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
1213 if test "$ac_cv_kpthread" = "yes"
1215 CXX="$CXX -Kpthread"
1216 ac_cv_cxx_thread=yes
1217 elif test "$ac_cv_kthread" = "yes"
1220 ac_cv_cxx_thread=yes
1221 elif test "$ac_cv_pthread" = "yes"
1224 ac_cv_cxx_thread=yes
1227 if test $ac_cv_cxx_thread = yes
1229 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
1230 $CXX -c conftest.$ac_ext 2>&5
1231 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
1232 && test -s conftest$ac_exeext && ./conftest$ac_exeext
1234 ac_cv_cxx_thread=yes
1240 AC_MSG_RESULT($ac_cv_cxx_thread)
1244 dnl # check for ANSI or K&R ("traditional") preprocessor
1245 dnl AC_MSG_CHECKING(for C preprocessor type)
1246 dnl AC_TRY_COMPILE([
1247 dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
1249 dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
1250 dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
1251 dnl AC_MSG_RESULT($cpp_type)
1253 # checks for header files
1255 AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
1257 ieeefp.h io.h langinfo.h libintl.h ncurses.h poll.h process.h pthread.h \
1258 shadow.h signal.h stdint.h stropts.h termios.h thread.h \
1260 sys/audioio.h sys/bsdtty.h sys/epoll.h sys/event.h sys/file.h sys/loadavg.h \
1261 sys/lock.h sys/mkdev.h sys/modem.h \
1262 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/statvfs.h sys/stat.h \
1263 sys/termio.h sys/time.h \
1264 sys/times.h sys/types.h sys/un.h sys/utsname.h sys/wait.h pty.h libutil.h \
1265 sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
1266 bluetooth/bluetooth.h linux/tipc.h)
1270 # On Solaris, term.h requires curses.h
1271 AC_CHECK_HEADERS(term.h,,,[
1272 #ifdef HAVE_CURSES_H
1277 # On Linux, netlink.h requires asm/types.h
1278 AC_CHECK_HEADERS(linux/netlink.h,,,[
1279 #ifdef HAVE_ASM_TYPES_H
1280 #include <asm/types.h>
1282 #ifdef HAVE_SYS_SOCKET_H
1283 #include <sys/socket.h>
1287 # checks for typedefs
1289 AC_MSG_CHECKING(for clock_t in time.h)
1290 AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
1291 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
1293 AC_MSG_RESULT($was_it_defined)
1295 # Check whether using makedev requires defining _OSF_SOURCE
1296 AC_MSG_CHECKING(for makedev)
1297 AC_TRY_LINK([#include <sys/types.h> ],
1299 ac_cv_has_makedev=yes,
1300 ac_cv_has_makedev=no)
1301 if test "$ac_cv_has_makedev" = "no"; then
1302 # we didn't link, try if _OSF_SOURCE will allow us to link
1304 #define _OSF_SOURCE 1
1305 #include <sys/types.h>
1308 ac_cv_has_makedev=yes,
1309 ac_cv_has_makedev=no)
1310 if test "$ac_cv_has_makedev" = "yes"; then
1311 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
1314 AC_MSG_RESULT($ac_cv_has_makedev)
1315 if test "$ac_cv_has_makedev" = "yes"; then
1316 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
1319 # Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
1320 # the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
1321 # defined, but the compiler does not support pragma redefine_extname,
1322 # and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
1323 # structures (such as rlimit64) without declaring them. As a
1324 # work-around, disable LFS on such configurations
1327 AC_MSG_CHECKING(Solaris LFS bug)
1329 #define _LARGEFILE_SOURCE 1
1330 #define _FILE_OFFSET_BITS 64
1331 #include <sys/resource.h>
1332 ],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
1333 AC_MSG_RESULT($sol_lfs_bug)
1334 if test "$sol_lfs_bug" = "yes"; then
1338 if test "$use_lfs" = "yes"; then
1339 # Two defines needed to enable largefile support on various platforms
1340 # These may affect some typedefs
1341 AC_DEFINE(_LARGEFILE_SOURCE, 1,
1342 [This must be defined on some systems to enable large file support.])
1343 AC_DEFINE(_FILE_OFFSET_BITS, 64,
1344 [This must be set to 64 on some systems to enable large file support.])
1347 # Add some code to confdefs.h so that the test for off_t works on SCO
1348 cat >> confdefs.h <<\EOF
1354 # Type availability checks
1365 AC_CHECK_TYPE(ssize_t,
1366 AC_DEFINE(HAVE_SSIZE_T, 1, Define if your compiler provides ssize_t),,)
1368 # Sizes of various common basic types
1369 # ANSI C requires sizeof(char) == 1, so no need to check it
1370 AC_CHECK_SIZEOF(int, 4)
1371 AC_CHECK_SIZEOF(long, 4)
1372 AC_CHECK_SIZEOF(void *, 4)
1373 AC_CHECK_SIZEOF(short, 2)
1374 AC_CHECK_SIZEOF(float, 4)
1375 AC_CHECK_SIZEOF(double, 8)
1376 AC_CHECK_SIZEOF(fpos_t, 4)
1377 AC_CHECK_SIZEOF(size_t, 4)
1378 AC_CHECK_SIZEOF(pid_t, 4)
1380 AC_MSG_CHECKING(for long long support)
1382 AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1383 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1386 AC_MSG_RESULT($have_long_long)
1387 if test "$have_long_long" = yes ; then
1388 AC_CHECK_SIZEOF(long long, 8)
1391 AC_MSG_CHECKING(for long double support)
1393 AC_TRY_COMPILE([], [long double x; x = (long double)0;], [
1394 AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define this if you have the type long double.])
1395 have_long_double=yes
1397 AC_MSG_RESULT($have_long_double)
1398 if test "$have_long_double" = yes ; then
1399 AC_CHECK_SIZEOF(long double, 16)
1403 AC_MSG_CHECKING(for _Bool support)
1405 AC_TRY_COMPILE([], [_Bool x; x = (_Bool)0;], [
1406 AC_DEFINE(HAVE_C99_BOOL, 1, [Define this if you have the type _Bool.])
1409 AC_MSG_RESULT($have_c99_bool)
1410 if test "$have_c99_bool" = yes ; then
1411 AC_CHECK_SIZEOF(_Bool, 1)
1414 AC_CHECK_TYPES(uintptr_t,
1415 [AC_CHECK_SIZEOF(uintptr_t, 4)],
1416 [], [#ifdef HAVE_STDINT_H
1421 # Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1422 AC_MSG_CHECKING(size of off_t)
1423 AC_CACHE_VAL(ac_cv_sizeof_off_t,
1424 [AC_TRY_RUN([#include <stdio.h>
1425 #include <sys/types.h>
1428 FILE *f=fopen("conftestval", "w");
1430 fprintf(f, "%d\n", sizeof(off_t));
1433 ac_cv_sizeof_off_t=`cat conftestval`,
1434 ac_cv_sizeof_off_t=0,
1435 ac_cv_sizeof_off_t=4)
1437 AC_MSG_RESULT($ac_cv_sizeof_off_t)
1438 AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1439 [The number of bytes in an off_t.])
1441 AC_MSG_CHECKING(whether to enable large file support)
1442 if test "$have_long_long" = yes
1444 if test "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1445 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
1446 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1447 [Defined to enable large file support when an off_t is bigger than a long
1448 and long long is available and at least as big as an off_t. You may need
1449 to add some flags for configuration and compilation to enable this mode.
1450 (For Solaris and Linux, the necessary defines are already defined.)])
1459 # AC_CHECK_SIZEOF() doesn't include <time.h>.
1460 AC_MSG_CHECKING(size of time_t)
1461 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1462 [AC_TRY_RUN([#include <stdio.h>
1466 FILE *f=fopen("conftestval", "w");
1468 fprintf(f, "%d\n", sizeof(time_t));
1471 ac_cv_sizeof_time_t=`cat conftestval`,
1472 ac_cv_sizeof_time_t=0,
1473 ac_cv_sizeof_time_t=4)
1475 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1476 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1477 [The number of bytes in a time_t.])
1480 # if have pthread_t then define SIZEOF_PTHREAD_T
1482 if test "$ac_cv_kpthread" = "yes"
1483 then CC="$CC -Kpthread"
1484 elif test "$ac_cv_kthread" = "yes"
1485 then CC="$CC -Kthread"
1486 elif test "$ac_cv_pthread" = "yes"
1487 then CC="$CC -pthread"
1489 AC_MSG_CHECKING(for pthread_t)
1491 AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
1492 AC_MSG_RESULT($have_pthread_t)
1493 if test "$have_pthread_t" = yes ; then
1494 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1495 AC_MSG_CHECKING(size of pthread_t)
1496 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1497 [AC_TRY_RUN([#include <stdio.h>
1498 #include <pthread.h>
1501 FILE *f=fopen("conftestval", "w");
1503 fprintf(f, "%d\n", sizeof(pthread_t));
1506 ac_cv_sizeof_pthread_t=`cat conftestval`,
1507 ac_cv_sizeof_pthread_t=0,
1508 ac_cv_sizeof_pthread_t=4)
1510 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
1511 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1512 [The number of bytes in a pthread_t.])
1518 AC_SUBST(OTHER_LIBTOOL_OPT)
1519 case $ac_sys_system/$ac_sys_release in
1520 Darwin/@<:@01567@:>@\..*)
1521 OTHER_LIBTOOL_OPT="-prebind -seg1addr 0x10000000"
1524 OTHER_LIBTOOL_OPT=""
1530 AC_SUBST(LIBTOOL_CRUFT)
1531 case $ac_sys_system/$ac_sys_release in
1532 Darwin/@<:@01567@:>@\..*)
1533 LIBTOOL_CRUFT="-framework System -lcc_dynamic"
1534 if test "${enable_universalsdk}"; then
1537 LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only `/usr/bin/arch`"
1539 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1540 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1542 gcc_version=`gcc -dumpversion`
1543 if test ${gcc_version} '<' 4.0
1545 LIBTOOL_CRUFT="-lcc_dynamic"
1551 int main(int argc, char*argv[])
1553 if (sizeof(long) == 4) {
1559 ], ac_osx_32bit=yes,
1563 if test "${ac_osx_32bit}" = "yes"; then
1564 case `/usr/bin/arch` in
1566 MACOSX_DEFAULT_ARCH="i386"
1569 MACOSX_DEFAULT_ARCH="ppc"
1572 AC_MSG_ERROR([Unexpected output of 'arch' on OSX])
1576 case `/usr/bin/arch` in
1578 MACOSX_DEFAULT_ARCH="x86_64"
1581 MACOSX_DEFAULT_ARCH="ppc64"
1584 AC_MSG_ERROR([Unexpected output of 'arch' on OSX])
1588 #ARCH_RUN_32BIT="true"
1591 LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only ${MACOSX_DEFAULT_ARCH}"
1592 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1593 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1596 AC_MSG_CHECKING(for --enable-framework)
1597 if test "$enable_framework"
1599 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
1600 # -F. is needed to allow linking to the framework while
1601 # in the build location.
1602 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1603 [Define if you want to produce an OpenStep/Rhapsody framework
1604 (shared library plus accessory files).])
1606 if test $enable_shared = "yes"
1608 AC_MSG_ERROR([Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead])
1614 AC_MSG_CHECKING(for dyld)
1615 case $ac_sys_system/$ac_sys_release in
1617 AC_DEFINE(WITH_DYLD, 1,
1618 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1619 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1620 linker (rld). Dyld is necessary to support frameworks.])
1621 AC_MSG_RESULT(always on for Darwin)
1628 # Set info about shared libraries.
1633 AC_SUBST(LINKFORSHARED)
1634 # SO is the extension of shared libraries `(including the dot!)
1635 # -- usually .so, .sl on HP-UX, .dll on Cygwin
1639 case $ac_sys_system in
1650 # this might also be a termcap variable, see #610332
1652 echo '====================================================================='
1654 echo '+ WARNING: You have set SO in your environment. +'
1655 echo '+ Do you really mean to change the extension for shared libraries? +'
1656 echo '+ Continuing in 10 seconds to let you to ponder. +'
1658 echo '====================================================================='
1663 AC_DEFINE_UNQUOTED(SHLIB_EXT, "$SO", [Define this to be extension of shared libraries (including the dot!).])
1664 # LDSHARED is the ld *command* used to create shared library
1665 # -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
1666 # (Shared libraries in this instance are shared modules to be loaded into
1667 # Python, as opposed to building Python itself as a shared library.)
1668 AC_MSG_CHECKING(LDSHARED)
1669 if test -z "$LDSHARED"
1671 case $ac_sys_system/$ac_sys_release in
1673 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
1674 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
1676 IRIX/5*) LDSHARED="ld -shared";;
1677 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
1679 if test "$GCC" = "yes"
1680 then LDSHARED='$(CC) -shared'
1681 else LDSHARED='$(CC) -G';
1684 if test "$GCC" = "yes"
1685 then LDSHARED='$(CC) -shared'
1686 else LDSHARED='ld -b';
1688 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
1690 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1691 if test "$enable_framework" ; then
1692 # Link against the framework. All externals should be defined.
1693 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1694 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1696 # No framework. Ignore undefined symbols, assuming they come from Python
1697 LDSHARED="$LDSHARED -undefined suppress"
1699 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
1700 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1701 if test "$enable_framework" ; then
1702 # Link against the framework. All externals should be defined.
1703 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1704 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1706 # No framework, use the Python app as bundle-loader
1707 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1708 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1711 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1712 # This allows an extension to be used in any Python
1714 if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
1716 if test "${enable_universalsdk}"; then
1717 LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
1719 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1720 BLDSHARED="$LDSHARED"
1722 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1723 if test "$enable_framework" ; then
1724 # Link against the framework. All externals should be defined.
1725 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1726 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1728 # No framework, use the Python app as bundle-loader
1729 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1730 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1734 Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
1735 BSD/OS*/4*) LDSHARED="gcc -shared";;
1737 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1739 LDSHARED="$CC -shared ${LDFLAGS}"
1741 LDSHARED="ld -Bshareable ${LDFLAGS}"
1744 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1746 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1749 [[01]].* | 2.[[0-7]] | 2.[[0-7]].*)
1750 LDSHARED="ld -Bshareable ${LDFLAGS}"
1753 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1757 NetBSD*|DragonFly*) LDSHARED="cc -shared ${LDFLAGS}";;
1758 OpenUNIX*|UnixWare*)
1759 if test "$GCC" = "yes"
1760 then LDSHARED='$(CC) -shared'
1761 else LDSHARED='$(CC) -G'
1763 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
1764 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
1765 atheos*) LDSHARED="gcc -shared";;
1769 AC_MSG_RESULT($LDSHARED)
1770 BLDSHARED=${BLDSHARED-$LDSHARED}
1771 # CCSHARED are the C *flags* used to create objects to go into a shared
1772 # library (module) -- this is only needed for a few systems
1773 AC_MSG_CHECKING(CCSHARED)
1774 if test -z "$CCSHARED"
1776 case $ac_sys_system/$ac_sys_release in
1777 SunOS*) if test "$GCC" = yes;
1778 then CCSHARED="-fPIC";
1779 elif test `uname -p` = sparc;
1780 then CCSHARED="-xcode=pic32";
1781 else CCSHARED="-Kpic";
1783 hp*|HP*) if test "$GCC" = yes;
1784 then CCSHARED="-fPIC";
1787 Linux*|GNU*) CCSHARED="-fPIC";;
1788 BSD/OS*/4*) CCSHARED="-fpic";;
1789 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";;
1790 OpenUNIX*|UnixWare*)
1791 if test "$GCC" = "yes"
1792 then CCSHARED="-fPIC"
1793 else CCSHARED="-KPIC"
1796 if test "$GCC" = "yes"
1797 then CCSHARED="-fPIC"
1798 else CCSHARED="-Kpic -belf"
1800 IRIX*/6*) case $CC in
1801 *gcc*) CCSHARED="-shared";;
1804 atheos*) CCSHARED="-fPIC";;
1807 AC_MSG_RESULT($CCSHARED)
1808 # LINKFORSHARED are the flags passed to the $(CC) command that links
1809 # the python executable -- this is only needed for a few systems
1810 AC_MSG_CHECKING(LINKFORSHARED)
1811 if test -z "$LINKFORSHARED"
1813 case $ac_sys_system/$ac_sys_release in
1814 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
1816 LINKFORSHARED="-Wl,-E -Wl,+s";;
1817 # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
1818 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
1819 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
1820 # -u libsys_s pulls in all symbols in libsys
1822 LINKFORSHARED="$extra_undefs -framework CoreFoundation"
1823 if test "$enable_framework"
1825 LINKFORSHARED="$LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1827 LINKFORSHARED="$LINKFORSHARED";;
1828 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
1829 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
1830 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
1831 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*)
1832 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1834 LINKFORSHARED="-Wl,--export-dynamic"
1836 SunOS/5*) case $CC in
1838 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
1840 LINKFORSHARED="-Xlinker --export-dynamic"
1844 if test $enable_shared = "no"
1846 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1849 # -Wl,-E causes the symbols to be added to the dynamic
1850 # symbol table so that they can be found when a module
1851 # is loaded. -N 2048K causes the stack size to be set
1852 # to 2048 kilobytes so that the stack doesn't overflow
1853 # when running test_compile.py.
1854 LINKFORSHARED='-Wl,-E -N 2048K';;
1857 AC_MSG_RESULT($LINKFORSHARED)
1860 AC_SUBST(CFLAGSFORSHARED)
1861 AC_MSG_CHECKING(CFLAGSFORSHARED)
1862 if test ! "$LIBRARY" = "$LDLIBRARY"
1864 case $ac_sys_system in
1866 # Cygwin needs CCSHARED when building extension DLLs
1867 # but not when building the interpreter DLL.
1868 CFLAGSFORSHARED='';;
1870 CFLAGSFORSHARED='$(CCSHARED)'
1873 AC_MSG_RESULT($CFLAGSFORSHARED)
1875 # SHLIBS are libraries (except -lc and -lm) to link to the python shared
1876 # library (with --enable-shared).
1877 # For platforms on which shared libraries are not allowed to have unresolved
1878 # symbols, this must be set to $(LIBS) (expanded by make). We do this even
1879 # if it is not required, since it creates a dependency of the shared library
1880 # to LIBS. This, in turn, means that applications linking the shared libpython
1881 # don't need to link LIBS explicitly. The default should be only changed
1882 # on systems where this approach causes problems.
1884 AC_MSG_CHECKING(SHLIBS)
1885 case "$ac_sys_system" in
1889 AC_MSG_RESULT($SHLIBS)
1892 # checks for libraries
1893 AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1894 AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
1896 # only check for sem_init if thread support is requested
1897 if test "$with_threads" = "yes" -o -z "$with_threads"; then
1898 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1899 # posix4 on Solaris 2.6
1900 # pthread (first!) on Linux
1903 # check if we need libintl for locale functions
1904 AC_CHECK_LIB(intl, textdomain,
1905 [AC_DEFINE(WITH_LIBINTL, 1,
1906 [Define to 1 if libintl is needed for locale functions.])
1907 LIBS="-lintl $LIBS"])
1909 # checks for system dependent C++ extensions support
1910 case "$ac_sys_system" in
1911 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1912 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1913 [loadAndInit("", 0, "")],
1914 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1915 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1916 and you want support for AIX C++ shared extension modules.])
1917 AC_MSG_RESULT(yes)],
1918 [AC_MSG_RESULT(no)]);;
1922 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
1923 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
1924 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
1926 AC_MSG_CHECKING(for --with-libs)
1928 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1930 AC_MSG_RESULT($withval)
1931 LIBS="$withval $LIBS"
1933 [AC_MSG_RESULT(no)])
1935 # Check for use of the system libffi library
1936 AC_MSG_CHECKING(for --with-system-ffi)
1937 AC_ARG_WITH(system_ffi,
1938 AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library))
1940 AC_MSG_RESULT($with_system_ffi)
1942 # Check for --with-dbmliborder
1943 AC_MSG_CHECKING(for --with-dbmliborder)
1944 AC_ARG_WITH(dbmliborder,
1945 AC_HELP_STRING([--with-dbmliborder=db1:db2:...], [order to check db backends for dbm. Valid value is a colon separated string with the backend names `ndbm', `gdbm' and `bdb'.]),
1947 if test x$with_dbmliborder = xyes
1949 AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...])
1951 for db in `echo $with_dbmliborder | sed 's/:/ /g'`; do
1952 if test x$db != xndbm && test x$db != xgdbm && test x$db != xbdb
1954 AC_MSG_ERROR([proper usage is --with-dbmliborder=db1:db2:...])
1958 AC_MSG_RESULT($with_dbmliborder)
1960 # Determine if signalmodule should be used.
1961 AC_SUBST(USE_SIGNAL_MODULE)
1962 AC_SUBST(SIGNAL_OBJS)
1963 AC_MSG_CHECKING(for --with-signal-module)
1964 AC_ARG_WITH(signal-module,
1965 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
1967 if test -z "$with_signal_module"
1968 then with_signal_module="yes"
1970 AC_MSG_RESULT($with_signal_module)
1972 if test "${with_signal_module}" = "yes"; then
1973 USE_SIGNAL_MODULE=""
1976 USE_SIGNAL_MODULE="#"
1977 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1980 # This is used to generate Setup.config
1981 AC_SUBST(USE_THREAD_MODULE)
1982 USE_THREAD_MODULE=""
1984 AC_MSG_CHECKING(for --with-dec-threads)
1986 AC_ARG_WITH(dec-threads,
1987 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1989 AC_MSG_RESULT($withval)
1991 if test "${with_thread+set}" != set; then
1992 with_thread="$withval";
1994 [AC_MSG_RESULT(no)])
1996 # Templates for things AC_DEFINEd more than once.
1997 # For a single AC_DEFINE, no template is needed.
1998 AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1999 AH_TEMPLATE(_REENTRANT,
2000 [Define to force use of thread-safe errno, h_errno, and other functions])
2001 AH_TEMPLATE(WITH_THREAD,
2002 [Define if you want to compile in rudimentary thread support])
2004 AC_MSG_CHECKING(for --with-threads)
2005 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
2006 AC_ARG_WITH(threads,
2007 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
2009 # --with-thread is deprecated, but check for it anyway
2010 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
2012 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
2013 [with_threads=$with_thread])
2015 if test -z "$with_threads"
2016 then with_threads="yes"
2018 AC_MSG_RESULT($with_threads)
2021 if test "$with_threads" = "no"
2023 USE_THREAD_MODULE="#"
2024 elif test "$ac_cv_pthread_is_default" = yes
2026 AC_DEFINE(WITH_THREAD)
2027 # Defining _REENTRANT on system with POSIX threads should not hurt.
2028 AC_DEFINE(_REENTRANT)
2030 THREADOBJ="Python/thread.o"
2031 elif test "$ac_cv_kpthread" = "yes"
2034 if test "$ac_cv_cxx_thread" = "yes"; then
2035 CXX="$CXX -Kpthread"
2037 AC_DEFINE(WITH_THREAD)
2039 THREADOBJ="Python/thread.o"
2040 elif test "$ac_cv_kthread" = "yes"
2043 if test "$ac_cv_cxx_thread" = "yes"; then
2046 AC_DEFINE(WITH_THREAD)
2048 THREADOBJ="Python/thread.o"
2049 elif test "$ac_cv_pthread" = "yes"
2052 if test "$ac_cv_cxx_thread" = "yes"; then
2055 AC_DEFINE(WITH_THREAD)
2057 THREADOBJ="Python/thread.o"
2059 if test ! -z "$with_threads" -a -d "$with_threads"
2060 then LDFLAGS="$LDFLAGS -L$with_threads"
2062 if test ! -z "$withval" -a -d "$withval"
2063 then LDFLAGS="$LDFLAGS -L$withval"
2066 # According to the POSIX spec, a pthreads implementation must
2067 # define _POSIX_THREADS in unistd.h. Some apparently don't
2068 # (e.g. gnu pth with pthread emulation)
2069 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
2073 #ifdef _POSIX_THREADS
2076 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
2077 AC_MSG_RESULT($unistd_defines_pthreads)
2079 AC_DEFINE(_REENTRANT)
2080 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
2081 AC_DEFINE(C_THREADS)
2082 AC_DEFINE(HURD_C_THREADS, 1,
2083 [Define if you are using Mach cthreads directly under /include])
2084 LIBS="$LIBS -lthreads"
2085 THREADOBJ="Python/thread.o"],[
2086 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
2087 AC_DEFINE(C_THREADS)
2088 AC_DEFINE(MACH_C_THREADS, 1,
2089 [Define if you are using Mach cthreads under mach /])
2090 THREADOBJ="Python/thread.o"],[
2091 AC_MSG_CHECKING(for --with-pth)
2093 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
2094 [AC_MSG_RESULT($withval)
2095 AC_DEFINE([WITH_THREAD])
2096 AC_DEFINE([HAVE_PTH], 1,
2097 [Define if you have GNU PTH threads.])
2099 THREADOBJ="Python/thread.o"],
2102 # Just looking for pthread_create in libpthread is not enough:
2103 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
2104 # So we really have to include pthread.h, and then link.
2106 LIBS="$LIBS -lpthread"
2107 AC_MSG_CHECKING([for pthread_create in -lpthread])
2108 AC_TRY_LINK([#include <pthread.h>
2110 void * start_routine (void *arg) { exit (0); }], [
2111 pthread_create (NULL, NULL, start_routine, NULL)], [
2113 AC_DEFINE(WITH_THREAD)
2115 THREADOBJ="Python/thread.o"],[
2117 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
2119 THREADOBJ="Python/thread.o"],[
2120 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
2121 AC_DEFINE(ATHEOS_THREADS, 1,
2122 [Define this if you have AtheOS threads.])
2123 THREADOBJ="Python/thread.o"],[
2124 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
2126 LIBS="$LIBS -lpthreads"
2127 THREADOBJ="Python/thread.o"], [
2128 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
2131 THREADOBJ="Python/thread.o"], [
2132 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
2134 LIBS="$LIBS -lpthread"
2135 THREADOBJ="Python/thread.o"], [
2136 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
2139 THREADOBJ="Python/thread.o"],[
2140 USE_THREAD_MODULE="#"])
2143 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
2145 THREADOBJ="Python/thread.o"
2146 USE_THREAD_MODULE=""])
2148 if test "$posix_threads" != "yes"; then
2149 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
2150 LIBS="$LIBS -lthread"
2151 THREADOBJ="Python/thread.o"
2152 USE_THREAD_MODULE=""])
2155 if test "$USE_THREAD_MODULE" != "#"
2157 # If the above checks didn't disable threads, (at least) OSF1
2158 # needs this '-threads' argument during linking.
2159 case $ac_sys_system in
2160 OSF1) LDLAST=-threads;;
2165 if test "$posix_threads" = "yes"; then
2166 if test "$unistd_defines_pthreads" = "no"; then
2167 AC_DEFINE(_POSIX_THREADS, 1,
2168 [Define if you have POSIX threads,
2169 and your system does not define that.])
2172 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
2173 case $ac_sys_system/$ac_sys_release in
2174 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
2175 Defined for Solaris 2.6 bug in pthread header.)
2177 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2178 Define if the Posix semaphores do not work on your system)
2180 AIX/5) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2181 Define if the Posix semaphores do not work on your system)
2185 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
2186 AC_CACHE_VAL(ac_cv_pthread_system_supported,
2187 [AC_TRY_RUN([#include <pthread.h>
2188 void *foo(void *parm) {
2192 pthread_attr_t attr;
2194 if (pthread_attr_init(&attr)) exit(-1);
2195 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
2196 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
2199 ac_cv_pthread_system_supported=yes,
2200 ac_cv_pthread_system_supported=no,
2201 ac_cv_pthread_system_supported=no)
2203 AC_MSG_RESULT($ac_cv_pthread_system_supported)
2204 if test "$ac_cv_pthread_system_supported" = "yes"; then
2205 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
2207 AC_CHECK_FUNCS(pthread_sigmask,
2208 [case $ac_sys_system in
2210 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
2211 [Define if pthread_sigmask() does not work on your system.])
2217 # Check for enable-ipv6
2218 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
2219 AC_MSG_CHECKING([if --enable-ipv6 is specified])
2221 [ --enable-ipv6 Enable ipv6 (with ipv4) support
2222 --disable-ipv6 Disable ipv6 support],
2223 [ case "$enableval" in
2228 *) AC_MSG_RESULT(yes)
2229 AC_DEFINE(ENABLE_IPV6)
2235 dnl the check does not work on cross compilation case...
2236 AC_TRY_RUN([ /* AF_INET6 available check */
2237 #include <sys/types.h>
2238 #include <sys/socket.h>
2241 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
2255 if test "$ipv6" = "yes"; then
2256 AC_MSG_CHECKING(if RFC2553 API is available)
2257 AC_TRY_COMPILE([#include <sys/types.h>
2258 #include <netinet/in.h>],
2259 [struct sockaddr_in6 x;
2263 AC_MSG_RESULT(no, IPv6 disabled)
2267 if test "$ipv6" = "yes"; then
2268 AC_DEFINE(ENABLE_IPV6)
2276 if test "$ipv6" = "yes"; then
2277 AC_MSG_CHECKING([ipv6 stack type])
2278 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
2282 dnl http://www.kame.net/
2284 #include <netinet/in.h>
2285 #ifdef IPV6_INRIA_VERSION
2291 dnl http://www.kame.net/
2293 #include <netinet/in.h>
2299 ipv6libdir=/usr/local/v6/lib
2303 dnl http://www.v6.linux.or.jp/
2305 #include <features.h>
2306 #if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
2313 dnl http://www.v6.linux.or.jp/
2314 if test -d /usr/inet6; then
2317 ipv6libdir=/usr/inet6/lib
2318 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
2322 if test -f /etc/netconfig; then
2323 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
2331 #include <sys/param.h>
2332 #ifdef _TOSHIBA_INET6
2337 ipv6libdir=/usr/local/v6/lib])
2341 #include </usr/local/v6/include/sys/v6config.h>
2347 ipv6libdir=/usr/local/v6/lib;
2348 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
2352 #include <sys/param.h>
2353 #ifdef _ZETA_MINAMI_INET6
2358 ipv6libdir=/usr/local/v6/lib])
2361 if test "$ipv6type" != "unknown"; then
2365 AC_MSG_RESULT($ipv6type)
2368 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
2369 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
2370 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
2371 echo "using lib$ipv6lib"
2373 if test $ipv6trylibc = "yes"; then
2376 echo 'Fatal: no $ipv6lib library found. cannot continue.'
2377 echo "You need to fetch lib$ipv6lib.a from appropriate"
2378 echo 'ipv6 kit and compile beforehand.'
2384 AC_MSG_CHECKING(for OSX 10.5 SDK or later)
2385 AC_TRY_COMPILE([#include <Carbon/Carbon.h>], FSIORefNum fRef = 0,
2386 AC_DEFINE(HAVE_OSX105_SDK, 1, Define if compiling using MacOS X 10.5 SDK or later.)
2391 # Check for --with-doc-strings
2392 AC_MSG_CHECKING(for --with-doc-strings)
2393 AC_ARG_WITH(doc-strings,
2394 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
2396 if test -z "$with_doc_strings"
2397 then with_doc_strings="yes"
2399 if test "$with_doc_strings" != "no"
2401 AC_DEFINE(WITH_DOC_STRINGS, 1,
2402 [Define if you want documentation strings in extension modules])
2404 AC_MSG_RESULT($with_doc_strings)
2406 # Check for Python-specific malloc support
2407 AC_MSG_CHECKING(for --with-tsc)
2409 [ --with(out)-tsc enable/disable timestamp counter profile], [
2410 if test "$withval" != no
2412 AC_DEFINE(WITH_TSC, 1,
2413 [Define to profile with the Pentium timestamp counter])
2415 else AC_MSG_RESULT(no)
2417 [AC_MSG_RESULT(no)])
2419 # Check for Python-specific malloc support
2420 AC_MSG_CHECKING(for --with-pymalloc)
2421 AC_ARG_WITH(pymalloc,
2422 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
2424 if test -z "$with_pymalloc"
2425 then with_pymalloc="yes"
2427 if test "$with_pymalloc" != "no"
2429 AC_DEFINE(WITH_PYMALLOC, 1,
2430 [Define if you want to compile in Python-specific mallocs])
2432 AC_MSG_RESULT($with_pymalloc)
2434 # Check for --with-wctype-functions
2435 AC_MSG_CHECKING(for --with-wctype-functions)
2436 AC_ARG_WITH(wctype-functions,
2437 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
2439 if test "$withval" != no
2441 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2442 [Define if you want wctype.h functions to be used instead of the
2443 one supplied by Python itself. (see Include/unicodectype.h).])
2445 else AC_MSG_RESULT(no)
2447 [AC_MSG_RESULT(no)])
2449 # -I${DLINCLDIR} is added to the compile rule for importdl.o
2453 # the dlopen() function means we might want to use dynload_shlib.o. some
2454 # platforms, such as AIX, have dlopen(), but don't want to use it.
2455 AC_CHECK_FUNCS(dlopen)
2457 # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2458 # loading of modules.
2459 AC_SUBST(DYNLOADFILE)
2460 AC_MSG_CHECKING(DYNLOADFILE)
2461 if test -z "$DYNLOADFILE"
2463 case $ac_sys_system/$ac_sys_release in
2464 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2465 if test "$ac_cv_func_dlopen" = yes
2466 then DYNLOADFILE="dynload_shlib.o"
2467 else DYNLOADFILE="dynload_aix.o"
2470 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
2471 # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
2472 Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
2473 atheos*) DYNLOADFILE="dynload_atheos.o";;
2475 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2476 # out any dynamic loading
2477 if test "$ac_cv_func_dlopen" = yes
2478 then DYNLOADFILE="dynload_shlib.o"
2479 else DYNLOADFILE="dynload_stub.o"
2484 AC_MSG_RESULT($DYNLOADFILE)
2485 if test "$DYNLOADFILE" != "dynload_stub.o"
2487 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2488 [Defined when any dynamic module loading is enabled.])
2491 # MACHDEP_OBJS can be set to platform-specific object files needed by Python
2493 AC_SUBST(MACHDEP_OBJS)
2494 AC_MSG_CHECKING(MACHDEP_OBJS)
2495 if test -z "$MACHDEP_OBJS"
2497 MACHDEP_OBJS=$extra_machdep_objs
2499 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
2501 AC_MSG_RESULT(MACHDEP_OBJS)
2503 # checks for library functions
2504 AC_CHECK_FUNCS(alarm setitimer getitimer bind_textdomain_codeset chown \
2505 clock confstr ctermid execv fchmod fchown fork fpathconf ftime ftruncate \
2506 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
2507 getpriority getpwent getspnam getspent getsid getwd \
2508 kill killpg lchmod lchown lstat mbrtowc mkfifo mknod mktime \
2509 mremap nice pathconf pause plock poll pthread_init \
2510 putenv readlink realpath \
2511 select sem_open sem_timedwait sem_getvalue sem_unlink setegid seteuid \
2513 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
2514 sigaction siginterrupt sigrelse strftime strlcpy \
2515 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
2516 truncate uname unsetenv utimes waitpid wait3 wait4 \
2517 wcscoll wcsftime wcsxfrm _getpty)
2519 # For some functions, having a definition is not sufficient, since
2520 # we want to take their address.
2521 AC_MSG_CHECKING(for chroot)
2522 AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2523 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2527 AC_MSG_CHECKING(for link)
2528 AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2529 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2533 AC_MSG_CHECKING(for symlink)
2534 AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2535 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2539 AC_MSG_CHECKING(for fchdir)
2540 AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2541 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2545 AC_MSG_CHECKING(for fsync)
2546 AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
2547 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
2551 AC_MSG_CHECKING(for fdatasync)
2552 AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2553 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2557 AC_MSG_CHECKING(for epoll)
2558 AC_TRY_COMPILE([#include <sys/epoll.h>], void *x=epoll_create,
2559 AC_DEFINE(HAVE_EPOLL, 1, Define if you have the 'epoll' functions.)
2563 AC_MSG_CHECKING(for kqueue)
2565 #include <sys/types.h>
2566 #include <sys/event.h>
2568 AC_DEFINE(HAVE_KQUEUE, 1, Define if you have the 'kqueue' functions.)
2572 # On some systems (eg. FreeBSD 5), we would find a definition of the
2573 # functions ctermid_r, setgroups in the library, but no prototype
2574 # (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2575 # address to avoid compiler warnings and potential miscompilations
2576 # because of the missing prototypes.
2578 AC_MSG_CHECKING(for ctermid_r)
2580 #include "confdefs.h"
2582 ], void* p = ctermid_r,
2583 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2588 AC_MSG_CHECKING(for flock)
2590 #include "confdefs.h"
2591 #include <sys/file.h>
2593 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2598 AC_MSG_CHECKING(for getpagesize)
2600 #include "confdefs.h"
2602 ], void* p = getpagesize,
2603 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2609 AC_CHECK_PROGS(TRUE, true, /bin/true)
2611 dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2612 dnl On others, they are in the C library, so we to take no action
2613 AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
2614 AC_CHECK_LIB(resolv, inet_aton)
2617 # On Tru64, chflags seems to be present, but calling it will
2619 AC_CACHE_CHECK([for chflags], [ac_cv_have_chflags], [dnl
2621 #include <sys/stat.h>
2623 int main(int argc, char*argv[])
2625 if(chflags(argv[0], 0) != 0)
2629 ]], ac_cv_have_chflags=yes,
2630 ac_cv_have_chflags=no,
2631 ac_cv_have_chflags=cross)
2633 if test "$ac_cv_have_chflags" = cross ; then
2634 AC_CHECK_FUNC([chflags], [ac_cv_have_chflags="yes"], [ac_cv_have_chflags="no"])
2636 if test "$ac_cv_have_chflags" = yes ; then
2637 AC_DEFINE(HAVE_CHFLAGS, 1, Define to 1 if you have the `chflags' function.)
2640 AC_CACHE_CHECK([for lchflags], [ac_cv_have_lchflags], [dnl
2642 #include <sys/stat.h>
2644 int main(int argc, char*argv[])
2646 if(lchflags(argv[0], 0) != 0)
2650 ]], ac_cv_have_lchflags=yes,
2651 ac_cv_have_lchflags=no,
2652 ac_cv_have_lchflags=cross)
2654 if test "$ac_cv_have_lchflags" = cross ; then
2655 AC_CHECK_FUNC([lchflags], [ac_cv_have_lchflags="yes"], [ac_cv_have_lchflags="no"])
2657 if test "$ac_cv_have_lchflags" = yes ; then
2658 AC_DEFINE(HAVE_LCHFLAGS, 1, Define to 1 if you have the `lchflags' function.)
2661 dnl Check if system zlib has *Copy() functions
2663 dnl On MacOSX the linker will search for dylibs on the entire linker path
2664 dnl before searching for static libraries. setup.py adds -Wl,-search_paths_first
2665 dnl to revert to a more traditional unix behaviour and make it possible to
2666 dnl override the system libz with a local static library of libz. Temporarily
2667 dnl add that flag to our CFLAGS as well to ensure that we check the version
2668 dnl of libz that will be used by setup.py.
2669 dnl The -L/usr/local/lib is needed as wel to get the same compilation
2670 dnl environment as setup.py (and leaving it out can cause configure to use the
2671 dnl wrong version of the library)
2672 case $ac_sys_system/$ac_sys_release in
2674 _CUR_CFLAGS="${CFLAGS}"
2675 _CUR_LDFLAGS="${LDFLAGS}"
2676 CFLAGS="${CFLAGS} -Wl,-search_paths_first"
2677 LDFLAGS="${LDFLAGS} -Wl,-search_paths_first -L/usr/local/lib"
2681 AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_ZLIB_COPY, 1, Define if the zlib library has inflateCopy))
2683 case $ac_sys_system/$ac_sys_release in
2685 CFLAGS="${_CUR_CFLAGS}"
2686 LDFLAGS="${_CUR_LDFLAGS}"
2690 AC_MSG_CHECKING(for hstrerror)
2692 #include "confdefs.h"
2694 ], void* p = hstrerror; hstrerror(0),
2695 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2700 AC_MSG_CHECKING(for inet_aton)
2702 #include "confdefs.h"
2703 #include <sys/types.h>
2704 #include <sys/socket.h>
2705 #include <netinet/in.h>
2706 #include <arpa/inet.h>
2707 ], void* p = inet_aton;inet_aton(0,0),
2708 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2713 AC_MSG_CHECKING(for inet_pton)
2715 #include "confdefs.h"
2716 #include <sys/types.h>
2717 #include <sys/socket.h>
2718 #include <netinet/in.h>
2719 #include <arpa/inet.h>
2720 ], void* p = inet_pton,
2721 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2726 # On some systems, setgroups is in unistd.h, on others, in grp.h
2727 AC_MSG_CHECKING(for setgroups)
2729 #include "confdefs.h"
2735 void* p = setgroups,
2736 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2741 # check for openpty and forkpty
2743 AC_CHECK_FUNCS(openpty,,
2744 AC_CHECK_LIB(util,openpty,
2745 [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"],
2746 AC_CHECK_LIB(bsd,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lbsd"])
2749 AC_CHECK_FUNCS(forkpty,,
2750 AC_CHECK_LIB(util,forkpty,
2751 [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"],
2752 AC_CHECK_LIB(bsd,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lbsd"])
2757 AC_CHECK_FUNCS(memmove)
2759 # check for long file support functions
2760 AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2762 AC_REPLACE_FUNCS(dup2 getcwd strdup)
2763 AC_CHECK_FUNCS(getpgrp,
2764 AC_TRY_COMPILE([#include <unistd.h>],
2766 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2767 [Define if getpgrp() must be called as getpgrp(0).])
2770 AC_CHECK_FUNCS(setpgrp,
2771 AC_TRY_COMPILE([#include <unistd.h>],
2773 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2774 [Define if setpgrp() must be called as setpgrp(0, 0).])
2777 AC_CHECK_FUNCS(gettimeofday,
2778 AC_TRY_COMPILE([#include <sys/time.h>],
2779 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2780 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2781 [Define if gettimeofday() does not have second (timezone) argument
2782 This is the case on Motorola V4 (R40V4.2)])
2786 AC_MSG_CHECKING(for major, minor, and makedev)
2788 #if defined(MAJOR_IN_MKDEV)
2789 #include <sys/mkdev.h>
2790 #elif defined(MAJOR_IN_SYSMACROS)
2791 #include <sys/sysmacros.h>
2793 #include <sys/types.h>
2796 makedev(major(0),minor(0));
2798 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2799 [Define to 1 if you have the device macros.])
2805 # On OSF/1 V5.1, getaddrinfo is available, but a define
2806 # for [no]getaddrinfo in netdb.h.
2807 AC_MSG_CHECKING(for getaddrinfo)
2809 #include <sys/types.h>
2810 #include <sys/socket.h>
2814 getaddrinfo(NULL, NULL, NULL, NULL);
2817 AC_MSG_CHECKING(getaddrinfo bug)
2819 #include <sys/types.h>
2822 #include <sys/socket.h>
2823 #include <netinet/in.h>
2827 int passive, gaierr, inet4 = 0, inet6 = 0;
2828 struct addrinfo hints, *ai, *aitop;
2829 char straddr[INET6_ADDRSTRLEN], strport[16];
2831 for (passive = 0; passive <= 1; passive++) {
2832 memset(&hints, 0, sizeof(hints));
2833 hints.ai_family = AF_UNSPEC;
2834 hints.ai_flags = passive ? AI_PASSIVE : 0;
2835 hints.ai_socktype = SOCK_STREAM;
2836 hints.ai_protocol = IPPROTO_TCP;
2837 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2838 (void)gai_strerror(gaierr);
2841 for (ai = aitop; ai; ai = ai->ai_next) {
2842 if (ai->ai_addr == NULL ||
2843 ai->ai_addrlen == 0 ||
2844 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2845 straddr, sizeof(straddr), strport, sizeof(strport),
2846 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2849 switch (ai->ai_family) {
2851 if (strcmp(strport, "54321") != 0) {
2855 if (strcmp(straddr, "0.0.0.0") != 0) {
2859 if (strcmp(straddr, "127.0.0.1") != 0) {
2866 if (strcmp(strport, "54321") != 0) {
2870 if (strcmp(straddr, "::") != 0) {
2874 if (strcmp(straddr, "::1") != 0) {
2884 /* another family support? */
2890 if (!(inet4 == 0 || inet4 == 2))
2892 if (!(inet6 == 0 || inet6 == 2))
2896 freeaddrinfo(aitop);
2901 freeaddrinfo(aitop);
2906 buggygetaddrinfo=no,
2907 AC_MSG_RESULT(buggy)
2908 buggygetaddrinfo=yes,
2909 AC_MSG_RESULT(buggy)
2910 buggygetaddrinfo=yes)], [
2912 buggygetaddrinfo=yes
2915 if test "$buggygetaddrinfo" = "yes"; then
2916 if test "$ipv6" = "yes"; then
2917 echo 'Fatal: You must get working getaddrinfo() function.'
2918 echo ' or you can specify "--disable-ipv6"'.
2922 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
2924 AC_CHECK_FUNCS(getnameinfo)
2926 # checks for structures
2930 AC_CHECK_MEMBERS([struct stat.st_rdev])
2931 AC_CHECK_MEMBERS([struct stat.st_blksize])
2932 AC_CHECK_MEMBERS([struct stat.st_flags])
2933 AC_CHECK_MEMBERS([struct stat.st_gen])
2934 AC_CHECK_MEMBERS([struct stat.st_birthtime])
2937 AC_MSG_CHECKING(for time.h that defines altzone)
2938 AC_CACHE_VAL(ac_cv_header_time_altzone,
2939 [AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2940 ac_cv_header_time_altzone=yes,
2941 ac_cv_header_time_altzone=no)])
2942 AC_MSG_RESULT($ac_cv_header_time_altzone)
2943 if test $ac_cv_header_time_altzone = yes; then
2944 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
2948 AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
2950 #include <sys/types.h>
2951 #include <sys/select.h>
2952 #include <sys/time.h>
2954 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2955 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2956 (which you can't on SCO ODT 3.0).])
2959 AC_MSG_RESULT($was_it_defined)
2961 AC_MSG_CHECKING(for addrinfo)
2962 AC_CACHE_VAL(ac_cv_struct_addrinfo,
2964 # include <netdb.h>],
2965 [struct addrinfo a],
2966 ac_cv_struct_addrinfo=yes,
2967 ac_cv_struct_addrinfo=no))
2968 AC_MSG_RESULT($ac_cv_struct_addrinfo)
2969 if test $ac_cv_struct_addrinfo = yes; then
2970 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
2973 AC_MSG_CHECKING(for sockaddr_storage)
2974 AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2976 # include <sys/types.h>
2977 # include <sys/socket.h>],
2978 [struct sockaddr_storage s],
2979 ac_cv_struct_sockaddr_storage=yes,
2980 ac_cv_struct_sockaddr_storage=no))
2981 AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2982 if test $ac_cv_struct_sockaddr_storage = yes; then
2983 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
2986 # checks for compiler characteristics
2992 AC_MSG_CHECKING(for working volatile)
2993 AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2994 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2996 AC_MSG_RESULT($works)
2999 AC_MSG_CHECKING(for working signed char)
3000 AC_TRY_COMPILE([], [signed char c;], works=yes,
3001 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
3003 AC_MSG_RESULT($works)
3006 AC_MSG_CHECKING(for prototypes)
3007 AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
3008 AC_DEFINE(HAVE_PROTOTYPES, 1,
3009 [Define if your compiler supports function prototype])
3012 AC_MSG_RESULT($have_prototypes)
3015 AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
3018 int foo(int x, ...) {
3026 ], [return foo(10, "", 3.14);], [
3027 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
3028 [Define if your compiler supports variable length function prototypes
3029 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
3032 AC_MSG_RESULT($works)
3034 # check for socketpair
3035 AC_MSG_CHECKING(for socketpair)
3037 #include <sys/types.h>
3038 #include <sys/socket.h>
3039 ], void *x=socketpair,
3040 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
3045 # check if sockaddr has sa_len member
3046 AC_MSG_CHECKING(if sockaddr has sa_len member)
3047 AC_TRY_COMPILE([#include <sys/types.h>
3048 #include <sys/socket.h>],
3052 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
3056 AC_MSG_CHECKING(whether va_list is an array)
3058 #ifdef HAVE_STDARG_PROTOTYPES
3061 #include <varargs.h>
3063 ], [va_list list1, list2; list1 = list2;], , [
3064 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
3065 va_list_is_array=yes
3067 AC_MSG_RESULT($va_list_is_array)
3069 # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
3070 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
3071 [Define this if you have some version of gethostbyname_r()])
3073 AC_CHECK_FUNC(gethostbyname_r, [
3074 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3075 AC_MSG_CHECKING([gethostbyname_r with 6 args])
3077 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
3082 struct hostent *he, *res;
3087 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
3089 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3090 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
3091 [Define this if you have the 6-arg version of gethostbyname_r().])
3095 AC_MSG_CHECKING([gethostbyname_r with 5 args])
3105 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
3107 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3108 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
3109 [Define this if you have the 5-arg version of gethostbyname_r().])
3113 AC_MSG_CHECKING([gethostbyname_r with 3 args])
3119 struct hostent_data data;
3121 (void) gethostbyname_r(name, he, &data);
3123 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3124 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
3125 [Define this if you have the 3-arg version of gethostbyname_r().])
3134 AC_CHECK_FUNCS(gethostbyname)
3136 AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
3137 AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
3138 AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
3139 AC_SUBST(HAVE_GETHOSTBYNAME_R)
3140 AC_SUBST(HAVE_GETHOSTBYNAME)
3142 # checks for system services
3145 # Linux requires this for correct f.p. operations
3146 AC_CHECK_FUNC(__fpu_control,
3148 [AC_CHECK_LIB(ieee, __fpu_control)
3151 # Check for --with-fpectl
3152 AC_MSG_CHECKING(for --with-fpectl)
3154 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
3156 if test "$withval" != no
3158 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
3159 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
3161 else AC_MSG_RESULT(no)
3163 [AC_MSG_RESULT(no)])
3165 # check for --with-libm=...
3167 case $ac_sys_system in
3171 AC_MSG_CHECKING(for --with-libm=STRING)
3173 AC_HELP_STRING(--with-libm=STRING, math library),
3175 if test "$withval" = no
3177 AC_MSG_RESULT(force LIBM empty)
3178 elif test "$withval" != yes
3180 AC_MSG_RESULT(set LIBM="$withval")
3181 else AC_MSG_ERROR([proper usage is --with-libm=STRING])
3183 [AC_MSG_RESULT(default LIBM="$LIBM")])
3185 # check for --with-libc=...
3187 AC_MSG_CHECKING(for --with-libc=STRING)
3189 AC_HELP_STRING(--with-libc=STRING, C library),
3191 if test "$withval" = no
3193 AC_MSG_RESULT(force LIBC empty)
3194 elif test "$withval" != yes
3196 AC_MSG_RESULT(set LIBC="$withval")
3197 else AC_MSG_ERROR([proper usage is --with-libc=STRING])
3199 [AC_MSG_RESULT(default LIBC="$LIBC")])
3201 # **************************************************
3202 # * Check for various properties of floating point *
3203 # **************************************************
3205 AC_MSG_CHECKING(whether C doubles are little-endian IEEE 754 binary64)
3206 AC_CACHE_VAL(ac_cv_little_endian_double, [
3210 double x = 9006104071832581.0;
3211 if (memcmp(&x, "\x05\x04\x03\x02\x01\xff\x3f\x43", 8) == 0)
3217 ac_cv_little_endian_double=yes,
3218 ac_cv_little_endian_double=no,
3219 ac_cv_little_endian_double=no)])
3220 AC_MSG_RESULT($ac_cv_little_endian_double)
3221 if test "$ac_cv_little_endian_double" = yes
3223 AC_DEFINE(DOUBLE_IS_LITTLE_ENDIAN_IEEE754, 1,
3224 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3225 with the least significant byte first])
3228 AC_MSG_CHECKING(whether C doubles are big-endian IEEE 754 binary64)
3229 AC_CACHE_VAL(ac_cv_big_endian_double, [
3233 double x = 9006104071832581.0;
3234 if (memcmp(&x, "\x43\x3f\xff\x01\x02\x03\x04\x05", 8) == 0)
3240 ac_cv_big_endian_double=yes,
3241 ac_cv_big_endian_double=no,
3242 ac_cv_big_endian_double=no)])
3243 AC_MSG_RESULT($ac_cv_big_endian_double)
3244 if test "$ac_cv_big_endian_double" = yes
3246 AC_DEFINE(DOUBLE_IS_BIG_ENDIAN_IEEE754, 1,
3247 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3248 with the most significant byte first])
3251 # Some ARM platforms use a mixed-endian representation for doubles.
3252 # While Python doesn't currently have full support for these platforms
3253 # (see e.g., issue 1762561), we can at least make sure that float <-> string
3255 AC_MSG_CHECKING(whether C doubles are ARM mixed-endian IEEE 754 binary64)
3256 AC_CACHE_VAL(ac_cv_mixed_endian_double, [
3260 double x = 9006104071832581.0;
3261 if (memcmp(&x, "\x01\xff\x3f\x43\x05\x04\x03\x02", 8) == 0)
3267 ac_cv_mixed_endian_double=yes,
3268 ac_cv_mixed_endian_double=no,
3269 ac_cv_mixed_endian_double=no)])
3270 AC_MSG_RESULT($ac_cv_mixed_endian_double)
3271 if test "$ac_cv_mixed_endian_double" = yes
3273 AC_DEFINE(DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754, 1,
3274 [Define if C doubles are 64-bit IEEE 754 binary format, stored
3275 in ARM mixed-endian order (byte order 45670123)])
3278 # The short float repr introduced in Python 3.1 requires the
3279 # correctly-rounded string <-> double conversion functions from
3280 # Python/dtoa.c, which in turn require that the FPU uses 53-bit
3281 # rounding; this is a problem on x86, where the x87 FPU has a default
3282 # rounding precision of 64 bits. For gcc/x86, we try to fix this by
3283 # using inline assembler to get and set the x87 FPU control word.
3284 if test "$GCC" = yes && test -n "`$CC -dM -E - </dev/null | grep i386`"
3286 # Check that it's okay to use gcc inline assembler to get and set
3287 # x87 control word. It should be, but you never know...
3288 AC_MSG_CHECKING(whether we can use gcc inline assembler to get and set x87 control word)
3289 AC_TRY_COMPILE([], [
3291 __asm__ __volatile__ ("fnstcw %0" : "=m" (cw));
3292 __asm__ __volatile__ ("fldcw %0" : : "m" (cw));
3294 [have_gcc_asm_for_x87=yes], [have_gcc_asm_for_x87=no])
3295 AC_MSG_RESULT($have_gcc_asm_for_x87)
3296 if test "$have_gcc_asm_for_x87" = yes
3298 AC_DEFINE(HAVE_GCC_ASM_FOR_X87, 1,
3299 [Define if we can use gcc inline assembler to get and set x87 control word])
3303 # Detect whether system arithmetic is subject to x87-style double
3304 # rounding issues. The result of this test has little meaning on non
3305 # IEEE 754 platforms. On IEEE 754, test should return 1 if rounding
3306 # mode is round-to-nearest and double rounding issues are present, and
3307 # 0 otherwise. See http://bugs.python.org/issue2937 for more info.
3308 AC_MSG_CHECKING(for x87-style double rounding)
3309 # $BASECFLAGS may affect the result
3311 CC="$CC $BASECFLAGS"
3316 volatile double x, y, z;
3317 /* 1./(1-2**-53) -> 1+2**-52 (correct), 1.0 (double rounding) */
3318 x = 0.99999999999999989; /* 1-2**-53 */
3322 /* 1e16+2.99999 -> 1e16+2. (correct), 1e16+4. (double rounding) */
3328 /* both tests show evidence of double rounding */
3332 ac_cv_x87_double_rounding=no,
3333 ac_cv_x87_double_rounding=yes,
3334 ac_cv_x87_double_rounding=no)
3336 AC_MSG_RESULT($ac_cv_x87_double_rounding)
3337 if test "$ac_cv_x87_double_rounding" = yes
3339 AC_DEFINE(X87_DOUBLE_ROUNDING, 1,
3340 [Define if arithmetic is subject to x87-style double rounding issue])
3343 # ************************************
3344 # * Check for mathematical functions *
3345 # ************************************
3350 # On FreeBSD 6.2, it appears that tanh(-0.) returns 0. instead of
3351 # -0. on some architectures.
3352 AC_MSG_CHECKING(whether tanh preserves the sign of zero)
3353 AC_CACHE_VAL(ac_cv_tanh_preserves_zero_sign, [
3358 /* return 0 if either negative zeros don't exist
3359 on this platform or if negative zeros exist
3360 and tanh(-0.) == -0. */
3361 if (atan2(0., -1.) == atan2(-0., -1.) ||
3362 atan2(tanh(-0.), -1.) == atan2(-0., -1.)) exit(0);
3366 ac_cv_tanh_preserves_zero_sign=yes,
3367 ac_cv_tanh_preserves_zero_sign=no,
3368 ac_cv_tanh_preserves_zero_sign=no)])
3369 AC_MSG_RESULT($ac_cv_tanh_preserves_zero_sign)
3370 if test "$ac_cv_tanh_preserves_zero_sign" = yes
3372 AC_DEFINE(TANH_PRESERVES_ZERO_SIGN, 1,
3373 [Define if tanh(-0.) is -0., or if platform doesn't have signed zeros])
3376 AC_CHECK_FUNCS([acosh asinh atanh copysign expm1 finite hypot log1p round])
3377 AC_CHECK_DECLS([isinf, isnan, isfinite], [], [], [[#include <math.h>]])
3381 # For multiprocessing module, check that sem_open
3382 # actually works. For FreeBSD versions <= 7.2,
3383 # the kernel module that provides POSIX semaphores
3384 # isn't loaded by default, so an attempt to call
3385 # sem_open results in a 'Signal 12' error.
3386 AC_MSG_CHECKING(whether POSIX semaphores are enabled)
3387 AC_CACHE_VAL(ac_cv_posix_semaphores_enabled,
3392 #include <semaphore.h>
3393 #include <sys/stat.h>
3396 sem_t *a = sem_open("/autoconf", O_CREAT, S_IRUSR|S_IWUSR, 0);
3397 if (a == SEM_FAILED) {
3402 sem_unlink("/autoconf");
3405 ], ac_cv_posix_semaphores_enabled=yes,
3406 ac_cv_posix_semaphores_enabled=no,
3407 ac_cv_posix_semaphores_enabled=yes)
3409 AC_MSG_RESULT($ac_cv_posix_semaphores_enabled)
3410 if test $ac_cv_posix_semaphores_enabled = no
3412 AC_DEFINE(POSIX_SEMAPHORES_NOT_ENABLED, 1,
3413 [Define if POSIX semaphores aren't enabled on your system])
3416 # Multiprocessing check for broken sem_getvalue
3417 AC_MSG_CHECKING(for broken sem_getvalue)
3422 #include <semaphore.h>
3423 #include <sys/stat.h>
3426 sem_t *a = sem_open("/autocftw", O_CREAT, S_IRUSR|S_IWUSR, 0);
3434 res = sem_getvalue(a, &count);
3436 sem_unlink("/autocftw");
3437 return res==-1 ? 1 : 0;
3442 AC_DEFINE(HAVE_BROKEN_SEM_GETVALUE, 1, define to 1 if your sem_getvalue is broken.)
3445 # determine what size digit to use for Python's longs
3446 AC_MSG_CHECKING([digit size for Python's longs])
3447 AC_ARG_ENABLE(big-digits,
3448 AC_HELP_STRING([--enable-big-digits@<:@=BITS@:>@],[use big digits for Python longs [[BITS=30]]]),
3449 [case $enable_big_digits in
3451 enable_big_digits=30 ;;
3453 enable_big_digits=15 ;;
3457 AC_MSG_ERROR([bad value $enable_big_digits for --enable-big-digits; value should be 15 or 30]) ;;
3459 AC_MSG_RESULT($enable_big_digits)
3460 AC_DEFINE_UNQUOTED(PYLONG_BITS_IN_DIGIT, $enable_big_digits, [Define as the preferred size in bits of long digits])
3462 [AC_MSG_RESULT(no value specified)])
3465 AC_CHECK_HEADER(wchar.h, [
3466 AC_DEFINE(HAVE_WCHAR_H, 1,
3467 [Define if the compiler provides a wchar.h header file.])
3473 # determine wchar_t size
3474 if test "$wchar_h" = yes
3476 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
3479 AC_MSG_CHECKING(for UCS-4 tcl)
3483 #if TCL_UTF_MAX != 6
3484 # error "NOT UCS4_TCL"
3486 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
3489 AC_MSG_RESULT($have_ucs4_tcl)
3491 # check whether wchar_t is signed or not
3492 if test "$wchar_h" = yes
3494 # check whether wchar_t is signed or not
3495 AC_MSG_CHECKING(whether wchar_t is signed)
3496 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
3501 /* Success: exit code 0 */
3502 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1);
3505 ac_cv_wchar_t_signed=yes,
3506 ac_cv_wchar_t_signed=no,
3507 ac_cv_wchar_t_signed=yes)])
3508 AC_MSG_RESULT($ac_cv_wchar_t_signed)
3511 AC_MSG_CHECKING(what type to use for str)
3512 AC_ARG_WITH(wide-unicode,
3513 AC_HELP_STRING(--with-wide-unicode, Use 4-byte Unicode characters (default is 2 bytes)),
3515 if test "$withval" != no
3516 then unicode_size="4"
3517 else unicode_size="2"
3521 case "$have_ucs4_tcl" in
3522 yes) unicode_size="4" ;;
3523 *) unicode_size="2" ;;
3527 AH_TEMPLATE(Py_UNICODE_SIZE,
3528 [Define as the size of the unicode type.])
3529 case "$unicode_size" in
3530 4) AC_DEFINE(Py_UNICODE_SIZE, 4) ;;
3531 *) AC_DEFINE(Py_UNICODE_SIZE, 2) ;;
3534 AH_TEMPLATE(PY_UNICODE_TYPE,
3535 [Define as the integral type used for Unicode representation.])
3537 # wchar_t is only usable if it maps to an unsigned type
3538 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
3539 -a "$ac_cv_wchar_t_signed" = "no"
3541 PY_UNICODE_TYPE="wchar_t"
3542 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
3543 [Define if you have a useable wchar_t type defined in wchar.h; useable
3544 means wchar_t must be an unsigned type with at least 16 bits. (see
3545 Include/unicodeobject.h).])
3546 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
3547 elif test "$ac_cv_sizeof_short" = "$unicode_size"
3549 PY_UNICODE_TYPE="unsigned short"
3550 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
3551 elif test "$ac_cv_sizeof_long" = "$unicode_size"
3553 PY_UNICODE_TYPE="unsigned long"
3554 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
3556 PY_UNICODE_TYPE="no type found"
3558 AC_MSG_RESULT($PY_UNICODE_TYPE)
3560 # check for endianness
3563 # Check whether right shifting a negative integer extends the sign bit
3564 # or fills with zeros (like the Cray J90, according to Tim Peters).
3565 AC_MSG_CHECKING(whether right shift extends the sign bit)
3566 AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
3570 exit(((-1)>>3 == -1) ? 0 : 1);
3573 ac_cv_rshift_extends_sign=yes,
3574 ac_cv_rshift_extends_sign=no,
3575 ac_cv_rshift_extends_sign=yes)])
3576 AC_MSG_RESULT($ac_cv_rshift_extends_sign)
3577 if test "$ac_cv_rshift_extends_sign" = no
3579 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
3580 [Define if i>>j for signed int i does not extend the sign bit
3584 # check for getc_unlocked and related locking functions
3585 AC_MSG_CHECKING(for getc_unlocked() and friends)
3586 AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
3587 AC_TRY_LINK([#include <stdio.h>],[
3588 FILE *f = fopen("/dev/null", "r");
3592 ], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
3593 AC_MSG_RESULT($ac_cv_have_getc_unlocked)
3594 if test "$ac_cv_have_getc_unlocked" = yes
3596 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
3597 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
3600 # check where readline lives
3601 # save the value of LIBS so we don't actually link Python with readline
3602 LIBS_no_readline=$LIBS
3604 # On some systems we need to link readline to a termcap compatible
3605 # library. NOTE: Keep the precedence of listed libraries synchronised
3607 py_cv_lib_readline=no
3608 AC_MSG_CHECKING([how to link readline libs])
3609 for py_libtermcap in "" ncursesw ncurses curses termcap; do
3610 if test -z "$py_libtermcap"; then
3611 READLINE_LIBS="-lreadline"
3613 READLINE_LIBS="-lreadline -l$py_libtermcap"
3615 LIBS="$READLINE_LIBS $LIBS_no_readline"
3617 [AC_LANG_CALL([],[readline])],
3618 [py_cv_lib_readline=yes])
3619 if test $py_cv_lib_readline = yes; then
3623 # Uncomment this line if you want to use READINE_LIBS in Makefile or scripts
3624 #AC_SUBST([READLINE_LIBS])
3625 if test $py_cv_lib_readline = no; then
3626 AC_MSG_RESULT([none])
3628 AC_MSG_RESULT([$READLINE_LIBS])
3629 AC_DEFINE(HAVE_LIBREADLINE, 1,
3630 [Define if you have the readline library (-lreadline).])
3633 # check for readline 2.1
3634 AC_CHECK_LIB(readline, rl_callback_handler_install,
3635 AC_DEFINE(HAVE_RL_CALLBACK, 1,
3636 [Define if you have readline 2.1]), ,$READLINE_LIBS)
3638 # check for readline 2.2
3639 AC_TRY_CPP([#include <readline/readline.h>],
3640 have_readline=yes, have_readline=no)
3641 if test $have_readline = yes
3643 AC_EGREP_HEADER([extern int rl_completion_append_character;],
3644 [readline/readline.h],
3645 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
3646 [Define if you have readline 2.2]), )
3647 AC_EGREP_HEADER([extern int rl_completion_suppress_append;],
3648 [readline/readline.h],
3649 AC_DEFINE(HAVE_RL_COMPLETION_SUPPRESS_APPEND, 1,
3650 [Define if you have rl_completion_suppress_append]), )
3653 # check for readline 4.0
3654 AC_CHECK_LIB(readline, rl_pre_input_hook,
3655 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
3656 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3659 AC_CHECK_LIB(readline, rl_completion_display_matches_hook,
3660 AC_DEFINE(HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK, 1,
3661 [Define if you have readline 4.0]), ,$READLINE_LIBS)
3663 # check for readline 4.2
3664 AC_CHECK_LIB(readline, rl_completion_matches,
3665 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
3666 [Define if you have readline 4.2]), ,$READLINE_LIBS)
3668 # also in readline 4.2
3669 AC_TRY_CPP([#include <readline/readline.h>],
3670 have_readline=yes, have_readline=no)
3671 if test $have_readline = yes
3673 AC_EGREP_HEADER([extern int rl_catch_signals;],
3674 [readline/readline.h],
3675 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
3676 [Define if you can turn off readline's signal handling.]), )
3679 # End of readline checks: restore LIBS
3680 LIBS=$LIBS_no_readline
3682 AC_MSG_CHECKING(for broken nice())
3683 AC_CACHE_VAL(ac_cv_broken_nice, [
3688 if (val1 != -1 && val1 == nice(2))
3693 ac_cv_broken_nice=yes,
3694 ac_cv_broken_nice=no,
3695 ac_cv_broken_nice=no)])
3696 AC_MSG_RESULT($ac_cv_broken_nice)
3697 if test "$ac_cv_broken_nice" = yes
3699 AC_DEFINE(HAVE_BROKEN_NICE, 1,
3700 [Define if nice() returns success/failure instead of the new priority.])
3703 AC_MSG_CHECKING(for broken poll())
3709 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
3713 int poll_test = poll (&poll_struct, 1, 0);
3719 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
3729 ac_cv_broken_poll=yes,
3730 ac_cv_broken_poll=no,
3731 ac_cv_broken_poll=no)
3732 AC_MSG_RESULT($ac_cv_broken_poll)
3733 if test "$ac_cv_broken_poll" = yes
3735 AC_DEFINE(HAVE_BROKEN_POLL, 1,
3736 [Define if poll() sets errno on invalid file descriptors.])
3739 # Before we can test tzset, we need to check if struct tm has a tm_zone
3740 # (which is not required by ISO C or UNIX spec) and/or if we support
3744 # check tzset(3) exists and works like we expect it to
3745 AC_MSG_CHECKING(for working tzset())
3746 AC_CACHE_VAL(ac_cv_working_tzset, [
3753 extern char *tzname[];
3758 /* Note that we need to ensure that not only does tzset(3)
3759 do 'something' with localtime, but it works as documented
3760 in the library reference and as expected by the test suite.
3761 This includes making sure that tzname is set properly if
3762 tm->tm_zone does not exist since it is the alternative way
3763 of getting timezone info.
3765 Red Hat 6.2 doesn't understand the southern hemisphere
3766 after New Year's Day.
3769 time_t groundhogday = 1044144000; /* GMT-based */
3770 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
3774 if (localtime(&groundhogday)->tm_hour != 0)
3777 /* For UTC, tzname[1] is sometimes "", sometimes " " */
3778 if (strcmp(tzname[0], "UTC") ||
3779 (tzname[1][0] != 0 && tzname[1][0] != ' '))
3783 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
3785 if (localtime(&groundhogday)->tm_hour != 19)
3788 if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT"))
3792 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
3794 if (localtime(&groundhogday)->tm_hour != 11)
3797 if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT"))
3801 #if HAVE_STRUCT_TM_TM_ZONE
3802 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
3804 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
3811 ac_cv_working_tzset=yes,
3812 ac_cv_working_tzset=no,
3813 ac_cv_working_tzset=no)])
3814 AC_MSG_RESULT($ac_cv_working_tzset)
3815 if test "$ac_cv_working_tzset" = yes
3817 AC_DEFINE(HAVE_WORKING_TZSET, 1,
3818 [Define if tzset() actually switches the local timezone in a meaningful way.])
3821 # Look for subsecond timestamps in struct stat
3822 AC_MSG_CHECKING(for tv_nsec in struct stat)
3823 AC_CACHE_VAL(ac_cv_stat_tv_nsec,
3824 AC_TRY_COMPILE([#include <sys/stat.h>], [
3826 st.st_mtim.tv_nsec = 1;
3828 ac_cv_stat_tv_nsec=yes,
3829 ac_cv_stat_tv_nsec=no,
3830 ac_cv_stat_tv_nsec=no))
3831 AC_MSG_RESULT($ac_cv_stat_tv_nsec)
3832 if test "$ac_cv_stat_tv_nsec" = yes
3834 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
3835 [Define if you have struct stat.st_mtim.tv_nsec])
3838 # Look for BSD style subsecond timestamps in struct stat
3839 AC_MSG_CHECKING(for tv_nsec2 in struct stat)
3840 AC_CACHE_VAL(ac_cv_stat_tv_nsec2,
3841 AC_TRY_COMPILE([#include <sys/stat.h>], [
3843 st.st_mtimespec.tv_nsec = 1;
3845 ac_cv_stat_tv_nsec2=yes,
3846 ac_cv_stat_tv_nsec2=no,
3847 ac_cv_stat_tv_nsec2=no))
3848 AC_MSG_RESULT($ac_cv_stat_tv_nsec2)
3849 if test "$ac_cv_stat_tv_nsec2" = yes
3851 AC_DEFINE(HAVE_STAT_TV_NSEC2, 1,
3852 [Define if you have struct stat.st_mtimensec])
3855 # On HP/UX 11.0, mvwdelch is a block with a return statement
3856 AC_MSG_CHECKING(whether mvwdelch is an expression)
3857 AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
3858 AC_TRY_COMPILE([#include <curses.h>], [
3860 rtn = mvwdelch(0,0,0);
3861 ], ac_cv_mvwdelch_is_expression=yes,
3862 ac_cv_mvwdelch_is_expression=no,
3863 ac_cv_mvwdelch_is_expression=yes))
3864 AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
3866 if test "$ac_cv_mvwdelch_is_expression" = yes
3868 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
3869 [Define if mvwdelch in curses.h is an expression.])
3872 AC_MSG_CHECKING(whether WINDOW has _flags)
3873 AC_CACHE_VAL(ac_cv_window_has_flags,
3874 AC_TRY_COMPILE([#include <curses.h>], [
3877 ], ac_cv_window_has_flags=yes,
3878 ac_cv_window_has_flags=no,
3879 ac_cv_window_has_flags=no))
3880 AC_MSG_RESULT($ac_cv_window_has_flags)
3883 if test "$ac_cv_window_has_flags" = yes
3885 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3886 [Define if WINDOW in curses.h offers a field _flags.])
3889 AC_MSG_CHECKING(for is_term_resized)
3890 AC_TRY_COMPILE([#include <curses.h>], void *x=is_term_resized,
3891 AC_DEFINE(HAVE_CURSES_IS_TERM_RESIZED, 1, Define if you have the 'is_term_resized' function.)
3896 AC_MSG_CHECKING(for resize_term)
3897 AC_TRY_COMPILE([#include <curses.h>], void *x=resize_term,
3898 AC_DEFINE(HAVE_CURSES_RESIZE_TERM, 1, Define if you have the 'resize_term' function.)
3903 AC_MSG_CHECKING(for resizeterm)
3904 AC_TRY_COMPILE([#include <curses.h>], void *x=resizeterm,
3905 AC_DEFINE(HAVE_CURSES_RESIZETERM, 1, Define if you have the 'resizeterm' function.)
3910 AC_MSG_CHECKING(for /dev/ptmx)
3912 if test -r /dev/ptmx
3915 AC_DEFINE(HAVE_DEV_PTMX, 1,
3916 [Define if we have /dev/ptmx.])
3921 AC_MSG_CHECKING(for /dev/ptc)
3926 AC_DEFINE(HAVE_DEV_PTC, 1,
3927 [Define if we have /dev/ptc.])
3932 AC_MSG_CHECKING(for %zd printf() format support)
3933 AC_TRY_RUN([#include <stdio.h>
3937 #ifdef HAVE_SYS_TYPES_H
3938 #include <sys/types.h>
3942 typedef ssize_t Py_ssize_t;
3943 #elif SIZEOF_VOID_P == SIZEOF_LONG
3944 typedef long Py_ssize_t;
3946 typedef int Py_ssize_t;
3953 if(sprintf(buffer, "%zd", (size_t)123) < 0)
3956 if (strcmp(buffer, "123"))
3959 if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
3962 if (strcmp(buffer, "-123"))
3968 AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
3971 AC_CHECK_TYPE(socklen_t,,
3972 AC_DEFINE(socklen_t,int,
3973 Define to `int' if <sys/socket.h> does not define.),[
3974 #ifdef HAVE_SYS_TYPES_H
3975 #include <sys/types.h>
3977 #ifdef HAVE_SYS_SOCKET_H
3978 #include <sys/socket.h>
3982 AC_MSG_CHECKING(for broken mbstowcs)
3987 const char *str = "text";
3988 len = mbstowcs(NULL, str, 0);
3992 ac_cv_broken_mbstowcs=no,
3993 ac_cv_broken_mbstowcs=yes,
3994 ac_cv_broken_mbstowcs=no)
3995 AC_MSG_RESULT($ac_cv_broken_mbstowcs)
3996 if test "$ac_cv_broken_mbstowcs" = yes
3998 AC_DEFINE(HAVE_BROKEN_MBSTOWCS, 1,
3999 [Define if mbstowcs(NULL, "text", 0) does not return the number of
4000 wide chars that would be converted.])
4003 # Check for --with-computed-gotos
4004 AC_MSG_CHECKING(for --with-computed-gotos)
4005 AC_ARG_WITH(computed-gotos,
4006 AC_HELP_STRING(--with-computed-gotos,
4007 Use computed gotos / threaded dispatch in evaluation loop (not available on all compilers)),
4009 if test "$withval" != no
4011 AC_DEFINE(USE_COMPUTED_GOTOS, 1,
4012 [Define if you want to use computed gotos in ceval.c.])
4014 else AC_MSG_RESULT(no)
4016 [AC_MSG_RESULT(no)])
4018 if test $ac_sys_system = Darwin
4020 LIBS="$LIBS -framework CoreFoundation"
4025 AC_SUBST(THREADHEADERS)
4027 for h in `(cd $srcdir;echo Python/thread_*.h)`
4029 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
4033 SRCDIRS="Parser Grammar Objects Python Modules Mac"
4034 AC_MSG_CHECKING(for build directories)
4035 for dir in $SRCDIRS; do
4036 if test ! -d $dir; then
4042 # generate output files
4043 AC_CONFIG_FILES(Makefile.pre Modules/Setup.config Misc/python.pc)
4046 echo "creating Modules/Setup"
4047 if test ! -f Modules/Setup
4049 cp $srcdir/Modules/Setup.dist Modules/Setup
4052 echo "creating Modules/Setup.local"
4053 if test ! -f Modules/Setup.local
4055 echo "# Edit this file for local setup changes" >Modules/Setup.local
4058 echo "creating Makefile"
4059 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
4060 -s Modules Modules/Setup.config \
4061 Modules/Setup.local Modules/Setup