1 dnl Process this file with autoconf 2.0 or later to make a configure script.
3 # Set VERSION so we only need to edit in one place (i.e., here)
4 m4_define(PYTHON_VERSION, 2.5)
6 AC_REVISION($Revision$)
8 AC_INIT(python, PYTHON_VERSION, http://www.python.org/python-bugs)
9 AC_CONFIG_SRCDIR([Include/object.h])
10 AC_CONFIG_HEADER(pyconfig.h)
12 dnl This is for stuff that absolutely must end up in pyconfig.h.
13 dnl Please use pyport.h instead, if possible.
19 /* Define the macros needed if on a UnixWare 7.x system. */
20 #if defined(__USLC__) && defined(__SCO_VERSION__)
21 #define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
24 #endif /*Py_PYCONFIG_H*/
27 # We don't use PACKAGE_ variables, and they cause conflicts
28 # with other autoconf-based packages that include Python.h
29 grep -v 'define PACKAGE_' <confdefs.h >confdefs.h.new
31 mv confdefs.h.new confdefs.h
34 VERSION=PYTHON_VERSION
39 # The later defininition of _XOPEN_SOURCE disables certain features
40 # on Linux, so we need _GNU_SOURCE to re-enable them (makedev, tm_zone).
41 AC_DEFINE(_GNU_SOURCE, 1, [Define on Linux to activate all library features])
43 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
44 # certain features on NetBSD, so we need _NETBSD_SOURCE to re-enable
46 AC_DEFINE(_NETBSD_SOURCE, 1, [Define on NetBSD to activate all library features])
48 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
49 # certain features on FreeBSD, so we need __BSD_VISIBLE to re-enable
51 AC_DEFINE(__BSD_VISIBLE, 1, [Define on FreeBSD to activate all library features])
53 # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
54 # u_int on Irix 5.3. Defining _BSD_TYPES brings it back.
55 AC_DEFINE(_BSD_TYPES, 1, [Define on Irix to enable u_int])
57 define_xopen_source=yes
59 # Arguments passed to configure.
61 CONFIG_ARGS="$ac_configure_args"
63 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
64 AC_ARG_ENABLE(framework,
65 AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework),
69 enableval=/Library/Frameworks
74 PYTHONFRAMEWORKDIR=no-framework
75 PYTHONFRAMEWORKPREFIX=
76 PYTHONFRAMEWORKINSTALLDIR=
80 PYTHONFRAMEWORK=Python
81 PYTHONFRAMEWORKDIR=Python.framework
82 PYTHONFRAMEWORKPREFIX=$enableval
83 PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
84 prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
88 PYTHONFRAMEWORKDIR=no-framework
89 PYTHONFRAMEWORKPREFIX=
90 PYTHONFRAMEWORKINSTALLDIR=
93 AC_SUBST(PYTHONFRAMEWORK)
94 AC_SUBST(PYTHONFRAMEWORKDIR)
95 AC_SUBST(PYTHONFRAMEWORKPREFIX)
96 AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)
99 ## AC_HELP_STRING(--with-dyld,
100 ## Use (OpenStep|Rhapsody) dynamic linker))
102 # Set name for machine-dependent library files
104 AC_MSG_CHECKING(MACHDEP)
105 if test -z "$MACHDEP"
107 ac_sys_system=`uname -s`
108 if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \
109 -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
110 ac_sys_release=`uname -v`
112 ac_sys_release=`uname -r`
114 ac_md_system=`echo $ac_sys_system |
115 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
116 ac_md_release=`echo $ac_sys_release |
117 tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
118 MACHDEP="$ac_md_system$ac_md_release"
121 cygwin*) MACHDEP="cygwin";;
122 darwin*) MACHDEP="darwin";;
123 atheos*) MACHDEP="atheos";;
124 irix646) MACHDEP="irix6";;
125 '') MACHDEP="unknown";;
129 # Some systems cannot stand _XOPEN_SOURCE being defined at all; they
130 # disable features if it is defined, without any means to access these
131 # features as extensions. For these systems, we skip the definition of
132 # _XOPEN_SOURCE. Before adding a system to the list to gain access to
133 # some feature, make sure there is no alternative way to access this
134 # feature. Also, when using wildcards, make sure you have verified the
135 # need for not defining _XOPEN_SOURCE on all systems matching the
136 # wildcard, and that the wildcard does not include future systems
137 # (which may remove their limitations).
138 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
139 case $ac_sys_system/$ac_sys_release in
140 # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined,
141 # even though select is a POSIX function. Reported by J. Ribbens.
142 # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
143 OpenBSD/2.* | OpenBSD/3.@<:@012345678@:>@)
144 define_xopen_source=no;;
145 # On Solaris 2.6, sys/wait.h is inconsistent in the usage
146 # of union __?sigval. Reported by Stuart Bishop.
148 define_xopen_source=no;;
149 # On UnixWare 7, u_long is never defined with _XOPEN_SOURCE,
150 # but used in /usr/include/netinet/tcp.h. Reported by Tim Rice.
151 # Reconfirmed for 7.1.4 by Martin v. Loewis.
152 OpenUNIX/8.0.0| UnixWare/7.1.@<:@0-4@:>@)
153 define_xopen_source=no;;
154 # On OpenServer 5, u_short is never defined with _XOPEN_SOURCE,
155 # but used in struct sockaddr.sa_family. Reported by Tim Rice.
157 define_xopen_source=no;;
158 # On FreeBSD 4.8 and MacOS X 10.2, a bug in ncurses.h means that
159 # it craps out if _XOPEN_EXTENDED_SOURCE is defined. Apparently,
160 # this is fixed in 10.3, which identifies itself as Darwin/7.*
161 # This should hopefully be fixed in FreeBSD 4.9
162 FreeBSD/4.8* | Darwin/6* )
163 define_xopen_source=no;;
164 # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
165 # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
166 # or has another value. By not (re)defining it, the defaults come in place.
168 define_xopen_source=no;;
170 if test `uname -r` -eq 1; then
171 define_xopen_source=no
174 # On Mac OS X 10.4, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
175 # disables platform specific features beyond repair.
176 # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
177 # has no effect, don't bother defineing them
179 define_xopen_source=no
184 if test $define_xopen_source = yes
186 # On Solaris w/ g++ it appears that _XOPEN_SOURCE has to be
187 # defined precisely as g++ defines it
188 # Furthermore, on Solaris 10, XPG6 requires the use of a C99
190 case $ac_sys_system/$ac_sys_release in
191 SunOS/5.8|SunOS/5.9|SunOS/5.10)
192 AC_DEFINE(_XOPEN_SOURCE, 500,
193 Define to the level of X/Open that your system supports)
196 AC_DEFINE(_XOPEN_SOURCE, 600,
197 Define to the level of X/Open that your system supports)
201 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
202 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
203 # several APIs are not declared. Since this is also needed in some
204 # cases for HP-UX, we define it globally.
205 # except for Solaris 10, where it must not be defined,
206 # as it implies XPG4.2
207 case $ac_sys_system/$ac_sys_release in
211 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1,
212 Define to activate Unix95-and-earlier features)
216 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
221 # SGI compilers allow the specification of the both the ABI and the
222 # ISA on the command line. Depending on the values of these switches,
223 # different and often incompatable code will be generated.
225 # The SGI_ABI variable can be used to modify the CC and LDFLAGS and
226 # thus supply support for various ABI/ISA combinations. The MACHDEP
227 # variable is also adjusted.
230 if test ! -z "$SGI_ABI"
233 LDFLAGS="$SGI_ABI $LDFLAGS"
234 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
236 AC_MSG_RESULT($MACHDEP)
238 # And add extra plat-mac for darwin
239 AC_SUBST(EXTRAPLATDIR)
240 AC_SUBST(EXTRAMACHDEPPATH)
241 AC_MSG_CHECKING(EXTRAPLATDIR)
242 if test -z "$EXTRAPLATDIR"
246 EXTRAPLATDIR="\$(PLATMACDIRS)"
247 EXTRAMACHDEPPATH="\$(PLATMACPATH)"
255 AC_MSG_RESULT($EXTRAPLATDIR)
257 # Record the configure-time value of MACOSX_DEPLOYMENT_TARGET,
258 # it may influence the way we can build extensions, so distutils
260 AC_SUBST(CONFIGURE_MACOSX_DEPLOYMENT_TARGET)
261 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
263 # checks for alternative programs
265 # compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
266 # for debug/optimization stuff. BASECFLAGS is for flags that are required
267 # just to get things to compile and link. Users are free to override OPT
268 # when running configure or make. The build should not break if they do.
269 # BASECFLAGS should generally not be messed with, however.
271 # XXX shouldn't some/most/all of this code be merged with the stuff later
272 # on that fiddles with OPT and BASECFLAGS?
273 AC_MSG_CHECKING(for --without-gcc)
275 AC_HELP_STRING(--without-gcc,never use gcc),
283 without_gcc=$withval;;
285 case $ac_sys_system in
293 BASECFLAGS="$BASECFLAGS -export pragma"
295 LDFLAGS="$LDFLAGS -nodup"
303 AC_MSG_ERROR([Unknown BeOS platform "$BE_HOST_CPU"])
306 AR="\$(srcdir)/Modules/ar_beos"
314 AC_MSG_RESULT($without_gcc)
319 AC_MSG_CHECKING(for --with-cxx=<compiler>)
321 AC_HELP_STRING(--with-cxx=<compiler>, enable C++ support),
334 AC_MSG_RESULT($with_cxx)
336 if test "$with_cxx" = "yes"
338 AC_MSG_ERROR([must supply a compiler when using --with-cxx])
341 dnl The following fragment works similar to AC_PROG_CXX.
342 dnl It does not fail if CXX is not found, and it is not executed if
343 dnl --without-cxx was given.
344 dnl Finally, it does not test whether CXX is g++.
346 dnl Autoconf 2.5x does not have AC_PROG_CXX_WORKS anymore
347 ifdef([AC_PROG_CXX_WORKS],[],
348 [AC_DEFUN([AC_PROG_CXX_WORKS],
349 [AC_LANG_PUSH(C++)dnl
355 if test "$check_cxx" = "yes"
357 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
358 if test "$CXX" = "notfound"
366 # If the user switches compilers, we can't believe the cache
367 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
369 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
370 (it is also a good idea to do 'make clean' before compiling)])
375 # checks for UNIX variants that set C preprocessor variables
378 # Check for unsupported systems
379 case $ac_sys_system/$ac_sys_release in
381 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
382 echo See README for details.
387 AC_MSG_CHECKING(for --with-suffix)
389 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
396 AC_MSG_RESULT($EXEEXT)
398 # Test whether we're running on a non-case-sensitive system, in which
399 # case we give a warning if no ext is given
400 AC_SUBST(BUILDEXEEXT)
401 AC_MSG_CHECKING(for case-insensitive build directory)
402 if test ! -d CaseSensitiveTestDir; then
403 mkdir CaseSensitiveTestDir
406 if test -d casesensitivetestdir
414 rmdir CaseSensitiveTestDir
419 gcc) CC="$CC -D_HAVE_BSDI";;
423 case $ac_sys_system in
426 cc|*/cc) CC="$CC -Ae";;
430 cc) CC="$CC -Wl,-Bexport";;
433 # Some functions have a prototype only with that define, e.g. confstr
434 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
440 AC_MSG_CHECKING(LIBRARY)
441 if test -z "$LIBRARY"
443 LIBRARY='libpython$(VERSION).a'
445 AC_MSG_RESULT($LIBRARY)
447 # LDLIBRARY is the name of the library to link against (as opposed to the
448 # name of the library into which to insert object files). BLDLIBRARY is also
449 # the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
450 # is blank as the main program is not linked directly against LDLIBRARY.
451 # LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
452 # systems without shared libraries, LDLIBRARY is the same as LIBRARY
453 # (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
454 # DLLLIBRARY is the shared (i.e., DLL) library.
456 # RUNSHARED is used to run shared python without installed libraries
458 # INSTSONAME is the name of the shared library that will be use to install
459 # on the system - some systems like version suffix, others don't
463 AC_SUBST(LDLIBRARYDIR)
467 BLDLIBRARY='$(LDLIBRARY)'
468 INSTSONAME='$(LDLIBRARY)'
473 # LINKCC is the command that links the python executable -- default is $(CC).
474 # If CXX is set, and if it is needed to link a main function that was
475 # compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
476 # python might then depend on the C++ runtime
477 # This is altered for AIX in order to build the export list before
480 AC_MSG_CHECKING(LINKCC)
483 if test -z "$CXX"; then
484 LINKCC="\$(PURIFY) \$(CC)"
486 echo 'extern "C" void foo();int main(){foo();}' > conftest_a.cc
487 $CXX -c conftest_a.cc # 2>&5
488 echo 'void foo(){}' > conftest_b.$ac_ext
489 $CC -c conftest_b.$ac_ext # 2>&5
490 if $CC -o conftest$ac_exeext conftest_a.$ac_objext conftest_b.$ac_objext 2>&5 \
491 && test -s conftest$ac_exeext && ./conftest$ac_exeext
493 LINKCC="\$(PURIFY) \$(CC)"
495 LINKCC="\$(PURIFY) \$(CXX)"
499 case $ac_sys_system in
502 if test $ac_sys_release -ge 5 -o \
503 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
506 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
508 LINKCC="$LINKCC -L/usr/lib/ia64l64";;
511 AC_MSG_RESULT($LINKCC)
513 AC_MSG_CHECKING(for --enable-shared)
514 AC_ARG_ENABLE(shared,
515 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
517 if test -z "$enable_shared"
519 case $ac_sys_system in
521 enable_shared="yes";;
526 AC_MSG_RESULT($enable_shared)
528 AC_MSG_CHECKING(for --enable-profiling)
529 AC_ARG_ENABLE(profiling,
530 AC_HELP_STRING(--enable-profiling, enable C-level code profiling),
533 AC_TRY_RUN([int main() { return 0; }],
534 ac_enable_profiling="yes",
535 ac_enable_profiling="no",
536 ac_enable_profiling="no")
538 AC_MSG_RESULT($ac_enable_profiling)
540 case "$ac_enable_profiling" in
542 BASECFLAGS="-pg $BASECFLAGS"
543 LDFLAGS="-pg $LDFLAGS"
547 AC_MSG_CHECKING(LDLIBRARY)
549 # MacOSX framework builds need more magic. LDLIBRARY is the dynamic
550 # library that we build, but we do not want to link against it (we
551 # will find it with a -framework option). For this reason there is an
552 # extra variable BLDLIBRARY against which Python and the extension
553 # modules are linked, BLDLIBRARY. This is normally the same as
554 # LDLIBRARY, but empty for MacOSX framework builds.
555 if test "$enable_framework"
557 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
558 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
561 BLDLIBRARY='$(LDLIBRARY)'
564 # Other platforms follow
565 if test $enable_shared = "yes"; then
566 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
567 case $ac_sys_system in
569 LDLIBRARY='libpython$(VERSION).so'
572 LDLIBRARY='libpython$(VERSION).dll.a'
573 DLLLIBRARY='libpython$(VERSION).dll'
576 LDLIBRARY='libpython$(VERSION).so'
577 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
578 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
579 INSTSONAME="$LDLIBRARY".$SOVERSION
581 Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*)
582 LDLIBRARY='libpython$(VERSION).so'
583 BLDLIBRARY='-L. -lpython$(VERSION)'
584 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
585 case $ac_sys_system in
587 SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
590 INSTSONAME="$LDLIBRARY".$SOVERSION
593 LDLIBRARY='libpython$(VERSION).sl'
594 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
595 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
598 LDLIBRARY='libpython$(VERSION).so'
599 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
600 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
603 LDLIBRARY='libpython$(VERSION).so'
604 BLDLIBRARY='-L. -lpython$(VERSION)'
605 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
608 else # shared is disabled
609 case $ac_sys_system in
611 BLDLIBRARY='$(LIBRARY)'
612 LDLIBRARY='libpython$(VERSION).dll.a'
617 AC_MSG_RESULT($LDLIBRARY)
621 AC_CHECK_PROGS(AR, ar aal, ar)
624 AC_CHECK_PROG(SVNVERSION, svnversion, found, not-found)
625 if test $SVNVERSION = found
627 SVNVERSION="svnversion \$(srcdir)"
629 SVNVERSION="echo exported"
634 # install -d does not work on BSDI or HP-UX
635 if test -z "$INSTALL"
637 INSTALL="${srcdir}/install-sh -c"
642 # Not every filesystem supports hard links
644 if test -z "$LN" ; then
645 case $ac_sys_system in
647 CYGWIN*) LN="ln -s";;
648 atheos*) LN="ln -s";;
653 # Check for --with-pydebug
654 AC_MSG_CHECKING(for --with-pydebug)
656 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
658 if test "$withval" != no
660 AC_DEFINE(Py_DEBUG, 1,
661 [Define if you want to build an interpreter with many run-time checks.])
664 else AC_MSG_RESULT(no); Py_DEBUG='false'
668 # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
669 # merged with this chunk of code?
671 # Optimizer/debugger flags
672 # ------------------------
673 # (The following bit of code is complicated enough - please keep things
674 # indented properly. Just pretend you're editing Python code. ;-)
676 # There are two parallel sets of case statements below, one that checks to
677 # see if OPT was set and one that does BASECFLAGS setting based upon
678 # compiler and platform. BASECFLAGS tweaks need to be made even if the
681 # tweak OPT based on compiler and platform, only if the user didn't set
682 # it on the command line
688 case $ac_cv_prog_cc_g in
690 if test "$Py_DEBUG" = 'true' ; then
691 # Optimization messes up debuggers, so turn it off for
693 OPT="-g -Wall -Wstrict-prototypes"
695 OPT="-g -O3 -Wall -Wstrict-prototypes"
699 OPT="-O3 -Wall -Wstrict-prototypes"
702 case $ac_sys_system in
703 SCO_SV*) OPT="$OPT -m486 -DSCO5"
713 # The current (beta) Monterey compiler dies with optimizations
714 # XXX what is Monterey? Does it still die w/ -O? Can we get rid of this?
715 case $ac_sys_system in
724 # tweak BASECFLAGS based on compiler and platform
727 # Python violates C99 rules, by casting between incompatible
728 # pointer types. GCC may generate bad code as a result of that,
729 # so use -fno-strict-aliasing if supported.
730 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
732 CC="$CC -fno-strict-aliasing"
733 AC_TRY_RUN([int main() { return 0; }],
734 ac_cv_no_strict_aliasing_ok=yes,
735 ac_cv_no_strict_aliasing_ok=no,
736 ac_cv_no_strict_aliasing_ok=no)
738 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
739 if test $ac_cv_no_strict_aliasing_ok = yes
741 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
743 case $ac_sys_system in
745 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
747 # is there any other compiler on Darwin besides gcc?
749 BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd"
752 BASECFLAGS="$BASECFLAGS -mieee"
758 case $ac_sys_system in
760 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
763 BASECFLAGS="$BASECFLAGS -ieee -std"
766 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
772 if test "$Py_DEBUG" = 'true'; then
778 if test "$ac_arch_flags"
780 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
783 # disable check for icc since it seems to pass, but generates a warning
786 ac_cv_opt_olimit_ok=no
789 AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
790 AC_CACHE_VAL(ac_cv_opt_olimit_ok,
792 CC="$CC -OPT:Olimit=0"
793 AC_TRY_RUN([int main() { return 0; }],
794 ac_cv_opt_olimit_ok=yes,
795 ac_cv_opt_olimit_ok=no,
796 ac_cv_opt_olimit_ok=no)
798 AC_MSG_RESULT($ac_cv_opt_olimit_ok)
799 if test $ac_cv_opt_olimit_ok = yes; then
800 case $ac_sys_system in
801 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
802 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
807 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
811 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
812 AC_CACHE_VAL(ac_cv_olimit_ok,
814 CC="$CC -Olimit 1500"
815 AC_TRY_RUN([int main() { return 0; }],
820 AC_MSG_RESULT($ac_cv_olimit_ok)
821 if test $ac_cv_olimit_ok = yes; then
822 BASECFLAGS="$BASECFLAGS -Olimit 1500"
826 # On some compilers, pthreads are available without further options
827 # (e.g. MacOS X). On some of these systems, the compiler will not
828 # complain if unaccepted options are passed (e.g. gcc on Mac OS X).
829 # So we have to see first whether pthreads are available without
830 # options before we can check whether -Kpthread improves anything.
831 AC_MSG_CHECKING(whether pthreads are available without options)
832 AC_CACHE_VAL(ac_cv_pthread_is_default,
836 void* routine(void* p){return NULL;}
840 if(pthread_create(&p,NULL,routine,NULL)!=0)
842 (void)pthread_detach(p);
847 ac_cv_pthread_is_default=yes
851 ac_cv_pthread_is_default=no,
852 ac_cv_pthread_is_default=no)
854 AC_MSG_RESULT($ac_cv_pthread_is_default)
857 if test $ac_cv_pthread_is_default = yes
861 # -Kpthread, if available, provides the right #defines
862 # and linker options to make pthread_create available
863 # Some compilers won't report that they do not support -Kpthread,
864 # so we need to run a program to see whether it really made the
865 # function available.
866 AC_MSG_CHECKING(whether $CC accepts -Kpthread)
867 AC_CACHE_VAL(ac_cv_kpthread,
873 void* routine(void* p){return NULL;}
877 if(pthread_create(&p,NULL,routine,NULL)!=0)
879 (void)pthread_detach(p);
887 AC_MSG_RESULT($ac_cv_kpthread)
890 if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
892 # -Kthread, if available, provides the right #defines
893 # and linker options to make pthread_create available
894 # Some compilers won't report that they do not support -Kthread,
895 # so we need to run a program to see whether it really made the
896 # function available.
897 AC_MSG_CHECKING(whether $CC accepts -Kthread)
898 AC_CACHE_VAL(ac_cv_kthread,
904 void* routine(void* p){return NULL;}
908 if(pthread_create(&p,NULL,routine,NULL)!=0)
910 (void)pthread_detach(p);
918 AC_MSG_RESULT($ac_cv_kthread)
921 if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
923 # -pthread, if available, provides the right #defines
924 # and linker options to make pthread_create available
925 # Some compilers won't report that they do not support -pthread,
926 # so we need to run a program to see whether it really made the
927 # function available.
928 AC_MSG_CHECKING(whether $CC accepts -pthread)
929 AC_CACHE_VAL(ac_cv_thread,
935 void* routine(void* p){return NULL;}
939 if(pthread_create(&p,NULL,routine,NULL)!=0)
941 (void)pthread_detach(p);
949 AC_MSG_RESULT($ac_cv_pthread)
952 # If we have set a CC compiler flag for thread support then
953 # check if it works for CXX, too.
957 AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
960 if test "$ac_cv_kpthread" = "yes"
964 elif test "$ac_cv_kthread" = "yes"
968 elif test "$ac_cv_pthread" = "yes"
974 if test $ac_cv_cxx_thread = yes
976 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
977 $CXX -c conftest.$ac_ext 2>&5
978 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
979 && test -s conftest$ac_exeext && ./conftest$ac_exeext
987 AC_MSG_RESULT($ac_cv_cxx_thread)
991 dnl # check for ANSI or K&R ("traditional") preprocessor
992 dnl AC_MSG_CHECKING(for C preprocessor type)
994 dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
996 dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
997 dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
998 dnl AC_MSG_RESULT($cpp_type)
1000 # checks for header files
1002 AC_CHECK_HEADERS(asm/types.h curses.h dlfcn.h fcntl.h grp.h \
1003 shadow.h langinfo.h libintl.h ncurses.h poll.h pthread.h \
1004 stropts.h termios.h thread.h \
1006 sys/audioio.h sys/bsdtty.h sys/file.h sys/loadavg.h sys/lock.h sys/mkdev.h \
1008 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/time.h sys/times.h \
1009 sys/un.h sys/utsname.h sys/wait.h pty.h libutil.h \
1010 sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
1011 bluetooth/bluetooth.h)
1015 # On Solaris, term.h requires curses.h
1016 AC_CHECK_HEADERS(term.h,,,[
1017 #ifdef HAVE_CURSES_H
1022 # On Linux, netlink.h requires asm/types.h
1023 AC_CHECK_HEADERS(linux/netlink.h,,,[
1024 #ifdef HAVE_ASM_TYPES_H
1025 #include <asm/types.h>
1027 #ifdef HAVE_SYS_SOCKET_H
1028 #include <sys/socket.h>
1032 # checks for typedefs
1034 AC_MSG_CHECKING(for clock_t in time.h)
1035 AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
1036 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
1038 AC_MSG_RESULT($was_it_defined)
1040 # Check whether using makedev requires defining _OSF_SOURCE
1041 AC_MSG_CHECKING(for makedev)
1042 AC_TRY_LINK([#include <sys/types.h> ],
1044 ac_cv_has_makedev=yes,
1045 ac_cv_has_makedev=no)
1046 if test "$ac_cv_has_makedev" = "no"; then
1047 # we didn't link, try if _OSF_SOURCE will allow us to link
1049 #define _OSF_SOURCE 1
1050 #include <sys/types.h>
1053 ac_cv_has_makedev=yes,
1054 ac_cv_has_makedev=no)
1055 if test "$ac_cv_has_makedev" = "yes"; then
1056 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
1059 AC_MSG_RESULT($ac_cv_has_makedev)
1060 if test "$ac_cv_has_makedev" = "yes"; then
1061 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
1064 # Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
1065 # the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
1066 # defined, but the compiler does not support pragma redefine_extname,
1067 # and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
1068 # structures (such as rlimit64) without declaring them. As a
1069 # work-around, disable LFS on such configurations
1072 AC_MSG_CHECKING(Solaris LFS bug)
1074 #define _LARGEFILE_SOURCE 1
1075 #define _FILE_OFFSET_BITS 64
1076 #include <sys/resource.h>
1077 ],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
1078 AC_MSG_RESULT($sol_lfs_bug)
1079 if test "$sol_lfs_bug" = "yes"; then
1083 if test "$use_lfs" = "yes"; then
1084 # Two defines needed to enable largefile support on various platforms
1085 # These may affect some typedefs
1086 AC_DEFINE(_LARGEFILE_SOURCE, 1,
1087 [This must be defined on some systems to enable large file support.])
1088 AC_DEFINE(_FILE_OFFSET_BITS, 64,
1089 [This must be set to 64 on some systems to enable large file support.])
1092 # Add some code to confdefs.h so that the test for off_t works on SCO
1093 cat >> confdefs.h <<\EOF
1099 # Type availability checks
1106 AC_CHECK_TYPE(ssize_t,
1107 AC_DEFINE(HAVE_SSIZE_T, 1, Define if your compiler provides ssize_t),,)
1109 # Sizes of various common basic types
1110 # ANSI C requires sizeof(char) == 1, so no need to check it
1111 AC_CHECK_SIZEOF(int, 4)
1112 AC_CHECK_SIZEOF(long, 4)
1113 AC_CHECK_SIZEOF(void *, 4)
1114 AC_CHECK_SIZEOF(short, 2)
1115 AC_CHECK_SIZEOF(float, 4)
1116 AC_CHECK_SIZEOF(double, 8)
1117 AC_CHECK_SIZEOF(fpos_t, 4)
1118 AC_CHECK_SIZEOF(size_t, 4)
1120 AC_MSG_CHECKING(for long long support)
1122 AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1123 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1126 AC_MSG_RESULT($have_long_long)
1127 if test "$have_long_long" = yes ; then
1128 AC_CHECK_SIZEOF(long long, 8)
1131 AC_MSG_CHECKING(for uintptr_t support)
1133 AC_TRY_COMPILE([], [uintptr_t x; x = (uintptr_t)0;], [
1134 AC_DEFINE(HAVE_UINTPTR_T, 1, [Define this if you have the type uintptr_t.])
1137 AC_MSG_RESULT($have_uintptr_t)
1138 if test "$have_uintptr_t" = yes ; then
1139 AC_CHECK_SIZEOF(uintptr_t, 4)
1142 # Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1143 AC_MSG_CHECKING(size of off_t)
1144 AC_CACHE_VAL(ac_cv_sizeof_off_t,
1145 [AC_TRY_RUN([#include <stdio.h>
1146 #include <sys/types.h>
1149 FILE *f=fopen("conftestval", "w");
1151 fprintf(f, "%d\n", sizeof(off_t));
1154 ac_cv_sizeof_off_t=`cat conftestval`,
1155 ac_cv_sizeof_off_t=0,
1156 ac_cv_sizeof_off_t=4)
1158 AC_MSG_RESULT($ac_cv_sizeof_off_t)
1159 AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1160 [The number of bytes in an off_t.])
1162 AC_MSG_CHECKING(whether to enable large file support)
1163 if test "$have_long_long" = yes -a \
1164 "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1165 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
1166 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1167 [Defined to enable large file support when an off_t is bigger than a long
1168 and long long is available and at least as big as an off_t. You may need
1169 to add some flags for configuration and compilation to enable this mode.
1170 (For Solaris and Linux, the necessary defines are already defined.)])
1176 # AC_CHECK_SIZEOF() doesn't include <time.h>.
1177 AC_MSG_CHECKING(size of time_t)
1178 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1179 [AC_TRY_RUN([#include <stdio.h>
1183 FILE *f=fopen("conftestval", "w");
1185 fprintf(f, "%d\n", sizeof(time_t));
1188 ac_cv_sizeof_time_t=`cat conftestval`,
1189 ac_cv_sizeof_time_t=0,
1190 ac_cv_sizeof_time_t=4)
1192 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1193 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1194 [The number of bytes in a time_t.])
1197 # if have pthread_t then define SIZEOF_PTHREAD_T
1199 if test "$ac_cv_kpthread" = "yes"
1200 then CC="$CC -Kpthread"
1201 elif test "$ac_cv_kthread" = "yes"
1202 then CC="$CC -Kthread"
1203 elif test "$ac_cv_pthread" = "yes"
1204 then CC="$CC -pthread"
1206 AC_MSG_CHECKING(for pthread_t)
1208 AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
1209 AC_MSG_RESULT($have_pthread_t)
1210 if test "$have_pthread_t" = yes ; then
1211 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1212 AC_MSG_CHECKING(size of pthread_t)
1213 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1214 [AC_TRY_RUN([#include <stdio.h>
1215 #include <pthread.h>
1218 FILE *f=fopen("conftestval", "w");
1220 fprintf(f, "%d\n", sizeof(pthread_t));
1223 ac_cv_sizeof_pthread_t=`cat conftestval`,
1224 ac_cv_sizeof_pthread_t=0,
1225 ac_cv_sizeof_pthread_t=4)
1227 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
1228 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1229 [The number of bytes in a pthread_t.])
1233 AC_MSG_CHECKING(for --enable-toolbox-glue)
1234 AC_ARG_ENABLE(toolbox-glue,
1235 AC_HELP_STRING(--enable-toolbox-glue, disable/enable MacOSX glue code for extensions))
1237 if test -z "$enable_toolbox_glue"
1239 case $ac_sys_system/$ac_sys_release in
1241 enable_toolbox_glue="yes";;
1243 enable_toolbox_glue="no";;
1246 case "$enable_toolbox_glue" in
1248 extra_machdep_objs="Python/mactoolboxglue.o"
1249 extra_undefs="-u _PyMac_Error"
1250 AC_DEFINE(USE_TOOLBOX_OBJECT_GLUE, 1,
1251 [Define if you want to use MacPython modules on MacOSX in unix-Python.])
1254 extra_machdep_objs=""
1258 AC_MSG_RESULT($enable_toolbox_glue)
1260 AC_SUBST(OTHER_LIBTOOL_OPT)
1261 case $ac_sys_system/$ac_sys_release in
1262 Darwin/@<:@01567@:>@\..*)
1263 OTHER_LIBTOOL_OPT="-prebind -seg1addr 0x10000000"
1266 OTHER_LIBTOOL_OPT=""
1270 AC_SUBST(LIBTOOL_CRUFT)
1271 case $ac_sys_system/$ac_sys_release in
1272 Darwin/@<:@01567@:>@\..*)
1273 LIBTOOL_CRUFT="-framework System -lcc_dynamic -arch_only `arch`"
1274 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1275 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1277 gcc_version=`gcc -v 2>&1 | grep version | cut -d\ -f3`
1278 if test ${gcc_version} '<' 4.0
1280 LIBTOOL_CRUFT="-lcc_dynamic"
1284 LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only `arch`"
1285 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1286 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1289 AC_MSG_CHECKING(for --enable-framework)
1290 if test "$enable_framework"
1292 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
1293 # -F. is needed to allow linking to the framework while
1294 # in the build location.
1295 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1296 [Define if you want to produce an OpenStep/Rhapsody framework
1297 (shared library plus accessory files).])
1303 AC_MSG_CHECKING(for dyld)
1304 case $ac_sys_system/$ac_sys_release in
1306 AC_DEFINE(WITH_DYLD, 1,
1307 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1308 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1309 linker (rld). Dyld is necessary to support frameworks.])
1310 AC_MSG_RESULT(always on for Darwin)
1317 # Set info about shared libraries.
1322 AC_SUBST(LINKFORSHARED)
1323 # SO is the extension of shared libraries `(including the dot!)
1324 # -- usually .so, .sl on HP-UX, .dll on Cygwin
1328 case $ac_sys_system in
1334 # this might also be a termcap variable, see #610332
1336 echo '====================================================================='
1338 echo '+ WARNING: You have set SO in your environment. +'
1339 echo '+ Do you really mean to change the extension for shared libraries? +'
1340 echo '+ Continuing in 10 seconds to let you to ponder. +'
1342 echo '====================================================================='
1346 # LDSHARED is the ld *command* used to create shared library
1347 # -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
1348 # (Shared libraries in this instance are shared modules to be loaded into
1349 # Python, as opposed to building Python itself as a shared library.)
1350 AC_MSG_CHECKING(LDSHARED)
1351 if test -z "$LDSHARED"
1353 case $ac_sys_system/$ac_sys_release in
1355 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
1356 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
1359 BLDSHARED="\$(srcdir)/Modules/ld_so_beos $LDLIBRARY"
1360 LDSHARED="\$(BINLIBDEST)/config/ld_so_beos \$(LIBDIR)/$LDLIBRARY"
1362 IRIX/5*) LDSHARED="ld -shared";;
1363 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
1365 if test "$GCC" = "yes"
1366 then LDSHARED='$(CC) -shared'
1367 else LDSHARED='$(CC) -G';
1369 hp*|HP*) LDSHARED="ld -b";;
1370 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
1372 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1373 if test "$enable_framework" ; then
1374 # Link against the framework. All externals should be defined.
1375 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1376 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1378 # No framework. Ignore undefined symbols, assuming they come from Python
1379 LDSHARED="$LDSHARED -undefined suppress"
1381 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
1382 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1383 if test "$enable_framework" ; then
1384 # Link against the framework. All externals should be defined.
1385 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1386 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1388 # No framework, use the Python app as bundle-loader
1389 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1390 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1393 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1394 # This allows an extension to be used in any Python
1395 cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
1396 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
1397 if test ${MACOSX_DEPLOYMENT_TARGET-${cur_target}} '>' 10.2
1399 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1400 BLDSHARED="$LDSHARED"
1402 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1403 if test "$enable_framework" ; then
1404 # Link against the framework. All externals should be defined.
1405 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1406 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1408 # No framework, use the Python app as bundle-loader
1409 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1410 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1414 Linux*|GNU*) LDSHARED='$(CC) -shared';;
1415 BSD/OS*/4*) LDSHARED="gcc -shared";;
1417 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1419 LDSHARED="$CC -shared ${LDFLAGS}"
1421 LDSHARED="ld -Bshareable ${LDFLAGS}"
1423 NetBSD*|DragonFly*) LDSHARED="cc -shared ${LDFLAGS}";;
1424 OpenUNIX*|UnixWare*)
1425 if test "$GCC" = "yes"
1426 then LDSHARED='$(CC) -shared'
1427 else LDSHARED='$(CC) -G'
1429 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
1430 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
1431 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
1432 atheos*) LDSHARED="gcc -shared";;
1436 AC_MSG_RESULT($LDSHARED)
1437 BLDSHARED=${BLDSHARED-$LDSHARED}
1438 # CCSHARED are the C *flags* used to create objects to go into a shared
1439 # library (module) -- this is only needed for a few systems
1440 AC_MSG_CHECKING(CCSHARED)
1441 if test -z "$CCSHARED"
1443 case $ac_sys_system/$ac_sys_release in
1444 SunOS*) if test "$GCC" = yes;
1445 then CCSHARED="-fPIC";
1446 else CCSHARED="-xcode=pic32";
1448 hp*|HP*) if test "$GCC" = yes;
1449 then CCSHARED="-fPIC";
1452 Linux*|GNU*) CCSHARED="-fPIC";;
1453 BSD/OS*/4*) CCSHARED="-fpic";;
1454 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";;
1455 OpenUNIX*|UnixWare*)
1456 if test "$GCC" = "yes"
1457 then CCSHARED="-fPIC"
1458 else CCSHARED="-KPIC"
1461 if test "$GCC" = "yes"
1462 then CCSHARED="-fPIC"
1463 else CCSHARED="-Kpic -belf"
1465 Monterey*) CCSHARED="-G";;
1466 IRIX*/6*) case $CC in
1467 *gcc*) CCSHARED="-shared";;
1470 atheos*) CCSHARED="-fPIC";;
1473 AC_MSG_RESULT($CCSHARED)
1474 # LINKFORSHARED are the flags passed to the $(CC) command that links
1475 # the python executable -- this is only needed for a few systems
1476 AC_MSG_CHECKING(LINKFORSHARED)
1477 if test -z "$LINKFORSHARED"
1479 case $ac_sys_system/$ac_sys_release in
1480 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
1482 LINKFORSHARED="-Wl,-E -Wl,+s";;
1483 # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
1484 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
1485 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
1486 # -u libsys_s pulls in all symbols in libsys
1488 # -u _PyMac_Error is needed to pull in the mac toolbox glue,
1490 # not used by the core itself but which needs to be in the core so
1491 # that dynamically loaded extension modules have access to it.
1492 # -prebind is no longer used, because it actually seems to give a
1493 # slowdown in stead of a speedup, maybe due to the large number of
1494 # dynamic loads Python does.
1496 LINKFORSHARED="$extra_undefs"
1497 if test "$enable_framework"
1499 LINKFORSHARED="$LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1501 LINKFORSHARED="$LINKFORSHARED";;
1502 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
1503 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
1504 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
1505 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*)
1506 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1508 LINKFORSHARED="-Wl,--export-dynamic"
1510 SunOS/5*) case $CC in
1512 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
1514 LINKFORSHARED="-Xlinker --export-dynamic"
1518 if test $enable_shared = "no"
1520 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1524 AC_MSG_RESULT($LINKFORSHARED)
1526 AC_SUBST(CFLAGSFORSHARED)
1527 AC_MSG_CHECKING(CFLAGSFORSHARED)
1528 if test ! "$LIBRARY" = "$LDLIBRARY"
1530 case $ac_sys_system in
1532 # Cygwin needs CCSHARED when building extension DLLs
1533 # but not when building the interpreter DLL.
1534 CFLAGSFORSHARED='';;
1536 CFLAGSFORSHARED='$(CCSHARED)'
1539 AC_MSG_RESULT($CFLAGSFORSHARED)
1541 # SHLIBS are libraries (except -lc and -lm) to link to the python shared
1542 # library (with --enable-shared).
1543 # For platforms on which shared libraries are not allowed to have unresolved
1544 # symbols, this must be set to $(LIBS) (expanded by make). We do this even
1545 # if it is not required, since it creates a dependency of the shared library
1546 # to LIBS. This, in turn, means that applications linking the shared libpython
1547 # don't need to link LIBS explicitly. The default should be only changed
1548 # on systems where this approach causes problems.
1550 AC_MSG_CHECKING(SHLIBS)
1551 case "$ac_sys_system" in
1555 AC_MSG_RESULT($SHLIBS)
1558 # checks for libraries
1559 AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1560 AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
1562 # only check for sem_ini if thread support is requested
1563 if test "$with_threads" = "yes" -o -z "$with_threads"; then
1564 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1565 # posix4 on Solaris 2.6
1566 # pthread (first!) on Linux
1569 # check if we need libintl for locale functions
1570 AC_CHECK_LIB(intl, textdomain,
1571 AC_DEFINE(WITH_LIBINTL, 1,
1572 [Define to 1 if libintl is needed for locale functions.]))
1574 # checks for system dependent C++ extensions support
1575 case "$ac_sys_system" in
1576 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1577 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1578 [loadAndInit("", 0, "")],
1579 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1580 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1581 and you want support for AIX C++ shared extension modules.])
1582 AC_MSG_RESULT(yes)],
1583 [AC_MSG_RESULT(no)]);;
1587 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
1588 # BeOS' sockets are stashed in libnet.
1589 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
1590 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
1592 case "$ac_sys_system" in
1594 AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
1598 AC_MSG_CHECKING(for --with-libs)
1600 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1602 AC_MSG_RESULT($withval)
1603 LIBS="$withval $LIBS"
1605 [AC_MSG_RESULT(no)])
1607 # Check for use of the system libffi library
1608 AC_MSG_CHECKING(for --with-system-ffi)
1609 AC_ARG_WITH(system_ffi,
1610 AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library))
1612 if test -z "$with_system_ffi"
1613 then with_system_ffi="no"
1615 AC_MSG_RESULT($with_system_ffi)
1617 # Determine if signalmodule should be used.
1618 AC_SUBST(USE_SIGNAL_MODULE)
1619 AC_SUBST(SIGNAL_OBJS)
1620 AC_MSG_CHECKING(for --with-signal-module)
1621 AC_ARG_WITH(signal-module,
1622 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
1624 if test -z "$with_signal_module"
1625 then with_signal_module="yes"
1627 AC_MSG_RESULT($with_signal_module)
1629 if test "${with_signal_module}" = "yes"; then
1630 USE_SIGNAL_MODULE=""
1633 USE_SIGNAL_MODULE="#"
1634 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1637 # This is used to generate Setup.config
1638 AC_SUBST(USE_THREAD_MODULE)
1639 USE_THREAD_MODULE=""
1641 AC_MSG_CHECKING(for --with-dec-threads)
1643 AC_ARG_WITH(dec-threads,
1644 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1646 AC_MSG_RESULT($withval)
1648 if test "${with_thread+set}" != set; then
1649 with_thread="$withval";
1651 [AC_MSG_RESULT(no)])
1653 # Templates for things AC_DEFINEd more than once.
1654 # For a single AC_DEFINE, no template is needed.
1655 AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1656 AH_TEMPLATE(_REENTRANT,
1657 [Define to force use of thread-safe errno, h_errno, and other functions])
1658 AH_TEMPLATE(WITH_THREAD,
1659 [Define if you want to compile in rudimentary thread support])
1661 AC_MSG_CHECKING(for --with-threads)
1662 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1663 AC_ARG_WITH(threads,
1664 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
1666 # --with-thread is deprecated, but check for it anyway
1667 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1669 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1670 [with_threads=$with_thread])
1672 if test -z "$with_threads"
1673 then with_threads="yes"
1675 AC_MSG_RESULT($with_threads)
1678 if test "$with_threads" = "no"
1680 USE_THREAD_MODULE="#"
1681 elif test "$ac_cv_pthread_is_default" = yes
1683 AC_DEFINE(WITH_THREAD)
1684 # Defining _REENTRANT on system with POSIX threads should not hurt.
1685 AC_DEFINE(_REENTRANT)
1687 THREADOBJ="Python/thread.o"
1688 elif test "$ac_cv_kpthread" = "yes"
1691 if test "$ac_cv_cxx_thread" = "yes"; then
1692 CXX="$CXX -Kpthread"
1694 AC_DEFINE(WITH_THREAD)
1696 THREADOBJ="Python/thread.o"
1697 elif test "$ac_cv_kthread" = "yes"
1700 if test "$ac_cv_cxx_thread" = "yes"; then
1703 AC_DEFINE(WITH_THREAD)
1705 THREADOBJ="Python/thread.o"
1706 elif test "$ac_cv_pthread" = "yes"
1709 if test "$ac_cv_cxx_thread" = "yes"; then
1712 AC_DEFINE(WITH_THREAD)
1714 THREADOBJ="Python/thread.o"
1716 if test ! -z "$with_threads" -a -d "$with_threads"
1717 then LDFLAGS="$LDFLAGS -L$with_threads"
1719 if test ! -z "$withval" -a -d "$withval"
1720 then LDFLAGS="$LDFLAGS -L$withval"
1723 # According to the POSIX spec, a pthreads implementation must
1724 # define _POSIX_THREADS in unistd.h. Some apparently don't
1725 # (e.g. gnu pth with pthread emulation)
1726 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
1730 #ifdef _POSIX_THREADS
1733 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
1734 AC_MSG_RESULT($unistd_defines_pthreads)
1736 AC_DEFINE(_REENTRANT)
1737 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
1738 AC_DEFINE(C_THREADS)
1739 AC_DEFINE(HURD_C_THREADS, 1,
1740 [Define if you are using Mach cthreads directly under /include])
1741 LIBS="$LIBS -lthreads"
1742 THREADOBJ="Python/thread.o"],[
1743 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
1744 AC_DEFINE(C_THREADS)
1745 AC_DEFINE(MACH_C_THREADS, 1,
1746 [Define if you are using Mach cthreads under mach /])
1747 THREADOBJ="Python/thread.o"],[
1748 AC_MSG_CHECKING(for --with-pth)
1750 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
1751 [AC_MSG_RESULT($withval)
1752 AC_DEFINE([WITH_THREAD])
1753 AC_DEFINE([HAVE_PTH], 1,
1754 [Define if you have GNU PTH threads.])
1756 THREADOBJ="Python/thread.o"],
1759 # Just looking for pthread_create in libpthread is not enough:
1760 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
1761 # So we really have to include pthread.h, and then link.
1763 LIBS="$LIBS -lpthread"
1764 AC_MSG_CHECKING([for pthread_create in -lpthread])
1765 AC_TRY_LINK([#include <pthread.h>
1767 void * start_routine (void *arg) { exit (0); }], [
1768 pthread_create (NULL, NULL, start_routine, NULL)], [
1770 AC_DEFINE(WITH_THREAD)
1772 THREADOBJ="Python/thread.o"],[
1774 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
1776 THREADOBJ="Python/thread.o"],[
1777 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
1778 AC_DEFINE(ATHEOS_THREADS, 1,
1779 [Define this if you have AtheOS threads.])
1780 THREADOBJ="Python/thread.o"],[
1781 AC_CHECK_HEADER(kernel/OS.h, [AC_DEFINE(WITH_THREAD)
1782 AC_DEFINE(BEOS_THREADS, 1,
1783 [Define this if you have BeOS threads.])
1784 THREADOBJ="Python/thread.o"],[
1785 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
1787 LIBS="$LIBS -lpthreads"
1788 THREADOBJ="Python/thread.o"], [
1789 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
1792 THREADOBJ="Python/thread.o"], [
1793 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
1795 LIBS="$LIBS -lpthread"
1796 THREADOBJ="Python/thread.o"], [
1797 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
1800 THREADOBJ="Python/thread.o"],[
1801 USE_THREAD_MODULE="#"])
1802 ])])])])])])])])])])
1804 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
1806 THREADOBJ="Python/thread.o"
1807 USE_THREAD_MODULE=""])
1809 if test "$posix_threads" != "yes"; then
1810 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
1811 LIBS="$LIBS -lthread"
1812 THREADOBJ="Python/thread.o"
1813 USE_THREAD_MODULE=""])
1816 if test "$USE_THREAD_MODULE" != "#"
1818 # If the above checks didn't disable threads, (at least) OSF1
1819 # needs this '-threads' argument during linking.
1820 case $ac_sys_system in
1821 OSF1) LDLAST=-threads;;
1826 if test "$posix_threads" = "yes"; then
1827 if test "$unistd_defines_pthreads" = "no"; then
1828 AC_DEFINE(_POSIX_THREADS, 1,
1829 [Define if you have POSIX threads,
1830 and your system does not define that.])
1833 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
1834 case $ac_sys_system/$ac_sys_release in
1835 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
1836 Defined for Solaris 2.6 bug in pthread header.)
1838 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
1839 Define if the Posix semaphores do not work on your system)
1843 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
1844 AC_CACHE_VAL(ac_cv_pthread_system_supported,
1845 [AC_TRY_RUN([#include <pthread.h>
1846 void *foo(void *parm) {
1850 pthread_attr_t attr;
1852 if (pthread_attr_init(&attr)) exit(-1);
1853 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
1854 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
1857 ac_cv_pthread_system_supported=yes,
1858 ac_cv_pthread_system_supported=no,
1859 ac_cv_pthread_system_supported=no)
1861 AC_MSG_RESULT($ac_cv_pthread_system_supported)
1862 if test "$ac_cv_pthread_system_supported" = "yes"; then
1863 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
1865 AC_CHECK_FUNCS(pthread_sigmask,
1866 [case $ac_sys_system in
1868 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
1869 [Define if pthread_sigmask() does not work on your system.])
1875 # Check for enable-ipv6
1876 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
1877 AC_MSG_CHECKING([if --enable-ipv6 is specified])
1879 [ --enable-ipv6 Enable ipv6 (with ipv4) support
1880 --disable-ipv6 Disable ipv6 support],
1881 [ case "$enableval" in
1886 *) AC_MSG_RESULT(yes)
1887 AC_DEFINE(ENABLE_IPV6)
1893 dnl the check does not work on cross compilation case...
1894 AC_TRY_RUN([ /* AF_INET6 available check */
1895 #include <sys/types.h>
1896 #include <sys/socket.h>
1899 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
1913 if test "$ipv6" = "yes"; then
1914 AC_MSG_CHECKING(if RFC2553 API is available)
1915 AC_TRY_COMPILE([#include <sys/types.h>
1916 #include <netinet/in.h>],
1917 [struct sockaddr_in6 x;
1921 AC_MSG_RESULT(no, IPv6 disabled)
1925 if test "$ipv6" = "yes"; then
1926 AC_DEFINE(ENABLE_IPV6)
1934 if test "$ipv6" = "yes"; then
1935 AC_MSG_CHECKING([ipv6 stack type])
1936 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
1940 dnl http://www.kame.net/
1942 #include <netinet/in.h>
1943 #ifdef IPV6_INRIA_VERSION
1949 dnl http://www.kame.net/
1951 #include <netinet/in.h>
1957 ipv6libdir=/usr/local/v6/lib
1961 dnl http://www.v6.linux.or.jp/
1963 #include <features.h>
1964 #if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
1971 dnl http://www.v6.linux.or.jp/
1972 if test -d /usr/inet6; then
1975 ipv6libdir=/usr/inet6/lib
1976 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
1980 if test -f /etc/netconfig; then
1981 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
1989 #include <sys/param.h>
1990 #ifdef _TOSHIBA_INET6
1995 ipv6libdir=/usr/local/v6/lib])
1999 #include </usr/local/v6/include/sys/v6config.h>
2005 ipv6libdir=/usr/local/v6/lib;
2006 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
2010 #include <sys/param.h>
2011 #ifdef _ZETA_MINAMI_INET6
2016 ipv6libdir=/usr/local/v6/lib])
2019 if test "$ipv6type" != "unknown"; then
2023 AC_MSG_RESULT($ipv6type)
2026 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
2027 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
2028 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
2029 echo "using lib$ipv6lib"
2031 if test $ipv6trylibc = "yes"; then
2034 echo 'Fatal: no $ipv6lib library found. cannot continue.'
2035 echo "You need to fetch lib$ipv6lib.a from appropriate"
2036 echo 'ipv6 kit and compile beforehand.'
2042 # Check for --with-doc-strings
2043 AC_MSG_CHECKING(for --with-doc-strings)
2044 AC_ARG_WITH(doc-strings,
2045 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
2047 if test -z "$with_doc_strings"
2048 then with_doc_strings="yes"
2050 if test "$with_doc_strings" != "no"
2052 AC_DEFINE(WITH_DOC_STRINGS, 1,
2053 [Define if you want documentation strings in extension modules])
2055 AC_MSG_RESULT($with_doc_strings)
2057 # Check for Python-specific malloc support
2058 AC_MSG_CHECKING(for --with-tsc)
2060 [ --with(out)-tsc enable/disable timestamp counter profile], [
2061 if test "$withval" != no
2063 AC_DEFINE(WITH_TSC, 1,
2064 [Define to profile with the Pentium timestamp counter])
2066 else AC_MSG_RESULT(no)
2068 [AC_MSG_RESULT(no)])
2070 # Check for Python-specific malloc support
2071 AC_MSG_CHECKING(for --with-pymalloc)
2072 AC_ARG_WITH(pymalloc,
2073 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
2075 if test -z "$with_pymalloc"
2076 then with_pymalloc="yes"
2078 if test "$with_pymalloc" != "no"
2080 AC_DEFINE(WITH_PYMALLOC, 1,
2081 [Define if you want to compile in Python-specific mallocs])
2083 AC_MSG_RESULT($with_pymalloc)
2085 # Check for --with-wctype-functions
2086 AC_MSG_CHECKING(for --with-wctype-functions)
2087 AC_ARG_WITH(wctype-functions,
2088 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
2090 if test "$withval" != no
2092 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2093 [Define if you want wctype.h functions to be used instead of the
2094 one supplied by Python itself. (see Include/unicodectype.h).])
2096 else AC_MSG_RESULT(no)
2098 [AC_MSG_RESULT(no)])
2100 # -I${DLINCLDIR} is added to the compile rule for importdl.o
2104 # the dlopen() function means we might want to use dynload_shlib.o. some
2105 # platforms, such as AIX, have dlopen(), but don't want to use it.
2106 AC_CHECK_FUNCS(dlopen)
2108 # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2109 # loading of modules.
2110 AC_SUBST(DYNLOADFILE)
2111 AC_MSG_CHECKING(DYNLOADFILE)
2112 if test -z "$DYNLOADFILE"
2114 case $ac_sys_system/$ac_sys_release in
2115 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2116 if test "$ac_cv_func_dlopen" = yes
2117 then DYNLOADFILE="dynload_shlib.o"
2118 else DYNLOADFILE="dynload_aix.o"
2121 BeOS*) DYNLOADFILE="dynload_beos.o";;
2122 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
2123 # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
2124 Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
2125 atheos*) DYNLOADFILE="dynload_atheos.o";;
2127 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2128 # out any dynamic loading
2129 if test "$ac_cv_func_dlopen" = yes
2130 then DYNLOADFILE="dynload_shlib.o"
2131 else DYNLOADFILE="dynload_stub.o"
2136 AC_MSG_RESULT($DYNLOADFILE)
2137 if test "$DYNLOADFILE" != "dynload_stub.o"
2139 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2140 [Defined when any dynamic module loading is enabled.])
2143 # MACHDEP_OBJS can be set to platform-specific object files needed by Python
2145 AC_SUBST(MACHDEP_OBJS)
2146 AC_MSG_CHECKING(MACHDEP_OBJS)
2147 if test -z "$MACHDEP_OBJS"
2149 MACHDEP_OBJS=$extra_machdep_objs
2151 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
2153 AC_MSG_RESULT(MACHDEP_OBJS)
2155 # checks for library functions
2156 AC_CHECK_FUNCS(alarm bind_textdomain_codeset chown clock confstr ctermid \
2157 execv fork fpathconf ftime ftruncate \
2158 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
2159 getpriority getpwent getspnam getspent getsid getwd \
2160 kill killpg lchown lstat mkfifo mknod mktime \
2161 mremap nice pathconf pause plock poll pthread_init \
2162 putenv readlink realpath \
2163 select setegid seteuid setgid \
2164 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
2165 sigaction siginterrupt sigrelse strftime \
2166 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
2167 truncate uname unsetenv utimes waitpid wait3 wait4 wcscoll _getpty)
2169 # For some functions, having a definition is not sufficient, since
2170 # we want to take their address.
2171 AC_MSG_CHECKING(for chroot)
2172 AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2173 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2177 AC_MSG_CHECKING(for link)
2178 AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2179 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2183 AC_MSG_CHECKING(for symlink)
2184 AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2185 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2189 AC_MSG_CHECKING(for fchdir)
2190 AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2191 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2195 AC_MSG_CHECKING(for fsync)
2196 AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
2197 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
2201 AC_MSG_CHECKING(for fdatasync)
2202 AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2203 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2208 # On some systems (eg. FreeBSD 5), we would find a definition of the
2209 # functions ctermid_r, setgroups in the library, but no prototype
2210 # (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2211 # address to avoid compiler warnings and potential miscompilations
2212 # because of the missing prototypes.
2214 AC_MSG_CHECKING(for ctermid_r)
2216 #include "confdefs.h"
2218 ], void* p = ctermid_r,
2219 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2224 AC_MSG_CHECKING(for flock)
2226 #include "confdefs.h"
2227 #include <sys/file.h>
2229 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2234 AC_MSG_CHECKING(for getpagesize)
2236 #include "confdefs.h"
2238 ], void* p = getpagesize,
2239 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2245 AC_CHECK_PROGS(TRUE, true, /bin/true)
2247 dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2248 dnl On others, they are in the C library, so we to take no action
2249 AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
2250 AC_CHECK_LIB(resolv, inet_aton)
2253 AC_MSG_CHECKING(for hstrerror)
2255 #include "confdefs.h"
2257 ], void* p = hstrerror; hstrerror(0),
2258 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2263 AC_MSG_CHECKING(for inet_aton)
2265 #include "confdefs.h"
2266 #include <sys/types.h>
2267 #include <sys/socket.h>
2268 #include <netinet/in.h>
2269 #include <arpa/inet.h>
2270 ], void* p = inet_aton;inet_aton(0,0),
2271 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2276 AC_MSG_CHECKING(for inet_pton)
2278 #include "confdefs.h"
2279 #include <sys/types.h>
2280 #include <sys/socket.h>
2281 #include <netinet/in.h>
2282 #include <arpa/inet.h>
2283 ], void* p = inet_pton,
2284 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2289 # On some systems, setgroups is in unistd.h, on others, in grp.h
2290 AC_MSG_CHECKING(for setgroups)
2292 #include "confdefs.h"
2298 void* p = setgroups,
2299 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2304 # check for openpty and forkpty
2306 AC_CHECK_FUNCS(openpty,,
2307 AC_CHECK_LIB(util,openpty,
2308 [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"],
2309 AC_CHECK_LIB(bsd,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lbsd"])
2312 AC_CHECK_FUNCS(forkpty,,
2313 AC_CHECK_LIB(util,forkpty,
2314 [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"],
2315 AC_CHECK_LIB(bsd,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lbsd"])
2319 # check for long file support functions
2320 AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2322 AC_REPLACE_FUNCS(dup2 getcwd strdup strerror memmove)
2323 AC_CHECK_FUNCS(getpgrp,
2324 AC_TRY_COMPILE([#include <unistd.h>],
2326 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2327 [Define if getpgrp() must be called as getpgrp(0).])
2330 AC_CHECK_FUNCS(setpgrp,
2331 AC_TRY_COMPILE([#include <unistd.h>],
2333 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2334 [Define if setpgrp() must be called as setpgrp(0, 0).])
2337 AC_CHECK_FUNCS(gettimeofday,
2338 AC_TRY_COMPILE([#include <sys/time.h>],
2339 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2340 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2341 [Define if gettimeofday() does not have second (timezone) argument
2342 This is the case on Motorola V4 (R40V4.2)])
2346 AC_MSG_CHECKING(for major, minor, and makedev)
2348 #if defined(MAJOR_IN_MKDEV)
2349 #include <sys/mkdev.h>
2350 #elif defined(MAJOR_IN_SYSMACROS)
2351 #include <sys/sysmacros.h>
2353 #include <sys/types.h>
2356 makedev(major(0),minor(0));
2358 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2359 [Define to 1 if you have the device macros.])
2365 # On OSF/1 V5.1, getaddrinfo is available, but a define
2366 # for [no]getaddrinfo in netdb.h.
2367 AC_MSG_CHECKING(for getaddrinfo)
2369 #include <sys/types.h>
2370 #include <sys/socket.h>
2374 getaddrinfo(NULL, NULL, NULL, NULL);
2377 AC_MSG_CHECKING(getaddrinfo bug)
2379 #include <sys/types.h>
2382 #include <sys/socket.h>
2383 #include <netinet/in.h>
2387 int passive, gaierr, inet4 = 0, inet6 = 0;
2388 struct addrinfo hints, *ai, *aitop;
2389 char straddr[INET6_ADDRSTRLEN], strport[16];
2391 for (passive = 0; passive <= 1; passive++) {
2392 memset(&hints, 0, sizeof(hints));
2393 hints.ai_family = AF_UNSPEC;
2394 hints.ai_flags = passive ? AI_PASSIVE : 0;
2395 hints.ai_socktype = SOCK_STREAM;
2396 hints.ai_protocol = IPPROTO_TCP;
2397 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2398 (void)gai_strerror(gaierr);
2401 for (ai = aitop; ai; ai = ai->ai_next) {
2402 if (ai->ai_addr == NULL ||
2403 ai->ai_addrlen == 0 ||
2404 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2405 straddr, sizeof(straddr), strport, sizeof(strport),
2406 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2409 switch (ai->ai_family) {
2411 if (strcmp(strport, "54321") != 0) {
2415 if (strcmp(straddr, "0.0.0.0") != 0) {
2419 if (strcmp(straddr, "127.0.0.1") != 0) {
2426 if (strcmp(strport, "54321") != 0) {
2430 if (strcmp(straddr, "::") != 0) {
2434 if (strcmp(straddr, "::1") != 0) {
2444 /* another family support? */
2450 if (!(inet4 == 0 || inet4 == 2))
2452 if (!(inet6 == 0 || inet6 == 2))
2456 freeaddrinfo(aitop);
2461 freeaddrinfo(aitop);
2466 buggygetaddrinfo=no,
2467 AC_MSG_RESULT(buggy)
2468 buggygetaddrinfo=yes,
2469 AC_MSG_RESULT(buggy)
2470 buggygetaddrinfo=yes)], [
2472 buggygetaddrinfo=yes
2475 if test "$buggygetaddrinfo" = "yes"; then
2476 if test "$ipv6" = "yes"; then
2477 echo 'Fatal: You must get working getaddrinfo() function.'
2478 echo ' or you can specify "--disable-ipv6"'.
2482 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
2484 AC_CHECK_FUNCS(getnameinfo)
2486 # checks for structures
2490 AC_CHECK_MEMBERS([struct stat.st_rdev])
2491 AC_CHECK_MEMBERS([struct stat.st_blksize])
2492 AC_CHECK_MEMBERS([struct stat.st_flags])
2493 AC_CHECK_MEMBERS([struct stat.st_gen])
2494 AC_CHECK_MEMBERS([struct stat.st_birthtime])
2497 AC_MSG_CHECKING(for time.h that defines altzone)
2498 AC_CACHE_VAL(ac_cv_header_time_altzone,
2499 [AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2500 ac_cv_header_time_altzone=yes,
2501 ac_cv_header_time_altzone=no)])
2502 AC_MSG_RESULT($ac_cv_header_time_altzone)
2503 if test $ac_cv_header_time_altzone = yes; then
2504 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
2508 AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
2510 #include <sys/types.h>
2511 #include <sys/select.h>
2512 #include <sys/time.h>
2514 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2515 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2516 (which you can't on SCO ODT 3.0).])
2519 AC_MSG_RESULT($was_it_defined)
2521 AC_MSG_CHECKING(for addrinfo)
2522 AC_CACHE_VAL(ac_cv_struct_addrinfo,
2524 # include <netdb.h>],
2525 [struct addrinfo a],
2526 ac_cv_struct_addrinfo=yes,
2527 ac_cv_struct_addrinfo=no))
2528 AC_MSG_RESULT($ac_cv_struct_addrinfo)
2529 if test $ac_cv_struct_addrinfo = yes; then
2530 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
2533 AC_MSG_CHECKING(for sockaddr_storage)
2534 AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2536 # include <sys/types.h>
2537 # include <sys/socket.h>],
2538 [struct sockaddr_storage s],
2539 ac_cv_struct_sockaddr_storage=yes,
2540 ac_cv_struct_sockaddr_storage=no))
2541 AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2542 if test $ac_cv_struct_sockaddr_storage = yes; then
2543 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
2546 # checks for compiler characteristics
2552 AC_MSG_CHECKING(for working volatile)
2553 AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2554 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2556 AC_MSG_RESULT($works)
2559 AC_MSG_CHECKING(for working signed char)
2560 AC_TRY_COMPILE([], [signed char c;], works=yes,
2561 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2563 AC_MSG_RESULT($works)
2566 AC_MSG_CHECKING(for prototypes)
2567 AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2568 AC_DEFINE(HAVE_PROTOTYPES, 1,
2569 [Define if your compiler supports function prototype])
2572 AC_MSG_RESULT($have_prototypes)
2575 AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
2578 int foo(int x, ...) {
2586 ], [return foo(10, "", 3.14);], [
2587 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2588 [Define if your compiler supports variable length function prototypes
2589 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2592 AC_MSG_RESULT($works)
2594 # check for socketpair
2595 AC_MSG_CHECKING(for socketpair)
2597 #include <sys/types.h>
2598 #include <sys/socket.h>
2599 ], void *x=socketpair,
2600 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
2605 # check if sockaddr has sa_len member
2606 AC_MSG_CHECKING(if sockaddr has sa_len member)
2607 AC_TRY_COMPILE([#include <sys/types.h>
2608 #include <sys/socket.h>],
2612 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
2616 AC_MSG_CHECKING(whether va_list is an array)
2618 #ifdef HAVE_STDARG_PROTOTYPES
2621 #include <varargs.h>
2623 ], [va_list list1, list2; list1 = list2;], , [
2624 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
2625 va_list_is_array=yes
2627 AC_MSG_RESULT($va_list_is_array)
2629 # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
2630 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
2631 [Define this if you have some version of gethostbyname_r()])
2633 AC_CHECK_FUNC(gethostbyname_r, [
2634 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2635 AC_MSG_CHECKING([gethostbyname_r with 6 args])
2637 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
2642 struct hostent *he, *res;
2647 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
2649 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2650 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
2651 [Define this if you have the 6-arg version of gethostbyname_r().])
2655 AC_MSG_CHECKING([gethostbyname_r with 5 args])
2665 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
2667 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2668 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
2669 [Define this if you have the 5-arg version of gethostbyname_r().])
2673 AC_MSG_CHECKING([gethostbyname_r with 3 args])
2679 struct hostent_data data;
2681 (void) gethostbyname_r(name, he, &data);
2683 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2684 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
2685 [Define this if you have the 3-arg version of gethostbyname_r().])
2694 AC_CHECK_FUNCS(gethostbyname)
2696 AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
2697 AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
2698 AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
2699 AC_SUBST(HAVE_GETHOSTBYNAME_R)
2700 AC_SUBST(HAVE_GETHOSTBYNAME)
2702 # checks for system services
2705 # Linux requires this for correct f.p. operations
2706 AC_CHECK_FUNC(__fpu_control,
2708 [AC_CHECK_LIB(ieee, __fpu_control)
2711 # Check for --with-fpectl
2712 AC_MSG_CHECKING(for --with-fpectl)
2714 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
2716 if test "$withval" != no
2718 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
2719 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
2721 else AC_MSG_RESULT(no)
2723 [AC_MSG_RESULT(no)])
2725 # check for --with-libm=...
2727 case $ac_sys_system in
2732 AC_MSG_CHECKING(for --with-libm=STRING)
2734 AC_HELP_STRING(--with-libm=STRING, math library),
2736 if test "$withval" = no
2738 AC_MSG_RESULT(force LIBM empty)
2739 elif test "$withval" != yes
2741 AC_MSG_RESULT(set LIBM="$withval")
2742 else AC_MSG_ERROR([proper usage is --with-libm=STRING])
2744 [AC_MSG_RESULT(default LIBM="$LIBM")])
2746 # check for --with-libc=...
2748 AC_MSG_CHECKING(for --with-libc=STRING)
2750 AC_HELP_STRING(--with-libc=STRING, C library),
2752 if test "$withval" = no
2754 AC_MSG_RESULT(force LIBC empty)
2755 elif test "$withval" != yes
2757 AC_MSG_RESULT(set LIBC="$withval")
2758 else AC_MSG_ERROR([proper usage is --with-libc=STRING])
2760 [AC_MSG_RESULT(default LIBC="$LIBC")])
2762 # check for hypot() in math library
2765 AC_REPLACE_FUNCS(hypot)
2769 AC_CHECK_HEADER(wchar.h, [
2770 AC_DEFINE(HAVE_WCHAR_H, 1,
2771 [Define if the compiler provides a wchar.h header file.])
2777 # determine wchar_t size
2778 if test "$wchar_h" = yes
2780 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
2783 AC_MSG_CHECKING(for UCS-4 tcl)
2787 #if TCL_UTF_MAX != 6
2788 # error "NOT UCS4_TCL"
2790 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
2793 AC_MSG_RESULT($have_ucs4_tcl)
2795 # check whether wchar_t is signed or not
2796 if test "$wchar_h" = yes
2798 # check whether wchar_t is signed or not
2799 AC_MSG_CHECKING(whether wchar_t is signed)
2800 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
2805 /* Success: exit code 0 */
2806 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1);
2809 ac_cv_wchar_t_signed=yes,
2810 ac_cv_wchar_t_signed=no,
2811 ac_cv_wchar_t_signed=yes)])
2812 AC_MSG_RESULT($ac_cv_wchar_t_signed)
2815 AC_MSG_CHECKING(what type to use for unicode)
2816 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
2817 AC_ARG_ENABLE(unicode,
2818 AC_HELP_STRING(--enable-unicode@<:@=ucs@<:@24@:>@@:>@, Enable Unicode strings (default is yes)),
2820 [enable_unicode=yes])
2822 if test $enable_unicode = yes
2824 # Without any arguments, Py_UNICODE defaults to two-byte mode
2825 case "$have_ucs4_tcl" in
2826 yes) enable_unicode="ucs4"
2828 *) enable_unicode="ucs2"
2833 AH_TEMPLATE(Py_UNICODE_SIZE,
2834 [Define as the size of the unicode type.])
2835 case "$enable_unicode" in
2836 ucs2) unicode_size="2"
2837 AC_DEFINE(Py_UNICODE_SIZE,2)
2839 ucs4) unicode_size="4"
2840 AC_DEFINE(Py_UNICODE_SIZE,4)
2844 AH_TEMPLATE(PY_UNICODE_TYPE,
2845 [Define as the integral type used for Unicode representation.])
2847 AC_SUBST(UNICODE_OBJS)
2848 if test "$enable_unicode" = "no"
2851 AC_MSG_RESULT(not used)
2853 UNICODE_OBJS="Objects/unicodeobject.o Objects/unicodectype.o"
2854 AC_DEFINE(Py_USING_UNICODE, 1,
2855 [Define if you want to have a Unicode type.])
2857 # wchar_t is only usable if it maps to an unsigned type
2858 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
2859 -a "$ac_cv_wchar_t_signed" = "no"
2861 PY_UNICODE_TYPE="wchar_t"
2862 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
2863 [Define if you have a useable wchar_t type defined in wchar.h; useable
2864 means wchar_t must be an unsigned type with at least 16 bits. (see
2865 Include/unicodeobject.h).])
2866 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
2867 elif test "$ac_cv_sizeof_short" = "$unicode_size"
2869 PY_UNICODE_TYPE="unsigned short"
2870 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
2871 elif test "$ac_cv_sizeof_long" = "$unicode_size"
2873 PY_UNICODE_TYPE="unsigned long"
2874 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
2876 PY_UNICODE_TYPE="no type found"
2878 AC_MSG_RESULT($PY_UNICODE_TYPE)
2881 # check for endianness
2884 # Check whether right shifting a negative integer extends the sign bit
2885 # or fills with zeros (like the Cray J90, according to Tim Peters).
2886 AC_MSG_CHECKING(whether right shift extends the sign bit)
2887 AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
2891 exit(((-1)>>3 == -1) ? 0 : 1);
2894 ac_cv_rshift_extends_sign=yes,
2895 ac_cv_rshift_extends_sign=no,
2896 ac_cv_rshift_extends_sign=yes)])
2897 AC_MSG_RESULT($ac_cv_rshift_extends_sign)
2898 if test "$ac_cv_rshift_extends_sign" = no
2900 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
2901 [Define if i>>j for signed int i does not extend the sign bit
2905 # check for getc_unlocked and related locking functions
2906 AC_MSG_CHECKING(for getc_unlocked() and friends)
2907 AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
2908 AC_TRY_LINK([#include <stdio.h>],[
2909 FILE *f = fopen("/dev/null", "r");
2913 ], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
2914 AC_MSG_RESULT($ac_cv_have_getc_unlocked)
2915 if test "$ac_cv_have_getc_unlocked" = yes
2917 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
2918 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
2921 # check where readline lives
2922 # save the value of LIBS so we don't actually link Python with readline
2923 LIBS_no_readline=$LIBS
2924 AC_CHECK_LIB(readline, readline)
2925 if test "$ac_cv_have_readline_readline" = no
2927 AC_CHECK_LIB(termcap, readline)
2930 # check for readline 2.1
2931 AC_CHECK_LIB(readline, rl_callback_handler_install,
2932 AC_DEFINE(HAVE_RL_CALLBACK, 1,
2933 [Define if you have readline 2.1]), , )
2935 # check for readline 2.2
2936 AC_TRY_CPP([#include <readline/readline.h>],
2937 have_readline=yes, have_readline=no)
2938 if test $have_readline = yes
2940 AC_EGREP_HEADER([extern int rl_completion_append_character;],
2941 [readline/readline.h],
2942 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
2943 [Define if you have readline 2.2]), )
2946 # check for readline 4.0
2947 AC_CHECK_LIB(readline, rl_pre_input_hook,
2948 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
2949 [Define if you have readline 4.0]), , )
2951 # check for readline 4.2
2952 AC_CHECK_LIB(readline, rl_completion_matches,
2953 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
2954 [Define if you have readline 4.2]), , )
2956 # also in readline 4.2
2957 AC_TRY_CPP([#include <readline/readline.h>],
2958 have_readline=yes, have_readline=no)
2959 if test $have_readline = yes
2961 AC_EGREP_HEADER([extern int rl_catch_signals;],
2962 [readline/readline.h],
2963 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
2964 [Define if you can turn off readline's signal handling.]), )
2967 # End of readline checks: restore LIBS
2968 LIBS=$LIBS_no_readline
2970 AC_MSG_CHECKING(for broken nice())
2971 AC_CACHE_VAL(ac_cv_broken_nice, [
2976 if (val1 != -1 && val1 == nice(2))
2981 ac_cv_broken_nice=yes,
2982 ac_cv_broken_nice=no,
2983 ac_cv_broken_nice=no)])
2984 AC_MSG_RESULT($ac_cv_broken_nice)
2985 if test "$ac_cv_broken_nice" = yes
2987 AC_DEFINE(HAVE_BROKEN_NICE, 1,
2988 [Define if nice() returns success/failure instead of the new priority.])
2991 AC_MSG_CHECKING(for broken poll())
2997 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
3001 int poll_test = poll (&poll_struct, 1, 0);
3007 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
3017 ac_cv_broken_poll=yes,
3018 ac_cv_broken_poll=no,
3019 ac_cv_broken_poll=no)
3020 AC_MSG_RESULT($ac_cv_broken_poll)
3021 if test "$ac_cv_broken_poll" = yes
3023 AC_DEFINE(HAVE_BROKEN_POLL, 1,
3024 [Define if poll() sets errno on invalid file descriptors.])
3027 # Before we can test tzset, we need to check if struct tm has a tm_zone
3028 # (which is not required by ISO C or UNIX spec) and/or if we support
3032 # check tzset(3) exists and works like we expect it to
3033 AC_MSG_CHECKING(for working tzset())
3034 AC_CACHE_VAL(ac_cv_working_tzset, [
3041 extern char *tzname[];
3046 /* Note that we need to ensure that not only does tzset(3)
3047 do 'something' with localtime, but it works as documented
3048 in the library reference and as expected by the test suite.
3049 This includes making sure that tzname is set properly if
3050 tm->tm_zone does not exist since it is the alternative way
3051 of getting timezone info.
3053 Red Hat 6.2 doesn't understand the southern hemisphere
3054 after New Year's Day.
3057 time_t groundhogday = 1044144000; /* GMT-based */
3058 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
3062 if (localtime(&groundhogday)->tm_hour != 0)
3065 /* For UTC, tzname[1] is sometimes "", sometimes " " */
3066 if (strcmp(tzname[0], "UTC") ||
3067 (tzname[1][0] != 0 && tzname[1][0] != ' '))
3071 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
3073 if (localtime(&groundhogday)->tm_hour != 19)
3076 if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT"))
3080 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
3082 if (localtime(&groundhogday)->tm_hour != 11)
3085 if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT"))
3089 #if HAVE_STRUCT_TM_TM_ZONE
3090 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
3092 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
3099 ac_cv_working_tzset=yes,
3100 ac_cv_working_tzset=no,
3101 ac_cv_working_tzset=no)])
3102 AC_MSG_RESULT($ac_cv_working_tzset)
3103 if test "$ac_cv_working_tzset" = yes
3105 AC_DEFINE(HAVE_WORKING_TZSET, 1,
3106 [Define if tzset() actually switches the local timezone in a meaningful way.])
3109 # Look for subsecond timestamps in struct stat
3110 AC_MSG_CHECKING(for tv_nsec in struct stat)
3111 AC_CACHE_VAL(ac_cv_stat_tv_nsec,
3112 AC_TRY_COMPILE([#include <sys/stat.h>], [
3114 st.st_mtim.tv_nsec = 1;
3116 ac_cv_stat_tv_nsec=yes,
3117 ac_cv_stat_tv_nsec=no,
3118 ac_cv_stat_tv_nsec=no))
3119 AC_MSG_RESULT($ac_cv_stat_tv_nsec)
3120 if test "$ac_cv_stat_tv_nsec" = yes
3122 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
3123 [Define if you have struct stat.st_mtim.tv_nsec])
3126 # Look for BSD style subsecond timestamps in struct stat
3127 AC_MSG_CHECKING(for tv_nsec2 in struct stat)
3128 AC_CACHE_VAL(ac_cv_stat_tv_nsec2,
3129 AC_TRY_COMPILE([#include <sys/stat.h>], [
3131 st.st_mtimespec.tv_nsec = 1;
3133 ac_cv_stat_tv_nsec2=yes,
3134 ac_cv_stat_tv_nsec2=no,
3135 ac_cv_stat_tv_nsec2=no))
3136 AC_MSG_RESULT($ac_cv_stat_tv_nsec2)
3137 if test "$ac_cv_stat_tv_nsec2" = yes
3139 AC_DEFINE(HAVE_STAT_TV_NSEC2, 1,
3140 [Define if you have struct stat.st_mtimensec])
3143 # On HP/UX 11.0, mvwdelch is a block with a return statement
3144 AC_MSG_CHECKING(whether mvwdelch is an expression)
3145 AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
3146 AC_TRY_COMPILE([#include <curses.h>], [
3148 rtn = mvwdelch(0,0,0);
3149 ], ac_cv_mvwdelch_is_expression=yes,
3150 ac_cv_mvwdelch_is_expression=no,
3151 ac_cv_mvwdelch_is_expression=yes))
3152 AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
3154 if test "$ac_cv_mvwdelch_is_expression" = yes
3156 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
3157 [Define if mvwdelch in curses.h is an expression.])
3160 AC_MSG_CHECKING(whether WINDOW has _flags)
3161 AC_CACHE_VAL(ac_cv_window_has_flags,
3162 AC_TRY_COMPILE([#include <curses.h>], [
3165 ], ac_cv_window_has_flags=yes,
3166 ac_cv_window_has_flags=no,
3167 ac_cv_window_has_flags=no))
3168 AC_MSG_RESULT($ac_cv_window_has_flags)
3171 if test "$ac_cv_window_has_flags" = yes
3173 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3174 [Define if WINDOW in curses.h offers a field _flags.])
3177 AC_MSG_CHECKING(for /dev/ptmx)
3179 if test -e /dev/ptmx
3182 AC_DEFINE(HAVE_DEV_PTMX, 1,
3183 [Define if we have /dev/ptmx.])
3188 AC_MSG_CHECKING(for /dev/ptc)
3193 AC_DEFINE(HAVE_DEV_PTC, 1,
3194 [Define if we have /dev/ptc.])
3199 AC_CHECK_TYPE(socklen_t,,
3200 AC_DEFINE(socklen_t,int,
3201 Define to `int' if <sys/socket.h> does not define.),[
3202 #ifdef HAVE_SYS_TYPES_H
3203 #include <sys/types.h>
3205 #ifdef HAVE_SYS_SOCKET_H
3206 #include <sys/socket.h>
3210 AC_SUBST(THREADHEADERS)
3212 for h in `(cd $srcdir;echo Python/thread_*.h)`
3214 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3218 SRCDIRS="Parser Grammar Objects Python Modules Mac"
3219 AC_MSG_CHECKING(for build directories)
3220 for dir in $SRCDIRS; do
3221 if test ! -d $dir; then
3227 # generate output files
3228 AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
3231 echo "creating Setup"
3232 if test ! -f Modules/Setup
3234 cp $srcdir/Modules/Setup.dist Modules/Setup
3237 echo "creating Setup.local"
3238 if test ! -f Modules/Setup.local
3240 echo "# Edit this file for local setup changes" >Modules/Setup.local
3243 echo "creating Makefile"
3244 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3245 -s Modules Modules/Setup.config \
3246 Modules/Setup.local Modules/Setup