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.63).
6 # Set VERSION so we only need to edit in one place (i.e., here)
7 m4_define(PYTHON_VERSION, 2.6)
9 AC_REVISION($Revision$)
11 AC_INIT(python, PYTHON_VERSION, http://www.python.org/python-bugs)
12 AC_CONFIG_SRCDIR([Include/object.h])
13 AC_CONFIG_HEADER(pyconfig.h)
15 dnl This is for stuff that absolutely must end up in pyconfig.h.
16 dnl Please use pyport.h instead, if possible.
22 /* Define the macros needed if on a UnixWare 7.x system. */
23 #if defined(__USLC__) && defined(__SCO_VERSION__)
24 #define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
27 #endif /*Py_PYCONFIG_H*/
30 # We don't use PACKAGE_ variables, and they cause conflicts
31 # with other autoconf-based packages that include Python.h
32 grep -v 'define PACKAGE_' <confdefs.h >confdefs.h.new
34 mv confdefs.h.new confdefs.h
37 VERSION=PYTHON_VERSION
42 # The later defininition of _XOPEN_SOURCE disables certain features
43 # on Linux, so we need _GNU_SOURCE to re-enable them (makedev, tm_zone).
44 AC_DEFINE(_GNU_SOURCE, 1, [Define on Linux to activate all library features])
46 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
47 # certain features on NetBSD, so we need _NETBSD_SOURCE to re-enable
49 AC_DEFINE(_NETBSD_SOURCE, 1, [Define on NetBSD to activate all library features])
51 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
52 # certain features on FreeBSD, so we need __BSD_VISIBLE to re-enable
54 AC_DEFINE(__BSD_VISIBLE, 1, [Define on FreeBSD to activate all library features])
56 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
57 # u_int on Irix 5.3. Defining _BSD_TYPES brings it back.
58 AC_DEFINE(_BSD_TYPES, 1, [Define on Irix to enable u_int])
60 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
61 # certain features on Mac OS X, so we need _DARWIN_C_SOURCE to re-enable
63 AC_DEFINE(_DARWIN_C_SOURCE, 1, [Define on Darwin to activate all library features])
66 define_xopen_source=yes
68 # Arguments passed to configure.
70 CONFIG_ARGS="$ac_configure_args"
72 AC_ARG_ENABLE(universalsdk,
73 AC_HELP_STRING(--enable-universalsdk@<:@=SDKDIR@:>@, Build against Mac OS X 10.4u SDK (ppc/i386)),
77 enableval=/Developer/SDKs/MacOSX10.4u.sdk
86 UNIVERSALSDK=$enableval
93 AC_SUBST(UNIVERSALSDK)
95 UNIVERSAL_ARCHS="32-bit"
96 AC_MSG_CHECKING(for --with-universal-archs)
97 AC_ARG_WITH(universal-archs,
98 AC_HELP_STRING(--with-universal-archs=ARCH, select architectures for universal build ("32-bit", "64-bit" or "all")),
100 AC_MSG_RESULT($withval)
101 UNIVERSAL_ARCHS="$withval"
104 AC_MSG_RESULT(32-bit)
109 AC_ARG_WITH(framework-name,
110 AC_HELP_STRING(--with-framework-name=FRAMEWORK,
111 specify an alternate name of the framework built with --enable-framework),
113 PYTHONFRAMEWORK=${withval}
114 PYTHONFRAMEWORKDIR=${withval}.framework
115 PYTHONFRAMEWORKIDENTIFIER=org.python.`echo $withval | tr '[A-Z]' '[a-z]'`
117 PYTHONFRAMEWORK=Python
118 PYTHONFRAMEWORKDIR=Python.framework
119 PYTHONFRAMEWORKIDENTIFIER=org.python.python
121 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
122 AC_ARG_ENABLE(framework,
123 AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework),
127 enableval=/Library/Frameworks
132 PYTHONFRAMEWORKDIR=no-framework
133 PYTHONFRAMEWORKPREFIX=
134 PYTHONFRAMEWORKINSTALLDIR=
135 FRAMEWORKINSTALLFIRST=
136 FRAMEWORKINSTALLLAST=
137 FRAMEWORKALTINSTALLFIRST=
138 FRAMEWORKALTINSTALLLAST=
139 if test "x${prefix}" = "xNONE"; then
140 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
142 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
147 PYTHONFRAMEWORKPREFIX=$enableval
148 PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
149 FRAMEWORKINSTALLFIRST="frameworkinstallstructure"
150 FRAMEWORKALTINSTALLFIRST="frameworkinstallstructure bininstall maninstall"
151 if test "$UNIVERSAL_ARCHS" = "all"
153 FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps4way frameworkinstallunixtools4way"
155 FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools"
158 if test "x${prefix}" = "xNONE" ; then
159 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
161 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
163 prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
165 # Add files for Mac specific code to the list of output
167 AC_CONFIG_FILES(Mac/Makefile)
168 AC_CONFIG_FILES(Mac/PythonLauncher/Makefile)
169 AC_CONFIG_FILES(Mac/IDLE/Makefile)
170 AC_CONFIG_FILES(Mac/Resources/framework/Info.plist)
171 AC_CONFIG_FILES(Mac/Resources/app/Info.plist)
175 PYTHONFRAMEWORKDIR=no-framework
176 PYTHONFRAMEWORKPREFIX=
177 PYTHONFRAMEWORKINSTALLDIR=
178 FRAMEWORKINSTALLFIRST=
179 FRAMEWORKINSTALLLAST=
180 FRAMEWORKALTINSTALLFIRST=
181 FRAMEWORKALTINSTALLLAST=
182 if test "x${prefix}" = "xNONE" ; then
183 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
185 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
189 if test "$UNIVERSAL_ARCHS" = "all"
191 FRAMEWORKINSTALLLAST=update4wayuniversal
192 FRAMEWORKALTINSTALLLAST=update4wayuniversal
195 AC_SUBST(PYTHONFRAMEWORK)
196 AC_SUBST(PYTHONFRAMEWORKIDENTIFIER)
197 AC_SUBST(PYTHONFRAMEWORKDIR)
198 AC_SUBST(PYTHONFRAMEWORKPREFIX)
199 AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)
200 AC_SUBST(FRAMEWORKINSTALLFIRST)
201 AC_SUBST(FRAMEWORKINSTALLLAST)
202 AC_SUBST(FRAMEWORKALTINSTALLFIRST)
203 AC_SUBST(FRAMEWORKALTINSTALLLAST)
204 AC_SUBST(FRAMEWORKUNIXTOOLSPREFIX)
207 ## AC_HELP_STRING(--with-dyld,
208 ## Use (OpenStep|Rhapsody) dynamic linker))
210 # Set name for machine-dependent library files
212 AC_MSG_CHECKING(MACHDEP)
213 if test -z "$MACHDEP"
215 ac_sys_system=`uname -s`
216 if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \
217 -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
218 ac_sys_release=`uname -v`
220 ac_sys_release=`uname -r`
222 ac_md_system=`echo $ac_sys_system |
223 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
224 ac_md_release=`echo $ac_sys_release |
225 tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
226 MACHDEP="$ac_md_system$ac_md_release"
229 cygwin*) MACHDEP="cygwin";;
230 darwin*) MACHDEP="darwin";;
231 atheos*) MACHDEP="atheos";;
232 irix646) MACHDEP="irix6";;
233 '') MACHDEP="unknown";;
237 # Some systems cannot stand _XOPEN_SOURCE being defined at all; they
238 # disable features if it is defined, without any means to access these
239 # features as extensions. For these systems, we skip the definition of
240 # _XOPEN_SOURCE. Before adding a system to the list to gain access to
241 # some feature, make sure there is no alternative way to access this
242 # feature. Also, when using wildcards, make sure you have verified the
243 # need for not defining _XOPEN_SOURCE on all systems matching the
244 # wildcard, and that the wildcard does not include future systems
245 # (which may remove their limitations).
246 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
247 case $ac_sys_system/$ac_sys_release in
248 # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined,
249 # even though select is a POSIX function. Reported by J. Ribbens.
250 # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
251 OpenBSD/2.* | OpenBSD/3.@<:@0123456789@:>@ | OpenBSD/4.@<:@0123@:>@)
252 define_xopen_source=no
253 # OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is
254 # also defined. This can be overridden by defining _BSD_SOURCE
255 # As this has a different meaning on Linux, only define it on OpenBSD
256 AC_DEFINE(_BSD_SOURCE, 1, [Define on OpenBSD to activate all library features])
258 # Defining _XOPEN_SOURCE on NetBSD version prior to the introduction of
259 # _NETBSD_SOURCE disables certain features (eg. setgroups). Reported by
261 NetBSD/1.5 | NetBSD/1.5.* | NetBSD/1.6 | NetBSD/1.6.* | NetBSD/1.6[A-S])
262 define_xopen_source=no;;
263 # On Solaris 2.6, sys/wait.h is inconsistent in the usage
264 # of union __?sigval. Reported by Stuart Bishop.
266 define_xopen_source=no;;
267 # On UnixWare 7, u_long is never defined with _XOPEN_SOURCE,
268 # but used in /usr/include/netinet/tcp.h. Reported by Tim Rice.
269 # Reconfirmed for 7.1.4 by Martin v. Loewis.
270 OpenUNIX/8.0.0| UnixWare/7.1.@<:@0-4@:>@)
271 define_xopen_source=no;;
272 # On OpenServer 5, u_short is never defined with _XOPEN_SOURCE,
273 # but used in struct sockaddr.sa_family. Reported by Tim Rice.
275 define_xopen_source=no;;
276 # On FreeBSD 4.8 and MacOS X 10.2, a bug in ncurses.h means that
277 # it craps out if _XOPEN_EXTENDED_SOURCE is defined. Apparently,
278 # this is fixed in 10.3, which identifies itself as Darwin/7.*
279 # This should hopefully be fixed in FreeBSD 4.9
280 FreeBSD/4.8* | Darwin/6* )
281 define_xopen_source=no;;
282 # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
283 # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
284 # or has another value. By not (re)defining it, the defaults come in place.
286 define_xopen_source=no;;
288 if test `uname -r` -eq 1; then
289 define_xopen_source=no
292 # On Mac OS X 10.4, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
293 # disables platform specific features beyond repair.
294 # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
295 # has no effect, don't bother defining them
296 Darwin/@<:@789@:>@.*)
297 define_xopen_source=no
299 # On QNX 6.3.2, defining _XOPEN_SOURCE prevents netdb.h from
300 # defining NI_NUMERICHOST.
302 define_xopen_source=no
307 if test $define_xopen_source = yes
309 # On Solaris w/ g++ it appears that _XOPEN_SOURCE has to be
310 # defined precisely as g++ defines it
311 # Furthermore, on Solaris 10, XPG6 requires the use of a C99
313 case $ac_sys_system/$ac_sys_release in
314 SunOS/5.8|SunOS/5.9|SunOS/5.10)
315 AC_DEFINE(_XOPEN_SOURCE, 500,
316 Define to the level of X/Open that your system supports)
319 AC_DEFINE(_XOPEN_SOURCE, 600,
320 Define to the level of X/Open that your system supports)
324 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
325 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
326 # several APIs are not declared. Since this is also needed in some
327 # cases for HP-UX, we define it globally.
328 # except for Solaris 10, where it must not be defined,
329 # as it implies XPG4.2
330 case $ac_sys_system/$ac_sys_release in
334 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1,
335 Define to activate Unix95-and-earlier features)
339 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
344 # SGI compilers allow the specification of the both the ABI and the
345 # ISA on the command line. Depending on the values of these switches,
346 # different and often incompatable code will be generated.
348 # The SGI_ABI variable can be used to modify the CC and LDFLAGS and
349 # thus supply support for various ABI/ISA combinations. The MACHDEP
350 # variable is also adjusted.
353 if test ! -z "$SGI_ABI"
356 LDFLAGS="$SGI_ABI $LDFLAGS"
357 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
359 AC_MSG_RESULT($MACHDEP)
361 # And add extra plat-mac for darwin
362 AC_SUBST(EXTRAPLATDIR)
363 AC_SUBST(EXTRAMACHDEPPATH)
364 AC_MSG_CHECKING(EXTRAPLATDIR)
365 if test -z "$EXTRAPLATDIR"
369 EXTRAPLATDIR="\$(PLATMACDIRS)"
370 EXTRAMACHDEPPATH="\$(PLATMACPATH)"
378 AC_MSG_RESULT($EXTRAPLATDIR)
380 # Record the configure-time value of MACOSX_DEPLOYMENT_TARGET,
381 # it may influence the way we can build extensions, so distutils
383 AC_SUBST(CONFIGURE_MACOSX_DEPLOYMENT_TARGET)
384 AC_SUBST(EXPORT_MACOSX_DEPLOYMENT_TARGET)
385 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
386 EXPORT_MACOSX_DEPLOYMENT_TARGET='#'
388 AC_MSG_CHECKING(machine type as reported by uname -m)
389 ac_sys_machine=`uname -m`
390 AC_MSG_RESULT($ac_sys_machine)
392 # checks for alternative programs
394 # compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
395 # for debug/optimization stuff. BASECFLAGS is for flags that are required
396 # just to get things to compile and link. Users are free to override OPT
397 # when running configure or make. The build should not break if they do.
398 # BASECFLAGS should generally not be messed with, however.
400 # XXX shouldn't some/most/all of this code be merged with the stuff later
401 # on that fiddles with OPT and BASECFLAGS?
402 AC_MSG_CHECKING(for --without-gcc)
404 AC_HELP_STRING(--without-gcc,never use gcc),
412 without_gcc=$withval;;
414 case $ac_sys_system in
422 BASECFLAGS="$BASECFLAGS -export pragma"
424 LDFLAGS="$LDFLAGS -nodup"
432 AC_MSG_ERROR([Unknown BeOS platform "$BE_HOST_CPU"])
435 AR="\$(srcdir)/Modules/ar_beos"
443 AC_MSG_RESULT($without_gcc)
445 # If the user switches compilers, we can't believe the cache
446 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
448 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
449 (it is also a good idea to do 'make clean' before compiling)])
456 AC_MSG_CHECKING(for --with-cxx-main=<compiler>)
457 AC_ARG_WITH(cxx_main,
458 AC_HELP_STRING([--with-cxx-main=<compiler>],
459 [compile main() and link python executable with C++ compiler]),
465 yes) with_cxx_main=yes
477 AC_MSG_RESULT($with_cxx_main)
483 gcc) AC_PATH_PROG(CXX, [g++], [g++], [notfound]) ;;
484 cc) AC_PATH_PROG(CXX, [c++], [c++], [notfound]) ;;
486 if test "$CXX" = "notfound"
493 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
494 if test "$CXX" = "notfound"
499 if test "$preset_cxx" != "$CXX"
503 By default, distutils will build C++ extension modules with "$CXX".
504 If this is not intended, then set CXX on the configure command line.
509 # checks for UNIX variants that set C preprocessor variables
512 # Check for unsupported systems
513 case $ac_sys_system/$ac_sys_release in
515 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
516 echo See README for details.
521 AC_MSG_CHECKING(for --with-suffix)
523 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
530 AC_MSG_RESULT($EXEEXT)
532 # Test whether we're running on a non-case-sensitive system, in which
533 # case we give a warning if no ext is given
534 AC_SUBST(BUILDEXEEXT)
535 AC_MSG_CHECKING(for case-insensitive build directory)
536 if test ! -d CaseSensitiveTestDir; then
537 mkdir CaseSensitiveTestDir
540 if test -d casesensitivetestdir
548 rmdir CaseSensitiveTestDir
553 gcc) CC="$CC -D_HAVE_BSDI";;
557 case $ac_sys_system in
560 cc|*/cc) CC="$CC -Ae";;
564 cc) CC="$CC -Wl,-Bexport";;
567 # Some functions have a prototype only with that define, e.g. confstr
568 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
574 AC_MSG_CHECKING(LIBRARY)
575 if test -z "$LIBRARY"
577 LIBRARY='libpython$(VERSION).a'
579 AC_MSG_RESULT($LIBRARY)
581 # LDLIBRARY is the name of the library to link against (as opposed to the
582 # name of the library into which to insert object files). BLDLIBRARY is also
583 # the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
584 # is blank as the main program is not linked directly against LDLIBRARY.
585 # LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
586 # systems without shared libraries, LDLIBRARY is the same as LIBRARY
587 # (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
588 # DLLLIBRARY is the shared (i.e., DLL) library.
590 # RUNSHARED is used to run shared python without installed libraries
592 # INSTSONAME is the name of the shared library that will be use to install
593 # on the system - some systems like version suffix, others don't
597 AC_SUBST(LDLIBRARYDIR)
601 BLDLIBRARY='$(LDLIBRARY)'
602 INSTSONAME='$(LDLIBRARY)'
607 # LINKCC is the command that links the python executable -- default is $(CC).
608 # If CXX is set, and if it is needed to link a main function that was
609 # compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
610 # python might then depend on the C++ runtime
611 # This is altered for AIX in order to build the export list before
614 AC_MSG_CHECKING(LINKCC)
617 LINKCC='$(PURIFY) $(MAINCC)'
618 case $ac_sys_system in
621 if test $ac_sys_release -ge 5 -o \
622 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
625 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
627 LINKCC="$LINKCC -L/usr/lib/ia64l64";;
629 # qcc must be used because the other compilers do not
634 AC_MSG_RESULT($LINKCC)
636 AC_MSG_CHECKING(for --enable-shared)
637 AC_ARG_ENABLE(shared,
638 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
640 if test -z "$enable_shared"
642 case $ac_sys_system in
644 enable_shared="yes";;
649 AC_MSG_RESULT($enable_shared)
651 AC_MSG_CHECKING(for --enable-profiling)
652 AC_ARG_ENABLE(profiling,
653 AC_HELP_STRING(--enable-profiling, enable C-level code profiling),
656 AC_TRY_RUN([int main() { return 0; }],
657 ac_enable_profiling="yes",
658 ac_enable_profiling="no",
659 ac_enable_profiling="no")
661 AC_MSG_RESULT($ac_enable_profiling)
663 case "$ac_enable_profiling" in
665 BASECFLAGS="-pg $BASECFLAGS"
666 LDFLAGS="-pg $LDFLAGS"
670 AC_MSG_CHECKING(LDLIBRARY)
672 # MacOSX framework builds need more magic. LDLIBRARY is the dynamic
673 # library that we build, but we do not want to link against it (we
674 # will find it with a -framework option). For this reason there is an
675 # extra variable BLDLIBRARY against which Python and the extension
676 # modules are linked, BLDLIBRARY. This is normally the same as
677 # LDLIBRARY, but empty for MacOSX framework builds.
678 if test "$enable_framework"
680 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
681 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
684 BLDLIBRARY='$(LDLIBRARY)'
687 # Other platforms follow
688 if test $enable_shared = "yes"; then
689 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
690 case $ac_sys_system in
692 LDLIBRARY='libpython$(VERSION).so'
695 LDLIBRARY='libpython$(VERSION).dll.a'
696 DLLLIBRARY='libpython$(VERSION).dll'
699 LDLIBRARY='libpython$(VERSION).so'
700 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
701 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
702 INSTSONAME="$LDLIBRARY".$SOVERSION
704 Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*)
705 LDLIBRARY='libpython$(VERSION).so'
706 BLDLIBRARY='-L. -lpython$(VERSION)'
707 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
708 case $ac_sys_system in
710 SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
713 INSTSONAME="$LDLIBRARY".$SOVERSION
718 LDLIBRARY='libpython$(VERSION).so'
721 LDLIBRARY='libpython$(VERSION).sl'
724 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
725 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
728 LDLIBRARY='libpython$(VERSION).so'
729 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
730 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
733 LDLIBRARY='libpython$(VERSION).so'
734 BLDLIBRARY='-L. -lpython$(VERSION)'
735 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
738 else # shared is disabled
739 case $ac_sys_system in
741 BLDLIBRARY='$(LIBRARY)'
742 LDLIBRARY='libpython$(VERSION).dll.a'
747 AC_MSG_RESULT($LDLIBRARY)
751 AC_CHECK_PROGS(AR, ar aal, ar)
754 AC_CHECK_PROG(SVNVERSION, svnversion, found, not-found)
755 if test $SVNVERSION = found
757 SVNVERSION="svnversion \$(srcdir)"
759 SVNVERSION="echo exported"
764 # install -d does not work on BSDI or HP-UX
765 if test -z "$INSTALL"
767 INSTALL="${srcdir}/install-sh -c"
772 # Not every filesystem supports hard links
774 if test -z "$LN" ; then
775 case $ac_sys_system in
777 CYGWIN*) LN="ln -s";;
778 atheos*) LN="ln -s";;
783 # Check for --with-pydebug
784 AC_MSG_CHECKING(for --with-pydebug)
786 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
788 if test "$withval" != no
790 AC_DEFINE(Py_DEBUG, 1,
791 [Define if you want to build an interpreter with many run-time checks.])
794 else AC_MSG_RESULT(no); Py_DEBUG='false'
798 # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
799 # merged with this chunk of code?
801 # Optimizer/debugger flags
802 # ------------------------
803 # (The following bit of code is complicated enough - please keep things
804 # indented properly. Just pretend you're editing Python code. ;-)
806 # There are two parallel sets of case statements below, one that checks to
807 # see if OPT was set and one that does BASECFLAGS setting based upon
808 # compiler and platform. BASECFLAGS tweaks need to be made even if the
811 # tweak OPT based on compiler and platform, only if the user didn't set
812 # it on the command line
818 if test "$CC" != 'g++' ; then
819 STRICT_PROTO="-Wstrict-prototypes"
821 # For gcc 4.x we need to use -fwrapv so lets check if its supported
822 if "$CC" -v --help 2>/dev/null |grep -- -fwrapv > /dev/null; then
825 case $ac_cv_prog_cc_g in
827 if test "$Py_DEBUG" = 'true' ; then
828 # Optimization messes up debuggers, so turn it off for
830 OPT="-g -Wall $STRICT_PROTO"
832 OPT="-g $WRAP -O3 -Wall $STRICT_PROTO"
836 OPT="-O3 -Wall $STRICT_PROTO"
839 case $ac_sys_system in
840 SCO_SV*) OPT="$OPT -m486 -DSCO5"
850 # The current (beta) Monterey compiler dies with optimizations
851 # XXX what is Monterey? Does it still die w/ -O? Can we get rid of this?
852 case $ac_sys_system in
862 # The -arch flags for universal builds on OSX
863 UNIVERSAL_ARCH_FLAGS=
864 AC_SUBST(UNIVERSAL_ARCH_FLAGS)
866 # tweak BASECFLAGS based on compiler and platform
869 # Python violates C99 rules, by casting between incompatible
870 # pointer types. GCC may generate bad code as a result of that,
871 # so use -fno-strict-aliasing if supported.
872 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
874 CC="$CC -fno-strict-aliasing"
875 AC_TRY_RUN([int main() { return 0; }],
876 ac_cv_no_strict_aliasing_ok=yes,
877 ac_cv_no_strict_aliasing_ok=no,
878 ac_cv_no_strict_aliasing_ok=no)
880 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
881 if test $ac_cv_no_strict_aliasing_ok = yes
883 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
886 # if using gcc on alpha, use -mieee to get (near) full IEEE 754
887 # support. Without this, treatment of subnormals doesn't follow
889 case $ac_sys_machine in
891 BASECFLAGS="$BASECFLAGS -mieee"
895 case $ac_sys_system in
897 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
899 # is there any other compiler on Darwin besides gcc?
901 # -Wno-long-double, -no-cpp-precomp, and -mno-fused-madd
902 # used to be here, but non-Apple gcc doesn't accept them.
903 if test "${enable_universalsdk}"; then
904 UNIVERSAL_ARCH_FLAGS=""
905 if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
906 UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
908 elif test "$UNIVERSAL_ARCHS" = "64-bit" ; then
909 UNIVERSAL_ARCH_FLAGS="-arch ppc64 -arch x86_64"
911 elif test "$UNIVERSAL_ARCHS" = "all" ; then
912 UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
915 AC_MSG_ERROR([proper usage is --with-universalarch=32-bit|64-bit|all])
920 BASECFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${BASECFLAGS}"
921 CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
926 BASECFLAGS="$BASECFLAGS -mieee"
932 case $ac_sys_system in
934 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
937 BASECFLAGS="$BASECFLAGS -ieee -std"
940 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
946 if test "$Py_DEBUG" = 'true'; then
952 if test "$ac_arch_flags"
954 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
957 # disable check for icc since it seems to pass, but generates a warning
960 ac_cv_opt_olimit_ok=no
963 AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
964 AC_CACHE_VAL(ac_cv_opt_olimit_ok,
966 CC="$CC -OPT:Olimit=0"
967 AC_TRY_RUN([int main() { return 0; }],
968 ac_cv_opt_olimit_ok=yes,
969 ac_cv_opt_olimit_ok=no,
970 ac_cv_opt_olimit_ok=no)
972 AC_MSG_RESULT($ac_cv_opt_olimit_ok)
973 if test $ac_cv_opt_olimit_ok = yes; then
974 case $ac_sys_system in
975 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
976 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
981 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
985 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
986 AC_CACHE_VAL(ac_cv_olimit_ok,
988 CC="$CC -Olimit 1500"
989 AC_TRY_RUN([int main() { return 0; }],
994 AC_MSG_RESULT($ac_cv_olimit_ok)
995 if test $ac_cv_olimit_ok = yes; then
996 BASECFLAGS="$BASECFLAGS -Olimit 1500"
1000 # Check whether GCC supports PyArg_ParseTuple format
1001 if test "$GCC" = "yes"
1003 AC_MSG_CHECKING(whether gcc supports ParseTuple __format__)
1005 CFLAGS="$CFLAGS -Werror"
1007 void f(char*,...)__attribute((format(PyArg_ParseTuple, 1, 2)));
1009 AC_DEFINE(HAVE_ATTRIBUTE_FORMAT_PARSETUPLE, 1, [Define if GCC supports __attribute__((format(PyArg_ParseTuple, 2, 3)))])
1016 # On some compilers, pthreads are available without further options
1017 # (e.g. MacOS X). On some of these systems, the compiler will not
1018 # complain if unaccepted options are passed (e.g. gcc on Mac OS X).
1019 # So we have to see first whether pthreads are available without
1020 # options before we can check whether -Kpthread improves anything.
1021 AC_MSG_CHECKING(whether pthreads are available without options)
1022 AC_CACHE_VAL(ac_cv_pthread_is_default,
1024 #include <pthread.h>
1026 void* routine(void* p){return NULL;}
1030 if(pthread_create(&p,NULL,routine,NULL)!=0)
1032 (void)pthread_detach(p);
1037 ac_cv_pthread_is_default=yes
1041 ac_cv_pthread_is_default=no,
1042 ac_cv_pthread_is_default=no)
1044 AC_MSG_RESULT($ac_cv_pthread_is_default)
1047 if test $ac_cv_pthread_is_default = yes
1051 # -Kpthread, if available, provides the right #defines
1052 # and linker options to make pthread_create available
1053 # Some compilers won't report that they do not support -Kpthread,
1054 # so we need to run a program to see whether it really made the
1055 # function available.
1056 AC_MSG_CHECKING(whether $CC accepts -Kpthread)
1057 AC_CACHE_VAL(ac_cv_kpthread,
1061 #include <pthread.h>
1063 void* routine(void* p){return NULL;}
1067 if(pthread_create(&p,NULL,routine,NULL)!=0)
1069 (void)pthread_detach(p);
1077 AC_MSG_RESULT($ac_cv_kpthread)
1080 if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
1082 # -Kthread, if available, provides the right #defines
1083 # and linker options to make pthread_create available
1084 # Some compilers won't report that they do not support -Kthread,
1085 # so we need to run a program to see whether it really made the
1086 # function available.
1087 AC_MSG_CHECKING(whether $CC accepts -Kthread)
1088 AC_CACHE_VAL(ac_cv_kthread,
1092 #include <pthread.h>
1094 void* routine(void* p){return NULL;}
1098 if(pthread_create(&p,NULL,routine,NULL)!=0)
1100 (void)pthread_detach(p);
1108 AC_MSG_RESULT($ac_cv_kthread)
1111 if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
1113 # -pthread, if available, provides the right #defines
1114 # and linker options to make pthread_create available
1115 # Some compilers won't report that they do not support -pthread,
1116 # so we need to run a program to see whether it really made the
1117 # function available.
1118 AC_MSG_CHECKING(whether $CC accepts -pthread)
1119 AC_CACHE_VAL(ac_cv_thread,
1123 #include <pthread.h>
1125 void* routine(void* p){return NULL;}
1129 if(pthread_create(&p,NULL,routine,NULL)!=0)
1131 (void)pthread_detach(p);
1139 AC_MSG_RESULT($ac_cv_pthread)
1142 # If we have set a CC compiler flag for thread support then
1143 # check if it works for CXX, too.
1147 AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
1150 if test "$ac_cv_kpthread" = "yes"
1152 CXX="$CXX -Kpthread"
1153 ac_cv_cxx_thread=yes
1154 elif test "$ac_cv_kthread" = "yes"
1157 ac_cv_cxx_thread=yes
1158 elif test "$ac_cv_pthread" = "yes"
1161 ac_cv_cxx_thread=yes
1164 if test $ac_cv_cxx_thread = yes
1166 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
1167 $CXX -c conftest.$ac_ext 2>&5
1168 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
1169 && test -s conftest$ac_exeext && ./conftest$ac_exeext
1171 ac_cv_cxx_thread=yes
1177 AC_MSG_RESULT($ac_cv_cxx_thread)
1181 dnl # check for ANSI or K&R ("traditional") preprocessor
1182 dnl AC_MSG_CHECKING(for C preprocessor type)
1183 dnl AC_TRY_COMPILE([
1184 dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
1186 dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
1187 dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
1188 dnl AC_MSG_RESULT($cpp_type)
1190 # checks for header files
1192 AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
1194 ieeefp.h io.h langinfo.h libintl.h ncurses.h poll.h process.h pthread.h \
1195 shadow.h signal.h stdint.h stropts.h termios.h thread.h \
1197 sys/audioio.h sys/bsdtty.h sys/epoll.h sys/event.h sys/file.h sys/loadavg.h \
1198 sys/lock.h sys/mkdev.h sys/modem.h \
1199 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/statvfs.h sys/stat.h \
1200 sys/termio.h sys/time.h \
1201 sys/times.h sys/types.h sys/un.h sys/utsname.h sys/wait.h pty.h libutil.h \
1202 sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
1203 bluetooth/bluetooth.h linux/tipc.h)
1207 # On Solaris, term.h requires curses.h
1208 AC_CHECK_HEADERS(term.h,,,[
1209 #ifdef HAVE_CURSES_H
1214 # On Linux, netlink.h requires asm/types.h
1215 AC_CHECK_HEADERS(linux/netlink.h,,,[
1216 #ifdef HAVE_ASM_TYPES_H
1217 #include <asm/types.h>
1219 #ifdef HAVE_SYS_SOCKET_H
1220 #include <sys/socket.h>
1224 # checks for typedefs
1226 AC_MSG_CHECKING(for clock_t in time.h)
1227 AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
1228 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
1230 AC_MSG_RESULT($was_it_defined)
1232 # Check whether using makedev requires defining _OSF_SOURCE
1233 AC_MSG_CHECKING(for makedev)
1234 AC_TRY_LINK([#include <sys/types.h> ],
1236 ac_cv_has_makedev=yes,
1237 ac_cv_has_makedev=no)
1238 if test "$ac_cv_has_makedev" = "no"; then
1239 # we didn't link, try if _OSF_SOURCE will allow us to link
1241 #define _OSF_SOURCE 1
1242 #include <sys/types.h>
1245 ac_cv_has_makedev=yes,
1246 ac_cv_has_makedev=no)
1247 if test "$ac_cv_has_makedev" = "yes"; then
1248 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
1251 AC_MSG_RESULT($ac_cv_has_makedev)
1252 if test "$ac_cv_has_makedev" = "yes"; then
1253 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
1256 # Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
1257 # the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
1258 # defined, but the compiler does not support pragma redefine_extname,
1259 # and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
1260 # structures (such as rlimit64) without declaring them. As a
1261 # work-around, disable LFS on such configurations
1264 AC_MSG_CHECKING(Solaris LFS bug)
1266 #define _LARGEFILE_SOURCE 1
1267 #define _FILE_OFFSET_BITS 64
1268 #include <sys/resource.h>
1269 ],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
1270 AC_MSG_RESULT($sol_lfs_bug)
1271 if test "$sol_lfs_bug" = "yes"; then
1275 if test "$use_lfs" = "yes"; then
1276 # Two defines needed to enable largefile support on various platforms
1277 # These may affect some typedefs
1278 AC_DEFINE(_LARGEFILE_SOURCE, 1,
1279 [This must be defined on some systems to enable large file support.])
1280 AC_DEFINE(_FILE_OFFSET_BITS, 64,
1281 [This must be set to 64 on some systems to enable large file support.])
1284 # Add some code to confdefs.h so that the test for off_t works on SCO
1285 cat >> confdefs.h <<\EOF
1291 # Type availability checks
1298 AC_CHECK_TYPE(ssize_t,
1299 AC_DEFINE(HAVE_SSIZE_T, 1, Define if your compiler provides ssize_t),,)
1301 # Sizes of various common basic types
1302 # ANSI C requires sizeof(char) == 1, so no need to check it
1303 AC_CHECK_SIZEOF(int, 4)
1304 AC_CHECK_SIZEOF(long, 4)
1305 AC_CHECK_SIZEOF(void *, 4)
1306 AC_CHECK_SIZEOF(short, 2)
1307 AC_CHECK_SIZEOF(float, 4)
1308 AC_CHECK_SIZEOF(double, 8)
1309 AC_CHECK_SIZEOF(fpos_t, 4)
1310 AC_CHECK_SIZEOF(size_t, 4)
1311 AC_CHECK_SIZEOF(pid_t, 4)
1313 AC_MSG_CHECKING(for long long support)
1315 AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1316 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1319 AC_MSG_RESULT($have_long_long)
1320 if test "$have_long_long" = yes ; then
1321 AC_CHECK_SIZEOF(long long, 8)
1324 AC_MSG_CHECKING(for long double support)
1326 AC_TRY_COMPILE([], [long double x; x = (long double)0.;], [
1327 AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define this if you have the type long double.])
1328 have_long_double=yes
1330 AC_MSG_RESULT($have_long_double)
1331 if test "$have_long_long" = yes ; then
1332 AC_CHECK_SIZEOF(long double, 12)
1335 AC_MSG_CHECKING(for _Bool support)
1337 AC_TRY_COMPILE([], [_Bool x; x = (_Bool)0;], [
1338 AC_DEFINE(HAVE_C99_BOOL, 1, [Define this if you have the type _Bool.])
1341 AC_MSG_RESULT($have_c99_bool)
1342 if test "$have_c99_bool" = yes ; then
1343 AC_CHECK_SIZEOF(_Bool, 1)
1346 AC_CHECK_TYPES(uintptr_t,
1347 [AC_CHECK_SIZEOF(uintptr_t, 4)],
1348 [], [#ifdef HAVE_STDINT_H
1353 # Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1354 AC_MSG_CHECKING(size of off_t)
1355 AC_CACHE_VAL(ac_cv_sizeof_off_t,
1356 [AC_TRY_RUN([#include <stdio.h>
1357 #include <sys/types.h>
1360 FILE *f=fopen("conftestval", "w");
1362 fprintf(f, "%d\n", sizeof(off_t));
1365 ac_cv_sizeof_off_t=`cat conftestval`,
1366 ac_cv_sizeof_off_t=0,
1367 ac_cv_sizeof_off_t=4)
1369 AC_MSG_RESULT($ac_cv_sizeof_off_t)
1370 AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1371 [The number of bytes in an off_t.])
1373 AC_MSG_CHECKING(whether to enable large file support)
1374 if test "$have_long_long" = yes -a \
1375 "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1376 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
1377 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1378 [Defined to enable large file support when an off_t is bigger than a long
1379 and long long is available and at least as big as an off_t. You may need
1380 to add some flags for configuration and compilation to enable this mode.
1381 (For Solaris and Linux, the necessary defines are already defined.)])
1387 # AC_CHECK_SIZEOF() doesn't include <time.h>.
1388 AC_MSG_CHECKING(size of time_t)
1389 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1390 [AC_TRY_RUN([#include <stdio.h>
1394 FILE *f=fopen("conftestval", "w");
1396 fprintf(f, "%d\n", sizeof(time_t));
1399 ac_cv_sizeof_time_t=`cat conftestval`,
1400 ac_cv_sizeof_time_t=0,
1401 ac_cv_sizeof_time_t=4)
1403 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1404 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1405 [The number of bytes in a time_t.])
1408 # if have pthread_t then define SIZEOF_PTHREAD_T
1410 if test "$ac_cv_kpthread" = "yes"
1411 then CC="$CC -Kpthread"
1412 elif test "$ac_cv_kthread" = "yes"
1413 then CC="$CC -Kthread"
1414 elif test "$ac_cv_pthread" = "yes"
1415 then CC="$CC -pthread"
1417 AC_MSG_CHECKING(for pthread_t)
1419 AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
1420 AC_MSG_RESULT($have_pthread_t)
1421 if test "$have_pthread_t" = yes ; then
1422 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1423 AC_MSG_CHECKING(size of pthread_t)
1424 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1425 [AC_TRY_RUN([#include <stdio.h>
1426 #include <pthread.h>
1429 FILE *f=fopen("conftestval", "w");
1431 fprintf(f, "%d\n", sizeof(pthread_t));
1434 ac_cv_sizeof_pthread_t=`cat conftestval`,
1435 ac_cv_sizeof_pthread_t=0,
1436 ac_cv_sizeof_pthread_t=4)
1438 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
1439 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1440 [The number of bytes in a pthread_t.])
1444 AC_MSG_CHECKING(for --enable-toolbox-glue)
1445 AC_ARG_ENABLE(toolbox-glue,
1446 AC_HELP_STRING(--enable-toolbox-glue, disable/enable MacOSX glue code for extensions))
1448 if test -z "$enable_toolbox_glue"
1450 case $ac_sys_system/$ac_sys_release in
1452 enable_toolbox_glue="yes";;
1454 enable_toolbox_glue="no";;
1457 case "$enable_toolbox_glue" in
1459 extra_machdep_objs="Python/mactoolboxglue.o"
1460 extra_undefs="-u _PyMac_Error"
1461 AC_DEFINE(USE_TOOLBOX_OBJECT_GLUE, 1,
1462 [Define if you want to use MacPython modules on MacOSX in unix-Python.])
1465 extra_machdep_objs=""
1469 AC_MSG_RESULT($enable_toolbox_glue)
1472 AC_SUBST(OTHER_LIBTOOL_OPT)
1473 case $ac_sys_system/$ac_sys_release in
1474 Darwin/@<:@01567@:>@\..*)
1475 OTHER_LIBTOOL_OPT="-prebind -seg1addr 0x10000000"
1478 OTHER_LIBTOOL_OPT=""
1482 AC_SUBST(LIBTOOL_CRUFT)
1483 case $ac_sys_system/$ac_sys_release in
1484 Darwin/@<:@01567@:>@\..*)
1485 LIBTOOL_CRUFT="-framework System -lcc_dynamic"
1486 if test "${enable_universalsdk}"; then
1489 LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only `arch`"
1491 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1492 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1494 gcc_version=`gcc -v 2>&1 | grep version | cut -d\ -f3`
1495 if test ${gcc_version} '<' 4.0
1497 LIBTOOL_CRUFT="-lcc_dynamic"
1501 LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only `arch`"
1502 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1503 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1506 AC_MSG_CHECKING(for --enable-framework)
1507 if test "$enable_framework"
1509 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
1510 # -F. is needed to allow linking to the framework while
1511 # in the build location.
1512 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1513 [Define if you want to produce an OpenStep/Rhapsody framework
1514 (shared library plus accessory files).])
1520 AC_MSG_CHECKING(for dyld)
1521 case $ac_sys_system/$ac_sys_release in
1523 AC_DEFINE(WITH_DYLD, 1,
1524 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1525 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1526 linker (rld). Dyld is necessary to support frameworks.])
1527 AC_MSG_RESULT(always on for Darwin)
1534 # Set info about shared libraries.
1539 AC_SUBST(LINKFORSHARED)
1540 # SO is the extension of shared libraries `(including the dot!)
1541 # -- usually .so, .sl on HP-UX, .dll on Cygwin
1545 case $ac_sys_system in
1556 # this might also be a termcap variable, see #610332
1558 echo '====================================================================='
1560 echo '+ WARNING: You have set SO in your environment. +'
1561 echo '+ Do you really mean to change the extension for shared libraries? +'
1562 echo '+ Continuing in 10 seconds to let you to ponder. +'
1564 echo '====================================================================='
1568 AC_DEFINE_UNQUOTED(SHLIB_EXT, "$SO", [Define this to be extension of shared libraries (including the dot!).])
1569 # LDSHARED is the ld *command* used to create shared library
1570 # -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
1571 # (Shared libraries in this instance are shared modules to be loaded into
1572 # Python, as opposed to building Python itself as a shared library.)
1573 AC_MSG_CHECKING(LDSHARED)
1574 if test -z "$LDSHARED"
1576 case $ac_sys_system/$ac_sys_release in
1578 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
1579 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
1582 BLDSHARED="\$(srcdir)/Modules/ld_so_beos $LDLIBRARY"
1583 LDSHARED="\$(BINLIBDEST)/config/ld_so_beos \$(LIBDIR)/$LDLIBRARY"
1585 IRIX/5*) LDSHARED="ld -shared";;
1586 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
1588 if test "$GCC" = "yes"
1589 then LDSHARED='$(CC) -shared'
1590 else LDSHARED='$(CC) -G';
1593 if test "$GCC" = "yes"
1594 then LDSHARED='$(CC) -shared'
1595 else LDSHARED='ld -b';
1597 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
1599 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1600 if test "$enable_framework" ; then
1601 # Link against the framework. All externals should be defined.
1602 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1603 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1605 # No framework. Ignore undefined symbols, assuming they come from Python
1606 LDSHARED="$LDSHARED -undefined suppress"
1608 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
1609 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1610 if test "$enable_framework" ; then
1611 # Link against the framework. All externals should be defined.
1612 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1613 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1615 # No framework, use the Python app as bundle-loader
1616 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1617 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1620 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1621 # This allows an extension to be used in any Python
1622 cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
1623 if test ${cur_target} '>' 10.2; then
1626 if test "${UNIVERSAL_ARCHS}" = "all"; then
1627 # Ensure that the default platform for a 4-way
1628 # universal build is OSX 10.5, that's the first
1629 # OS release where 4-way builds make sense.
1632 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
1634 # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
1635 # environment with a value that is the same as what we'll use
1636 # in the Makefile to ensure that we'll get the same compiler
1637 # environment during configure and build time.
1638 MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
1639 export MACOSX_DEPLOYMENT_TARGET
1641 EXPORT_MACOSX_DEPLOYMENT_TARGET=''
1642 if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
1644 if test "${enable_universalsdk}"; then
1645 LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
1647 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1648 BLDSHARED="$LDSHARED"
1650 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1651 if test "$enable_framework" ; then
1652 # Link against the framework. All externals should be defined.
1653 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1654 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1656 # No framework, use the Python app as bundle-loader
1657 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1658 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1662 Linux*|GNU*|QNX*) LDSHARED='$(CC) -shared';;
1663 BSD/OS*/4*) LDSHARED="gcc -shared";;
1665 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1667 LDSHARED="$CC -shared ${LDFLAGS}"
1669 LDSHARED="ld -Bshareable ${LDFLAGS}"
1672 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1674 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1677 [[01]].* | 2.[[0-7]] | 2.[[0-7]].*)
1678 LDSHARED="ld -Bshareable ${LDFLAGS}"
1681 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1685 NetBSD*|DragonFly*) LDSHARED="cc -shared ${LDFLAGS}";;
1686 OpenUNIX*|UnixWare*)
1687 if test "$GCC" = "yes"
1688 then LDSHARED='$(CC) -shared'
1689 else LDSHARED='$(CC) -G'
1691 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
1692 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
1693 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
1694 atheos*) LDSHARED="gcc -shared";;
1698 AC_MSG_RESULT($LDSHARED)
1699 BLDSHARED=${BLDSHARED-$LDSHARED}
1700 # CCSHARED are the C *flags* used to create objects to go into a shared
1701 # library (module) -- this is only needed for a few systems
1702 AC_MSG_CHECKING(CCSHARED)
1703 if test -z "$CCSHARED"
1705 case $ac_sys_system/$ac_sys_release in
1706 SunOS*) if test "$GCC" = yes;
1707 then CCSHARED="-fPIC";
1708 elif test `uname -p` = sparc;
1709 then CCSHARED="-xcode=pic32";
1710 else CCSHARED="-Kpic";
1712 hp*|HP*) if test "$GCC" = yes;
1713 then CCSHARED="-fPIC";
1716 Linux*|GNU*) CCSHARED="-fPIC";;
1717 BSD/OS*/4*) CCSHARED="-fpic";;
1718 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";;
1719 OpenUNIX*|UnixWare*)
1720 if test "$GCC" = "yes"
1721 then CCSHARED="-fPIC"
1722 else CCSHARED="-KPIC"
1725 if test "$GCC" = "yes"
1726 then CCSHARED="-fPIC"
1727 else CCSHARED="-Kpic -belf"
1729 Monterey*) CCSHARED="-G";;
1730 IRIX*/6*) case $CC in
1731 *gcc*) CCSHARED="-shared";;
1734 atheos*) CCSHARED="-fPIC";;
1737 AC_MSG_RESULT($CCSHARED)
1738 # LINKFORSHARED are the flags passed to the $(CC) command that links
1739 # the python executable -- this is only needed for a few systems
1740 AC_MSG_CHECKING(LINKFORSHARED)
1741 if test -z "$LINKFORSHARED"
1743 case $ac_sys_system/$ac_sys_release in
1744 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
1746 LINKFORSHARED="-Wl,-E -Wl,+s";;
1747 # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
1748 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
1749 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
1750 # -u libsys_s pulls in all symbols in libsys
1752 # -u _PyMac_Error is needed to pull in the mac toolbox glue,
1754 # not used by the core itself but which needs to be in the core so
1755 # that dynamically loaded extension modules have access to it.
1756 # -prebind is no longer used, because it actually seems to give a
1757 # slowdown in stead of a speedup, maybe due to the large number of
1758 # dynamic loads Python does.
1760 LINKFORSHARED="$extra_undefs"
1761 if test "$enable_framework"
1763 LINKFORSHARED="$LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1765 LINKFORSHARED="$LINKFORSHARED";;
1766 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
1767 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
1768 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
1769 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*)
1770 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1772 LINKFORSHARED="-Wl,--export-dynamic"
1774 SunOS/5*) case $CC in
1776 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
1778 LINKFORSHARED="-Xlinker --export-dynamic"
1782 if test $enable_shared = "no"
1784 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1787 # -Wl,-E causes the symbols to be added to the dynamic
1788 # symbol table so that they can be found when a module
1789 # is loaded. -N 2048K causes the stack size to be set
1790 # to 2048 kilobytes so that the stack doesn't overflow
1791 # when running test_compile.py.
1792 LINKFORSHARED='-Wl,-E -N 2048K';;
1795 AC_MSG_RESULT($LINKFORSHARED)
1798 AC_SUBST(CFLAGSFORSHARED)
1799 AC_MSG_CHECKING(CFLAGSFORSHARED)
1800 if test ! "$LIBRARY" = "$LDLIBRARY"
1802 case $ac_sys_system in
1804 # Cygwin needs CCSHARED when building extension DLLs
1805 # but not when building the interpreter DLL.
1806 CFLAGSFORSHARED='';;
1808 CFLAGSFORSHARED='$(CCSHARED)'
1811 AC_MSG_RESULT($CFLAGSFORSHARED)
1813 # SHLIBS are libraries (except -lc and -lm) to link to the python shared
1814 # library (with --enable-shared).
1815 # For platforms on which shared libraries are not allowed to have unresolved
1816 # symbols, this must be set to $(LIBS) (expanded by make). We do this even
1817 # if it is not required, since it creates a dependency of the shared library
1818 # to LIBS. This, in turn, means that applications linking the shared libpython
1819 # don't need to link LIBS explicitly. The default should be only changed
1820 # on systems where this approach causes problems.
1822 AC_MSG_CHECKING(SHLIBS)
1823 case "$ac_sys_system" in
1827 AC_MSG_RESULT($SHLIBS)
1830 # checks for libraries
1831 AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1832 AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
1834 # only check for sem_ini if thread support is requested
1835 if test "$with_threads" = "yes" -o -z "$with_threads"; then
1836 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1837 # posix4 on Solaris 2.6
1838 # pthread (first!) on Linux
1841 # check if we need libintl for locale functions
1842 AC_CHECK_LIB(intl, textdomain,
1843 AC_DEFINE(WITH_LIBINTL, 1,
1844 [Define to 1 if libintl is needed for locale functions.]))
1846 # checks for system dependent C++ extensions support
1847 case "$ac_sys_system" in
1848 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1849 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1850 [loadAndInit("", 0, "")],
1851 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1852 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1853 and you want support for AIX C++ shared extension modules.])
1854 AC_MSG_RESULT(yes)],
1855 [AC_MSG_RESULT(no)]);;
1859 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
1860 # BeOS' sockets are stashed in libnet.
1861 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
1862 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
1864 case "$ac_sys_system" in
1866 AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
1870 AC_MSG_CHECKING(for --with-libs)
1872 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1874 AC_MSG_RESULT($withval)
1875 LIBS="$withval $LIBS"
1877 [AC_MSG_RESULT(no)])
1879 # Check for use of the system libffi library
1880 AC_MSG_CHECKING(for --with-system-ffi)
1881 AC_ARG_WITH(system_ffi,
1882 AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library))
1884 AC_MSG_RESULT($with_system_ffi)
1886 # Determine if signalmodule should be used.
1887 AC_SUBST(USE_SIGNAL_MODULE)
1888 AC_SUBST(SIGNAL_OBJS)
1889 AC_MSG_CHECKING(for --with-signal-module)
1890 AC_ARG_WITH(signal-module,
1891 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
1893 if test -z "$with_signal_module"
1894 then with_signal_module="yes"
1896 AC_MSG_RESULT($with_signal_module)
1898 if test "${with_signal_module}" = "yes"; then
1899 USE_SIGNAL_MODULE=""
1902 USE_SIGNAL_MODULE="#"
1903 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1906 # This is used to generate Setup.config
1907 AC_SUBST(USE_THREAD_MODULE)
1908 USE_THREAD_MODULE=""
1910 AC_MSG_CHECKING(for --with-dec-threads)
1912 AC_ARG_WITH(dec-threads,
1913 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1915 AC_MSG_RESULT($withval)
1917 if test "${with_thread+set}" != set; then
1918 with_thread="$withval";
1920 [AC_MSG_RESULT(no)])
1922 # Templates for things AC_DEFINEd more than once.
1923 # For a single AC_DEFINE, no template is needed.
1924 AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1925 AH_TEMPLATE(_REENTRANT,
1926 [Define to force use of thread-safe errno, h_errno, and other functions])
1927 AH_TEMPLATE(WITH_THREAD,
1928 [Define if you want to compile in rudimentary thread support])
1930 AC_MSG_CHECKING(for --with-threads)
1931 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1932 AC_ARG_WITH(threads,
1933 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
1935 # --with-thread is deprecated, but check for it anyway
1936 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1938 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1939 [with_threads=$with_thread])
1941 if test -z "$with_threads"
1942 then with_threads="yes"
1944 AC_MSG_RESULT($with_threads)
1947 if test "$with_threads" = "no"
1949 USE_THREAD_MODULE="#"
1950 elif test "$ac_cv_pthread_is_default" = yes
1952 AC_DEFINE(WITH_THREAD)
1953 # Defining _REENTRANT on system with POSIX threads should not hurt.
1954 AC_DEFINE(_REENTRANT)
1956 THREADOBJ="Python/thread.o"
1957 elif test "$ac_cv_kpthread" = "yes"
1960 if test "$ac_cv_cxx_thread" = "yes"; then
1961 CXX="$CXX -Kpthread"
1963 AC_DEFINE(WITH_THREAD)
1965 THREADOBJ="Python/thread.o"
1966 elif test "$ac_cv_kthread" = "yes"
1969 if test "$ac_cv_cxx_thread" = "yes"; then
1972 AC_DEFINE(WITH_THREAD)
1974 THREADOBJ="Python/thread.o"
1975 elif test "$ac_cv_pthread" = "yes"
1978 if test "$ac_cv_cxx_thread" = "yes"; then
1981 AC_DEFINE(WITH_THREAD)
1983 THREADOBJ="Python/thread.o"
1985 if test ! -z "$with_threads" -a -d "$with_threads"
1986 then LDFLAGS="$LDFLAGS -L$with_threads"
1988 if test ! -z "$withval" -a -d "$withval"
1989 then LDFLAGS="$LDFLAGS -L$withval"
1992 # According to the POSIX spec, a pthreads implementation must
1993 # define _POSIX_THREADS in unistd.h. Some apparently don't
1994 # (e.g. gnu pth with pthread emulation)
1995 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
1999 #ifdef _POSIX_THREADS
2002 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
2003 AC_MSG_RESULT($unistd_defines_pthreads)
2005 AC_DEFINE(_REENTRANT)
2006 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
2007 AC_DEFINE(C_THREADS)
2008 AC_DEFINE(HURD_C_THREADS, 1,
2009 [Define if you are using Mach cthreads directly under /include])
2010 LIBS="$LIBS -lthreads"
2011 THREADOBJ="Python/thread.o"],[
2012 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
2013 AC_DEFINE(C_THREADS)
2014 AC_DEFINE(MACH_C_THREADS, 1,
2015 [Define if you are using Mach cthreads under mach /])
2016 THREADOBJ="Python/thread.o"],[
2017 AC_MSG_CHECKING(for --with-pth)
2019 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
2020 [AC_MSG_RESULT($withval)
2021 AC_DEFINE([WITH_THREAD])
2022 AC_DEFINE([HAVE_PTH], 1,
2023 [Define if you have GNU PTH threads.])
2025 THREADOBJ="Python/thread.o"],
2028 # Just looking for pthread_create in libpthread is not enough:
2029 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
2030 # So we really have to include pthread.h, and then link.
2032 LIBS="$LIBS -lpthread"
2033 AC_MSG_CHECKING([for pthread_create in -lpthread])
2034 AC_TRY_LINK([#include <pthread.h>
2036 void * start_routine (void *arg) { exit (0); }], [
2037 pthread_create (NULL, NULL, start_routine, NULL)], [
2039 AC_DEFINE(WITH_THREAD)
2041 THREADOBJ="Python/thread.o"],[
2043 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
2045 THREADOBJ="Python/thread.o"],[
2046 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
2047 AC_DEFINE(ATHEOS_THREADS, 1,
2048 [Define this if you have AtheOS threads.])
2049 THREADOBJ="Python/thread.o"],[
2050 AC_CHECK_HEADER(kernel/OS.h, [AC_DEFINE(WITH_THREAD)
2051 AC_DEFINE(BEOS_THREADS, 1,
2052 [Define this if you have BeOS threads.])
2053 THREADOBJ="Python/thread.o"],[
2054 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
2056 LIBS="$LIBS -lpthreads"
2057 THREADOBJ="Python/thread.o"], [
2058 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
2061 THREADOBJ="Python/thread.o"], [
2062 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
2064 LIBS="$LIBS -lpthread"
2065 THREADOBJ="Python/thread.o"], [
2066 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
2069 THREADOBJ="Python/thread.o"],[
2070 USE_THREAD_MODULE="#"])
2071 ])])])])])])])])])])
2073 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
2075 THREADOBJ="Python/thread.o"
2076 USE_THREAD_MODULE=""])
2078 if test "$posix_threads" != "yes"; then
2079 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
2080 LIBS="$LIBS -lthread"
2081 THREADOBJ="Python/thread.o"
2082 USE_THREAD_MODULE=""])
2085 if test "$USE_THREAD_MODULE" != "#"
2087 # If the above checks didn't disable threads, (at least) OSF1
2088 # needs this '-threads' argument during linking.
2089 case $ac_sys_system in
2090 OSF1) LDLAST=-threads;;
2095 if test "$posix_threads" = "yes"; then
2096 if test "$unistd_defines_pthreads" = "no"; then
2097 AC_DEFINE(_POSIX_THREADS, 1,
2098 [Define if you have POSIX threads,
2099 and your system does not define that.])
2102 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
2103 case $ac_sys_system/$ac_sys_release in
2104 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
2105 Defined for Solaris 2.6 bug in pthread header.)
2107 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2108 Define if the Posix semaphores do not work on your system)
2110 AIX/5) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
2111 Define if the Posix semaphores do not work on your system)
2115 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
2116 AC_CACHE_VAL(ac_cv_pthread_system_supported,
2117 [AC_TRY_RUN([#include <pthread.h>
2118 void *foo(void *parm) {
2122 pthread_attr_t attr;
2124 if (pthread_attr_init(&attr)) exit(-1);
2125 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
2126 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
2129 ac_cv_pthread_system_supported=yes,
2130 ac_cv_pthread_system_supported=no,
2131 ac_cv_pthread_system_supported=no)
2133 AC_MSG_RESULT($ac_cv_pthread_system_supported)
2134 if test "$ac_cv_pthread_system_supported" = "yes"; then
2135 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
2137 AC_CHECK_FUNCS(pthread_sigmask,
2138 [case $ac_sys_system in
2140 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
2141 [Define if pthread_sigmask() does not work on your system.])
2147 # Check for enable-ipv6
2148 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
2149 AC_MSG_CHECKING([if --enable-ipv6 is specified])
2151 [ --enable-ipv6 Enable ipv6 (with ipv4) support
2152 --disable-ipv6 Disable ipv6 support],
2153 [ case "$enableval" in
2158 *) AC_MSG_RESULT(yes)
2159 AC_DEFINE(ENABLE_IPV6)
2165 dnl the check does not work on cross compilation case...
2166 AC_TRY_RUN([ /* AF_INET6 available check */
2167 #include <sys/types.h>
2168 #include <sys/socket.h>
2171 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
2185 if test "$ipv6" = "yes"; then
2186 AC_MSG_CHECKING(if RFC2553 API is available)
2187 AC_TRY_COMPILE([#include <sys/types.h>
2188 #include <netinet/in.h>],
2189 [struct sockaddr_in6 x;
2193 AC_MSG_RESULT(no, IPv6 disabled)
2197 if test "$ipv6" = "yes"; then
2198 AC_DEFINE(ENABLE_IPV6)
2206 if test "$ipv6" = "yes"; then
2207 AC_MSG_CHECKING([ipv6 stack type])
2208 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
2212 dnl http://www.kame.net/
2214 #include <netinet/in.h>
2215 #ifdef IPV6_INRIA_VERSION
2221 dnl http://www.kame.net/
2223 #include <netinet/in.h>
2229 ipv6libdir=/usr/local/v6/lib
2233 dnl http://www.v6.linux.or.jp/
2235 #include <features.h>
2236 #if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
2243 dnl http://www.v6.linux.or.jp/
2244 if test -d /usr/inet6; then
2247 ipv6libdir=/usr/inet6/lib
2248 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
2252 if test -f /etc/netconfig; then
2253 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
2261 #include <sys/param.h>
2262 #ifdef _TOSHIBA_INET6
2267 ipv6libdir=/usr/local/v6/lib])
2271 #include </usr/local/v6/include/sys/v6config.h>
2277 ipv6libdir=/usr/local/v6/lib;
2278 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
2282 #include <sys/param.h>
2283 #ifdef _ZETA_MINAMI_INET6
2288 ipv6libdir=/usr/local/v6/lib])
2291 if test "$ipv6type" != "unknown"; then
2295 AC_MSG_RESULT($ipv6type)
2298 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
2299 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
2300 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
2301 echo "using lib$ipv6lib"
2303 if test $ipv6trylibc = "yes"; then
2306 echo 'Fatal: no $ipv6lib library found. cannot continue.'
2307 echo "You need to fetch lib$ipv6lib.a from appropriate"
2308 echo 'ipv6 kit and compile beforehand.'
2314 AC_MSG_CHECKING(for OSX 10.5 SDK or later)
2315 AC_TRY_COMPILE([#include <Carbon/Carbon.h>], FSIORefNum fRef = 0,
2316 AC_DEFINE(HAVE_OSX105_SDK, 1, Define if compiling using MacOS X 10.5 SDK or later.)
2321 # Check for --with-doc-strings
2322 AC_MSG_CHECKING(for --with-doc-strings)
2323 AC_ARG_WITH(doc-strings,
2324 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
2326 if test -z "$with_doc_strings"
2327 then with_doc_strings="yes"
2329 if test "$with_doc_strings" != "no"
2331 AC_DEFINE(WITH_DOC_STRINGS, 1,
2332 [Define if you want documentation strings in extension modules])
2334 AC_MSG_RESULT($with_doc_strings)
2336 # Check for Python-specific malloc support
2337 AC_MSG_CHECKING(for --with-tsc)
2339 [ --with(out)-tsc enable/disable timestamp counter profile], [
2340 if test "$withval" != no
2342 AC_DEFINE(WITH_TSC, 1,
2343 [Define to profile with the Pentium timestamp counter])
2345 else AC_MSG_RESULT(no)
2347 [AC_MSG_RESULT(no)])
2349 # Check for Python-specific malloc support
2350 AC_MSG_CHECKING(for --with-pymalloc)
2351 AC_ARG_WITH(pymalloc,
2352 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
2354 if test -z "$with_pymalloc"
2355 then with_pymalloc="yes"
2357 if test "$with_pymalloc" != "no"
2359 AC_DEFINE(WITH_PYMALLOC, 1,
2360 [Define if you want to compile in Python-specific mallocs])
2362 AC_MSG_RESULT($with_pymalloc)
2364 # Check for --with-wctype-functions
2365 AC_MSG_CHECKING(for --with-wctype-functions)
2366 AC_ARG_WITH(wctype-functions,
2367 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
2369 if test "$withval" != no
2371 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2372 [Define if you want wctype.h functions to be used instead of the
2373 one supplied by Python itself. (see Include/unicodectype.h).])
2375 else AC_MSG_RESULT(no)
2377 [AC_MSG_RESULT(no)])
2379 # -I${DLINCLDIR} is added to the compile rule for importdl.o
2383 # the dlopen() function means we might want to use dynload_shlib.o. some
2384 # platforms, such as AIX, have dlopen(), but don't want to use it.
2385 AC_CHECK_FUNCS(dlopen)
2387 # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2388 # loading of modules.
2389 AC_SUBST(DYNLOADFILE)
2390 AC_MSG_CHECKING(DYNLOADFILE)
2391 if test -z "$DYNLOADFILE"
2393 case $ac_sys_system/$ac_sys_release in
2394 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2395 if test "$ac_cv_func_dlopen" = yes
2396 then DYNLOADFILE="dynload_shlib.o"
2397 else DYNLOADFILE="dynload_aix.o"
2400 BeOS*) DYNLOADFILE="dynload_beos.o";;
2401 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
2402 # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
2403 Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
2404 atheos*) DYNLOADFILE="dynload_atheos.o";;
2406 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2407 # out any dynamic loading
2408 if test "$ac_cv_func_dlopen" = yes
2409 then DYNLOADFILE="dynload_shlib.o"
2410 else DYNLOADFILE="dynload_stub.o"
2415 AC_MSG_RESULT($DYNLOADFILE)
2416 if test "$DYNLOADFILE" != "dynload_stub.o"
2418 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2419 [Defined when any dynamic module loading is enabled.])
2422 # MACHDEP_OBJS can be set to platform-specific object files needed by Python
2424 AC_SUBST(MACHDEP_OBJS)
2425 AC_MSG_CHECKING(MACHDEP_OBJS)
2426 if test -z "$MACHDEP_OBJS"
2428 MACHDEP_OBJS=$extra_machdep_objs
2430 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
2432 AC_MSG_RESULT(MACHDEP_OBJS)
2434 # checks for library functions
2435 AC_CHECK_FUNCS(alarm setitimer getitimer bind_textdomain_codeset chown \
2436 clock confstr ctermid execv fchmod fchown fork fpathconf ftime ftruncate \
2437 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
2438 getpriority getpwent getspnam getspent getsid getwd \
2439 kill killpg lchmod lchown lstat mkfifo mknod mktime \
2440 mremap nice pathconf pause plock poll pthread_init \
2441 putenv readlink realpath \
2442 select setegid seteuid setgid \
2443 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
2444 sigaction siginterrupt sigrelse strftime \
2445 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
2446 truncate uname unsetenv utimes waitpid wait3 wait4 wcscoll _getpty)
2448 # For some functions, having a definition is not sufficient, since
2449 # we want to take their address.
2450 AC_MSG_CHECKING(for chroot)
2451 AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2452 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2456 AC_MSG_CHECKING(for link)
2457 AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2458 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2462 AC_MSG_CHECKING(for symlink)
2463 AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2464 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2468 AC_MSG_CHECKING(for fchdir)
2469 AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2470 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2474 AC_MSG_CHECKING(for fsync)
2475 AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
2476 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
2480 AC_MSG_CHECKING(for fdatasync)
2481 AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2482 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2486 AC_MSG_CHECKING(for epoll)
2487 AC_TRY_COMPILE([#include <sys/epoll.h>], void *x=epoll_create,
2488 AC_DEFINE(HAVE_EPOLL, 1, Define if you have the 'epoll' functions.)
2492 AC_MSG_CHECKING(for kqueue)
2494 #include <sys/types.h>
2495 #include <sys/event.h>
2497 AC_DEFINE(HAVE_KQUEUE, 1, Define if you have the 'kqueue' functions.)
2501 # On some systems (eg. FreeBSD 5), we would find a definition of the
2502 # functions ctermid_r, setgroups in the library, but no prototype
2503 # (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2504 # address to avoid compiler warnings and potential miscompilations
2505 # because of the missing prototypes.
2507 AC_MSG_CHECKING(for ctermid_r)
2509 #include "confdefs.h"
2511 ], void* p = ctermid_r,
2512 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2517 AC_MSG_CHECKING(for flock)
2519 #include "confdefs.h"
2520 #include <sys/file.h>
2522 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2527 AC_MSG_CHECKING(for getpagesize)
2529 #include "confdefs.h"
2531 ], void* p = getpagesize,
2532 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2538 AC_CHECK_PROGS(TRUE, true, /bin/true)
2540 dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2541 dnl On others, they are in the C library, so we to take no action
2542 AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
2543 AC_CHECK_LIB(resolv, inet_aton)
2546 # On Tru64, chflags seems to be present, but calling it will
2548 AC_MSG_CHECKING(for chflags)
2550 #include <sys/stat.h>
2552 int main(int argc, char*argv[])
2554 if(chflags(argv[0], 0) != 0)
2558 ],AC_DEFINE(HAVE_CHFLAGS, 1, Define to 1 if you have the `chflags' function.)
2563 AC_MSG_CHECKING(for lchflags)
2565 #include <sys/stat.h>
2567 int main(int argc, char*argv[])
2569 if(lchflags(argv[0], 0) != 0)
2573 ],AC_DEFINE(HAVE_LCHFLAGS, 1, Define to 1 if you have the `lchflags' function.)
2578 dnl Check if system zlib has *Copy() functions
2580 dnl On MacOSX the linker will search for dylibs on the entire linker path
2581 dnl before searching for static libraries. setup.py adds -Wl,-search_paths_first
2582 dnl to revert to a more traditional unix behaviour and make it possible to
2583 dnl override the system libz with a local static library of libz. Temporarily
2584 dnl add that flag to our CFLAGS as well to ensure that we check the version
2585 dnl of libz that will be used by setup.py.
2586 dnl The -L/usr/local/lib is needed as wel to get the same compilation
2587 dnl environment as setup.py (and leaving it out can cause configure to use the
2588 dnl wrong version of the library)
2589 case $ac_sys_system/$ac_sys_release in
2591 _CUR_CFLAGS="${CFLAGS}"
2592 _CUR_LDFLAGS="${LDFLAGS}"
2593 CFLAGS="${CFLAGS} -Wl,-search_paths_first"
2594 LDFLAGS="${LDFLAGS} -Wl,-search_paths_first -L/usr/local/lib"
2598 AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_ZLIB_COPY, 1, Define if the zlib library has inflateCopy))
2600 case $ac_sys_system/$ac_sys_release in
2602 CFLAGS="${_CUR_CFLAGS}"
2603 LDFLAGS="${_CUR_LDFLAGS}"
2607 AC_MSG_CHECKING(for hstrerror)
2609 #include "confdefs.h"
2611 ], void* p = hstrerror; hstrerror(0),
2612 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2617 AC_MSG_CHECKING(for inet_aton)
2619 #include "confdefs.h"
2620 #include <sys/types.h>
2621 #include <sys/socket.h>
2622 #include <netinet/in.h>
2623 #include <arpa/inet.h>
2624 ], void* p = inet_aton;inet_aton(0,0),
2625 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2630 AC_MSG_CHECKING(for inet_pton)
2632 #include "confdefs.h"
2633 #include <sys/types.h>
2634 #include <sys/socket.h>
2635 #include <netinet/in.h>
2636 #include <arpa/inet.h>
2637 ], void* p = inet_pton,
2638 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2643 # On some systems, setgroups is in unistd.h, on others, in grp.h
2644 AC_MSG_CHECKING(for setgroups)
2646 #include "confdefs.h"
2652 void* p = setgroups,
2653 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2658 # check for openpty and forkpty
2660 AC_CHECK_FUNCS(openpty,,
2661 AC_CHECK_LIB(util,openpty,
2662 [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"],
2663 AC_CHECK_LIB(bsd,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lbsd"])
2666 AC_CHECK_FUNCS(forkpty,,
2667 AC_CHECK_LIB(util,forkpty,
2668 [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"],
2669 AC_CHECK_LIB(bsd,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lbsd"])
2674 AC_CHECK_FUNCS(memmove)
2676 # check for long file support functions
2677 AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2679 AC_REPLACE_FUNCS(dup2 getcwd strdup)
2680 AC_CHECK_FUNCS(getpgrp,
2681 AC_TRY_COMPILE([#include <unistd.h>],
2683 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2684 [Define if getpgrp() must be called as getpgrp(0).])
2687 AC_CHECK_FUNCS(setpgrp,
2688 AC_TRY_COMPILE([#include <unistd.h>],
2690 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2691 [Define if setpgrp() must be called as setpgrp(0, 0).])
2694 AC_CHECK_FUNCS(gettimeofday,
2695 AC_TRY_COMPILE([#include <sys/time.h>],
2696 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2697 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2698 [Define if gettimeofday() does not have second (timezone) argument
2699 This is the case on Motorola V4 (R40V4.2)])
2703 AC_MSG_CHECKING(for major, minor, and makedev)
2705 #if defined(MAJOR_IN_MKDEV)
2706 #include <sys/mkdev.h>
2707 #elif defined(MAJOR_IN_SYSMACROS)
2708 #include <sys/sysmacros.h>
2710 #include <sys/types.h>
2713 makedev(major(0),minor(0));
2715 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2716 [Define to 1 if you have the device macros.])
2722 # On OSF/1 V5.1, getaddrinfo is available, but a define
2723 # for [no]getaddrinfo in netdb.h.
2724 AC_MSG_CHECKING(for getaddrinfo)
2726 #include <sys/types.h>
2727 #include <sys/socket.h>
2731 getaddrinfo(NULL, NULL, NULL, NULL);
2734 AC_MSG_CHECKING(getaddrinfo bug)
2736 #include <sys/types.h>
2739 #include <sys/socket.h>
2740 #include <netinet/in.h>
2744 int passive, gaierr, inet4 = 0, inet6 = 0;
2745 struct addrinfo hints, *ai, *aitop;
2746 char straddr[INET6_ADDRSTRLEN], strport[16];
2748 for (passive = 0; passive <= 1; passive++) {
2749 memset(&hints, 0, sizeof(hints));
2750 hints.ai_family = AF_UNSPEC;
2751 hints.ai_flags = passive ? AI_PASSIVE : 0;
2752 hints.ai_socktype = SOCK_STREAM;
2753 hints.ai_protocol = IPPROTO_TCP;
2754 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2755 (void)gai_strerror(gaierr);
2758 for (ai = aitop; ai; ai = ai->ai_next) {
2759 if (ai->ai_addr == NULL ||
2760 ai->ai_addrlen == 0 ||
2761 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2762 straddr, sizeof(straddr), strport, sizeof(strport),
2763 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2766 switch (ai->ai_family) {
2768 if (strcmp(strport, "54321") != 0) {
2772 if (strcmp(straddr, "0.0.0.0") != 0) {
2776 if (strcmp(straddr, "127.0.0.1") != 0) {
2783 if (strcmp(strport, "54321") != 0) {
2787 if (strcmp(straddr, "::") != 0) {
2791 if (strcmp(straddr, "::1") != 0) {
2801 /* another family support? */
2807 if (!(inet4 == 0 || inet4 == 2))
2809 if (!(inet6 == 0 || inet6 == 2))
2813 freeaddrinfo(aitop);
2818 freeaddrinfo(aitop);
2823 buggygetaddrinfo=no,
2824 AC_MSG_RESULT(buggy)
2825 buggygetaddrinfo=yes,
2826 AC_MSG_RESULT(buggy)
2827 buggygetaddrinfo=yes)], [
2829 buggygetaddrinfo=yes
2832 if test "$buggygetaddrinfo" = "yes"; then
2833 if test "$ipv6" = "yes"; then
2834 echo 'Fatal: You must get working getaddrinfo() function.'
2835 echo ' or you can specify "--disable-ipv6"'.
2839 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
2841 AC_CHECK_FUNCS(getnameinfo)
2843 # checks for structures
2847 AC_CHECK_MEMBERS([struct stat.st_rdev])
2848 AC_CHECK_MEMBERS([struct stat.st_blksize])
2849 AC_CHECK_MEMBERS([struct stat.st_flags])
2850 AC_CHECK_MEMBERS([struct stat.st_gen])
2851 AC_CHECK_MEMBERS([struct stat.st_birthtime])
2854 AC_MSG_CHECKING(for time.h that defines altzone)
2855 AC_CACHE_VAL(ac_cv_header_time_altzone,
2856 [AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2857 ac_cv_header_time_altzone=yes,
2858 ac_cv_header_time_altzone=no)])
2859 AC_MSG_RESULT($ac_cv_header_time_altzone)
2860 if test $ac_cv_header_time_altzone = yes; then
2861 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
2865 AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
2867 #include <sys/types.h>
2868 #include <sys/select.h>
2869 #include <sys/time.h>
2871 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2872 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2873 (which you can't on SCO ODT 3.0).])
2876 AC_MSG_RESULT($was_it_defined)
2878 AC_MSG_CHECKING(for addrinfo)
2879 AC_CACHE_VAL(ac_cv_struct_addrinfo,
2881 # include <netdb.h>],
2882 [struct addrinfo a],
2883 ac_cv_struct_addrinfo=yes,
2884 ac_cv_struct_addrinfo=no))
2885 AC_MSG_RESULT($ac_cv_struct_addrinfo)
2886 if test $ac_cv_struct_addrinfo = yes; then
2887 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
2890 AC_MSG_CHECKING(for sockaddr_storage)
2891 AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2893 # include <sys/types.h>
2894 # include <sys/socket.h>],
2895 [struct sockaddr_storage s],
2896 ac_cv_struct_sockaddr_storage=yes,
2897 ac_cv_struct_sockaddr_storage=no))
2898 AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2899 if test $ac_cv_struct_sockaddr_storage = yes; then
2900 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
2903 # checks for compiler characteristics
2909 AC_MSG_CHECKING(for working volatile)
2910 AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2911 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2913 AC_MSG_RESULT($works)
2916 AC_MSG_CHECKING(for working signed char)
2917 AC_TRY_COMPILE([], [signed char c;], works=yes,
2918 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2920 AC_MSG_RESULT($works)
2923 AC_MSG_CHECKING(for prototypes)
2924 AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2925 AC_DEFINE(HAVE_PROTOTYPES, 1,
2926 [Define if your compiler supports function prototype])
2929 AC_MSG_RESULT($have_prototypes)
2932 AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
2935 int foo(int x, ...) {
2943 ], [return foo(10, "", 3.14);], [
2944 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2945 [Define if your compiler supports variable length function prototypes
2946 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2949 AC_MSG_RESULT($works)
2951 # check for socketpair
2952 AC_MSG_CHECKING(for socketpair)
2954 #include <sys/types.h>
2955 #include <sys/socket.h>
2956 ], void *x=socketpair,
2957 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
2962 # check if sockaddr has sa_len member
2963 AC_MSG_CHECKING(if sockaddr has sa_len member)
2964 AC_TRY_COMPILE([#include <sys/types.h>
2965 #include <sys/socket.h>],
2969 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
2973 AC_MSG_CHECKING(whether va_list is an array)
2975 #ifdef HAVE_STDARG_PROTOTYPES
2978 #include <varargs.h>
2980 ], [va_list list1, list2; list1 = list2;], , [
2981 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
2982 va_list_is_array=yes
2984 AC_MSG_RESULT($va_list_is_array)
2986 # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
2987 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
2988 [Define this if you have some version of gethostbyname_r()])
2990 AC_CHECK_FUNC(gethostbyname_r, [
2991 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2992 AC_MSG_CHECKING([gethostbyname_r with 6 args])
2994 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
2999 struct hostent *he, *res;
3004 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
3006 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3007 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
3008 [Define this if you have the 6-arg version of gethostbyname_r().])
3012 AC_MSG_CHECKING([gethostbyname_r with 5 args])
3022 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
3024 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3025 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
3026 [Define this if you have the 5-arg version of gethostbyname_r().])
3030 AC_MSG_CHECKING([gethostbyname_r with 3 args])
3036 struct hostent_data data;
3038 (void) gethostbyname_r(name, he, &data);
3040 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
3041 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
3042 [Define this if you have the 3-arg version of gethostbyname_r().])
3051 AC_CHECK_FUNCS(gethostbyname)
3053 AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
3054 AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
3055 AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
3056 AC_SUBST(HAVE_GETHOSTBYNAME_R)
3057 AC_SUBST(HAVE_GETHOSTBYNAME)
3059 # checks for system services
3062 # Linux requires this for correct f.p. operations
3063 AC_CHECK_FUNC(__fpu_control,
3065 [AC_CHECK_LIB(ieee, __fpu_control)
3068 # Check for --with-fpectl
3069 AC_MSG_CHECKING(for --with-fpectl)
3071 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
3073 if test "$withval" != no
3075 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
3076 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
3078 else AC_MSG_RESULT(no)
3080 [AC_MSG_RESULT(no)])
3082 # check for --with-libm=...
3084 case $ac_sys_system in
3089 AC_MSG_CHECKING(for --with-libm=STRING)
3091 AC_HELP_STRING(--with-libm=STRING, math library),
3093 if test "$withval" = no
3095 AC_MSG_RESULT(force LIBM empty)
3096 elif test "$withval" != yes
3098 AC_MSG_RESULT(set LIBM="$withval")
3099 else AC_MSG_ERROR([proper usage is --with-libm=STRING])
3101 [AC_MSG_RESULT(default LIBM="$LIBM")])
3103 # check for --with-libc=...
3105 AC_MSG_CHECKING(for --with-libc=STRING)
3107 AC_HELP_STRING(--with-libc=STRING, C library),
3109 if test "$withval" = no
3111 AC_MSG_RESULT(force LIBC empty)
3112 elif test "$withval" != yes
3114 AC_MSG_RESULT(set LIBC="$withval")
3115 else AC_MSG_ERROR([proper usage is --with-libc=STRING])
3117 [AC_MSG_RESULT(default LIBC="$LIBC")])
3119 # ************************************
3120 # * Check for mathematical functions *
3121 # ************************************
3126 # On FreeBSD 6.2, it appears that tanh(-0.) returns 0. instead of
3127 # -0. on some architectures.
3128 AC_MSG_CHECKING(whether tanh preserves the sign of zero)
3129 AC_CACHE_VAL(ac_cv_tanh_preserves_zero_sign, [
3134 /* return 0 if either negative zeros don't exist
3135 on this platform or if negative zeros exist
3136 and tanh(-0.) == -0. */
3137 if (atan2(0., -1.) == atan2(-0., -1.) ||
3138 atan2(tanh(-0.), -1.) == atan2(-0., -1.)) exit(0);
3142 ac_cv_tanh_preserves_zero_sign=yes,
3143 ac_cv_tanh_preserves_zero_sign=no,
3144 ac_cv_tanh_preserves_zero_sign=no)])
3145 AC_MSG_RESULT($ac_cv_tanh_preserves_zero_sign)
3146 if test "$ac_cv_tanh_preserves_zero_sign" = yes
3148 AC_DEFINE(TANH_PRESERVES_ZERO_SIGN, 1,
3149 [Define if tanh(-0.) is -0., or if platform doesn't have signed zeros])
3152 AC_REPLACE_FUNCS(hypot)
3154 AC_CHECK_FUNCS(acosh asinh atanh copysign expm1 finite isinf isnan log1p)
3159 AC_CHECK_HEADER(wchar.h, [
3160 AC_DEFINE(HAVE_WCHAR_H, 1,
3161 [Define if the compiler provides a wchar.h header file.])
3167 # determine wchar_t size
3168 if test "$wchar_h" = yes
3170 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
3173 AC_MSG_CHECKING(for UCS-4 tcl)
3177 #if TCL_UTF_MAX != 6
3178 # error "NOT UCS4_TCL"
3180 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
3183 AC_MSG_RESULT($have_ucs4_tcl)
3185 # check whether wchar_t is signed or not
3186 if test "$wchar_h" = yes
3188 # check whether wchar_t is signed or not
3189 AC_MSG_CHECKING(whether wchar_t is signed)
3190 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
3195 /* Success: exit code 0 */
3196 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1);
3199 ac_cv_wchar_t_signed=yes,
3200 ac_cv_wchar_t_signed=no,
3201 ac_cv_wchar_t_signed=yes)])
3202 AC_MSG_RESULT($ac_cv_wchar_t_signed)
3205 AC_MSG_CHECKING(what type to use for unicode)
3206 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
3207 AC_ARG_ENABLE(unicode,
3208 AC_HELP_STRING(--enable-unicode@<:@=ucs@<:@24@:>@@:>@, Enable Unicode strings (default is yes)),
3210 [enable_unicode=yes])
3212 if test $enable_unicode = yes
3214 # Without any arguments, Py_UNICODE defaults to two-byte mode
3215 case "$have_ucs4_tcl" in
3216 yes) enable_unicode="ucs4"
3218 *) enable_unicode="ucs2"
3223 AH_TEMPLATE(Py_UNICODE_SIZE,
3224 [Define as the size of the unicode type.])
3225 case "$enable_unicode" in
3226 ucs2) unicode_size="2"
3227 AC_DEFINE(Py_UNICODE_SIZE,2)
3229 ucs4) unicode_size="4"
3230 AC_DEFINE(Py_UNICODE_SIZE,4)
3234 AH_TEMPLATE(PY_UNICODE_TYPE,
3235 [Define as the integral type used for Unicode representation.])
3237 AC_SUBST(UNICODE_OBJS)
3238 if test "$enable_unicode" = "no"
3241 AC_MSG_RESULT(not used)
3243 UNICODE_OBJS="Objects/unicodeobject.o Objects/unicodectype.o"
3244 AC_DEFINE(Py_USING_UNICODE, 1,
3245 [Define if you want to have a Unicode type.])
3247 # wchar_t is only usable if it maps to an unsigned type
3248 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
3249 -a "$ac_cv_wchar_t_signed" = "no"
3251 PY_UNICODE_TYPE="wchar_t"
3252 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
3253 [Define if you have a useable wchar_t type defined in wchar.h; useable
3254 means wchar_t must be an unsigned type with at least 16 bits. (see
3255 Include/unicodeobject.h).])
3256 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
3257 elif test "$ac_cv_sizeof_short" = "$unicode_size"
3259 PY_UNICODE_TYPE="unsigned short"
3260 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
3261 elif test "$ac_cv_sizeof_long" = "$unicode_size"
3263 PY_UNICODE_TYPE="unsigned long"
3264 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
3266 PY_UNICODE_TYPE="no type found"
3268 AC_MSG_RESULT($PY_UNICODE_TYPE)
3271 # check for endianness
3274 # Check whether right shifting a negative integer extends the sign bit
3275 # or fills with zeros (like the Cray J90, according to Tim Peters).
3276 AC_MSG_CHECKING(whether right shift extends the sign bit)
3277 AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
3281 exit(((-1)>>3 == -1) ? 0 : 1);
3284 ac_cv_rshift_extends_sign=yes,
3285 ac_cv_rshift_extends_sign=no,
3286 ac_cv_rshift_extends_sign=yes)])
3287 AC_MSG_RESULT($ac_cv_rshift_extends_sign)
3288 if test "$ac_cv_rshift_extends_sign" = no
3290 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
3291 [Define if i>>j for signed int i does not extend the sign bit
3295 # check for getc_unlocked and related locking functions
3296 AC_MSG_CHECKING(for getc_unlocked() and friends)
3297 AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
3298 AC_TRY_LINK([#include <stdio.h>],[
3299 FILE *f = fopen("/dev/null", "r");
3303 ], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
3304 AC_MSG_RESULT($ac_cv_have_getc_unlocked)
3305 if test "$ac_cv_have_getc_unlocked" = yes
3307 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
3308 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
3311 # check where readline lives
3312 # save the value of LIBS so we don't actually link Python with readline
3313 LIBS_no_readline=$LIBS
3314 AC_CHECK_LIB(readline, readline)
3315 if test "$ac_cv_have_readline_readline" = no
3317 AC_CHECK_LIB(termcap, readline)
3320 # check for readline 2.1
3321 AC_CHECK_LIB(readline, rl_callback_handler_install,
3322 AC_DEFINE(HAVE_RL_CALLBACK, 1,
3323 [Define if you have readline 2.1]), , )
3325 # check for readline 2.2
3326 AC_TRY_CPP([#include <readline/readline.h>],
3327 have_readline=yes, have_readline=no)
3328 if test $have_readline = yes
3330 AC_EGREP_HEADER([extern int rl_completion_append_character;],
3331 [readline/readline.h],
3332 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
3333 [Define if you have readline 2.2]), )
3336 # check for readline 4.0
3337 AC_CHECK_LIB(readline, rl_pre_input_hook,
3338 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
3339 [Define if you have readline 4.0]), , )
3342 AC_CHECK_LIB(readline, rl_completion_display_matches_hook,
3343 AC_DEFINE(HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK, 1,
3344 [Define if you have readline 4.0]), , )
3346 # check for readline 4.2
3347 AC_CHECK_LIB(readline, rl_completion_matches,
3348 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
3349 [Define if you have readline 4.2]), , )
3351 # also in readline 4.2
3352 AC_TRY_CPP([#include <readline/readline.h>],
3353 have_readline=yes, have_readline=no)
3354 if test $have_readline = yes
3356 AC_EGREP_HEADER([extern int rl_catch_signals;],
3357 [readline/readline.h],
3358 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
3359 [Define if you can turn off readline's signal handling.]), )
3362 # End of readline checks: restore LIBS
3363 LIBS=$LIBS_no_readline
3365 AC_MSG_CHECKING(for broken nice())
3366 AC_CACHE_VAL(ac_cv_broken_nice, [
3371 if (val1 != -1 && val1 == nice(2))
3376 ac_cv_broken_nice=yes,
3377 ac_cv_broken_nice=no,
3378 ac_cv_broken_nice=no)])
3379 AC_MSG_RESULT($ac_cv_broken_nice)
3380 if test "$ac_cv_broken_nice" = yes
3382 AC_DEFINE(HAVE_BROKEN_NICE, 1,
3383 [Define if nice() returns success/failure instead of the new priority.])
3386 AC_MSG_CHECKING(for broken poll())
3392 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
3396 int poll_test = poll (&poll_struct, 1, 0);
3402 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
3412 ac_cv_broken_poll=yes,
3413 ac_cv_broken_poll=no,
3414 ac_cv_broken_poll=no)
3415 AC_MSG_RESULT($ac_cv_broken_poll)
3416 if test "$ac_cv_broken_poll" = yes
3418 AC_DEFINE(HAVE_BROKEN_POLL, 1,
3419 [Define if poll() sets errno on invalid file descriptors.])
3422 # Before we can test tzset, we need to check if struct tm has a tm_zone
3423 # (which is not required by ISO C or UNIX spec) and/or if we support
3427 # check tzset(3) exists and works like we expect it to
3428 AC_MSG_CHECKING(for working tzset())
3429 AC_CACHE_VAL(ac_cv_working_tzset, [
3436 extern char *tzname[];
3441 /* Note that we need to ensure that not only does tzset(3)
3442 do 'something' with localtime, but it works as documented
3443 in the library reference and as expected by the test suite.
3444 This includes making sure that tzname is set properly if
3445 tm->tm_zone does not exist since it is the alternative way
3446 of getting timezone info.
3448 Red Hat 6.2 doesn't understand the southern hemisphere
3449 after New Year's Day.
3452 time_t groundhogday = 1044144000; /* GMT-based */
3453 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
3457 if (localtime(&groundhogday)->tm_hour != 0)
3460 /* For UTC, tzname[1] is sometimes "", sometimes " " */
3461 if (strcmp(tzname[0], "UTC") ||
3462 (tzname[1][0] != 0 && tzname[1][0] != ' '))
3466 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
3468 if (localtime(&groundhogday)->tm_hour != 19)
3471 if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT"))
3475 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
3477 if (localtime(&groundhogday)->tm_hour != 11)
3480 if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT"))
3484 #if HAVE_STRUCT_TM_TM_ZONE
3485 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
3487 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
3494 ac_cv_working_tzset=yes,
3495 ac_cv_working_tzset=no,
3496 ac_cv_working_tzset=no)])
3497 AC_MSG_RESULT($ac_cv_working_tzset)
3498 if test "$ac_cv_working_tzset" = yes
3500 AC_DEFINE(HAVE_WORKING_TZSET, 1,
3501 [Define if tzset() actually switches the local timezone in a meaningful way.])
3504 # Look for subsecond timestamps in struct stat
3505 AC_MSG_CHECKING(for tv_nsec in struct stat)
3506 AC_CACHE_VAL(ac_cv_stat_tv_nsec,
3507 AC_TRY_COMPILE([#include <sys/stat.h>], [
3509 st.st_mtim.tv_nsec = 1;
3511 ac_cv_stat_tv_nsec=yes,
3512 ac_cv_stat_tv_nsec=no,
3513 ac_cv_stat_tv_nsec=no))
3514 AC_MSG_RESULT($ac_cv_stat_tv_nsec)
3515 if test "$ac_cv_stat_tv_nsec" = yes
3517 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
3518 [Define if you have struct stat.st_mtim.tv_nsec])
3521 # Look for BSD style subsecond timestamps in struct stat
3522 AC_MSG_CHECKING(for tv_nsec2 in struct stat)
3523 AC_CACHE_VAL(ac_cv_stat_tv_nsec2,
3524 AC_TRY_COMPILE([#include <sys/stat.h>], [
3526 st.st_mtimespec.tv_nsec = 1;
3528 ac_cv_stat_tv_nsec2=yes,
3529 ac_cv_stat_tv_nsec2=no,
3530 ac_cv_stat_tv_nsec2=no))
3531 AC_MSG_RESULT($ac_cv_stat_tv_nsec2)
3532 if test "$ac_cv_stat_tv_nsec2" = yes
3534 AC_DEFINE(HAVE_STAT_TV_NSEC2, 1,
3535 [Define if you have struct stat.st_mtimensec])
3538 # On HP/UX 11.0, mvwdelch is a block with a return statement
3539 AC_MSG_CHECKING(whether mvwdelch is an expression)
3540 AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
3541 AC_TRY_COMPILE([#include <curses.h>], [
3543 rtn = mvwdelch(0,0,0);
3544 ], ac_cv_mvwdelch_is_expression=yes,
3545 ac_cv_mvwdelch_is_expression=no,
3546 ac_cv_mvwdelch_is_expression=yes))
3547 AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
3549 if test "$ac_cv_mvwdelch_is_expression" = yes
3551 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
3552 [Define if mvwdelch in curses.h is an expression.])
3555 AC_MSG_CHECKING(whether WINDOW has _flags)
3556 AC_CACHE_VAL(ac_cv_window_has_flags,
3557 AC_TRY_COMPILE([#include <curses.h>], [
3560 ], ac_cv_window_has_flags=yes,
3561 ac_cv_window_has_flags=no,
3562 ac_cv_window_has_flags=no))
3563 AC_MSG_RESULT($ac_cv_window_has_flags)
3566 if test "$ac_cv_window_has_flags" = yes
3568 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3569 [Define if WINDOW in curses.h offers a field _flags.])
3572 AC_MSG_CHECKING(for is_term_resized)
3573 AC_TRY_COMPILE([#include <curses.h>], void *x=is_term_resized,
3574 AC_DEFINE(HAVE_CURSES_IS_TERM_RESIZED, 1, Define if you have the 'is_term_resized' function.)
3579 AC_MSG_CHECKING(for resize_term)
3580 AC_TRY_COMPILE([#include <curses.h>], void *x=resize_term,
3581 AC_DEFINE(HAVE_CURSES_RESIZE_TERM, 1, Define if you have the 'resize_term' function.)
3586 AC_MSG_CHECKING(for resizeterm)
3587 AC_TRY_COMPILE([#include <curses.h>], void *x=resizeterm,
3588 AC_DEFINE(HAVE_CURSES_RESIZETERM, 1, Define if you have the 'resizeterm' function.)
3593 AC_MSG_CHECKING(for /dev/ptmx)
3595 if test -r /dev/ptmx
3598 AC_DEFINE(HAVE_DEV_PTMX, 1,
3599 [Define if we have /dev/ptmx.])
3604 AC_MSG_CHECKING(for /dev/ptc)
3609 AC_DEFINE(HAVE_DEV_PTC, 1,
3610 [Define if we have /dev/ptc.])
3615 AC_MSG_CHECKING(for %zd printf() format support)
3616 AC_TRY_RUN([#include <stdio.h>
3620 #ifdef HAVE_SYS_TYPES_H
3621 #include <sys/types.h>
3625 typedef ssize_t Py_ssize_t;
3626 #elif SIZEOF_VOID_P == SIZEOF_LONG
3627 typedef long Py_ssize_t;
3629 typedef int Py_ssize_t;
3636 if(sprintf(buffer, "%zd", (size_t)123) < 0)
3639 if (strcmp(buffer, "123"))
3642 if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
3645 if (strcmp(buffer, "-123"))
3651 AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
3654 AC_CHECK_TYPE(socklen_t,,
3655 AC_DEFINE(socklen_t,int,
3656 Define to `int' if <sys/socket.h> does not define.),[
3657 #ifdef HAVE_SYS_TYPES_H
3658 #include <sys/types.h>
3660 #ifdef HAVE_SYS_SOCKET_H
3661 #include <sys/socket.h>
3665 AC_SUBST(THREADHEADERS)
3667 for h in `(cd $srcdir;echo Python/thread_*.h)`
3669 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3673 SRCDIRS="Parser Grammar Objects Python Modules Mac"
3674 AC_MSG_CHECKING(for build directories)
3675 for dir in $SRCDIRS; do
3676 if test ! -d $dir; then
3682 # generate output files
3683 AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
3686 echo "creating Modules/Setup"
3687 if test ! -f Modules/Setup
3689 cp $srcdir/Modules/Setup.dist Modules/Setup
3692 echo "creating Modules/Setup.local"
3693 if test ! -f Modules/Setup.local
3695 echo "# Edit this file for local setup changes" >Modules/Setup.local
3698 echo "creating Makefile"
3699 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3700 -s Modules Modules/Setup.config \
3701 Modules/Setup.local Modules/Setup
3703 case $ac_sys_system in
3707 Support for BeOS is deprecated as of Python 2.6.
3708 See PEP 11 for the gory details.