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)
316 # If the user switches compilers, we can't believe the cache
317 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
319 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
320 (it is also a good idea to do 'make clean' before compiling)])
327 AC_MSG_CHECKING(for --with-cxx-main=<compiler>)
328 AC_ARG_WITH(cxx_main,
329 AC_HELP_STRING([--with-cxx-main=<compiler>],
330 [compile main() and link python executable with C++ compiler]),
336 yes) with_cxx_main=yes
348 AC_MSG_RESULT($with_cxx_main)
354 gcc) AC_PATH_PROG(CXX, [g++], [g++], [notfound]) ;;
355 cc) AC_PATH_PROG(CXX, [c++], [c++], [notfound]) ;;
357 if test "$CXX" = "notfound"
364 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
365 if test "$CXX" = "notfound"
370 if test "$preset_cxx" != "$CXX"
374 By default, distutils will build C++ extension modules with "$CXX".
375 If this is not intended, then set CXX on the configure command line.
380 # checks for UNIX variants that set C preprocessor variables
383 # Check for unsupported systems
384 case $ac_sys_system/$ac_sys_release in
386 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
387 echo See README for details.
392 AC_MSG_CHECKING(for --with-suffix)
394 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
401 AC_MSG_RESULT($EXEEXT)
403 # Test whether we're running on a non-case-sensitive system, in which
404 # case we give a warning if no ext is given
405 AC_SUBST(BUILDEXEEXT)
406 AC_MSG_CHECKING(for case-insensitive build directory)
407 if test ! -d CaseSensitiveTestDir; then
408 mkdir CaseSensitiveTestDir
411 if test -d casesensitivetestdir
419 rmdir CaseSensitiveTestDir
424 gcc) CC="$CC -D_HAVE_BSDI";;
428 case $ac_sys_system in
431 cc|*/cc) CC="$CC -Ae";;
435 cc) CC="$CC -Wl,-Bexport";;
438 # Some functions have a prototype only with that define, e.g. confstr
439 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
445 AC_MSG_CHECKING(LIBRARY)
446 if test -z "$LIBRARY"
448 LIBRARY='libpython$(VERSION).a'
450 AC_MSG_RESULT($LIBRARY)
452 # LDLIBRARY is the name of the library to link against (as opposed to the
453 # name of the library into which to insert object files). BLDLIBRARY is also
454 # the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
455 # is blank as the main program is not linked directly against LDLIBRARY.
456 # LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
457 # systems without shared libraries, LDLIBRARY is the same as LIBRARY
458 # (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
459 # DLLLIBRARY is the shared (i.e., DLL) library.
461 # RUNSHARED is used to run shared python without installed libraries
463 # INSTSONAME is the name of the shared library that will be use to install
464 # on the system - some systems like version suffix, others don't
468 AC_SUBST(LDLIBRARYDIR)
472 BLDLIBRARY='$(LDLIBRARY)'
473 INSTSONAME='$(LDLIBRARY)'
478 # LINKCC is the command that links the python executable -- default is $(CC).
479 # If CXX is set, and if it is needed to link a main function that was
480 # compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
481 # python might then depend on the C++ runtime
482 # This is altered for AIX in order to build the export list before
485 AC_MSG_CHECKING(LINKCC)
488 LINKCC='$(PURIFY) $(MAINCC)'
489 case $ac_sys_system in
492 if test $ac_sys_release -ge 5 -o \
493 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
496 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
498 LINKCC="$LINKCC -L/usr/lib/ia64l64";;
501 AC_MSG_RESULT($LINKCC)
503 AC_MSG_CHECKING(for --enable-shared)
504 AC_ARG_ENABLE(shared,
505 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
507 if test -z "$enable_shared"
509 case $ac_sys_system in
511 enable_shared="yes";;
516 AC_MSG_RESULT($enable_shared)
518 AC_MSG_CHECKING(for --enable-profiling)
519 AC_ARG_ENABLE(profiling,
520 AC_HELP_STRING(--enable-profiling, enable C-level code profiling),
523 AC_TRY_RUN([int main() { return 0; }],
524 ac_enable_profiling="yes",
525 ac_enable_profiling="no",
526 ac_enable_profiling="no")
528 AC_MSG_RESULT($ac_enable_profiling)
530 case "$ac_enable_profiling" in
532 BASECFLAGS="-pg $BASECFLAGS"
533 LDFLAGS="-pg $LDFLAGS"
537 AC_MSG_CHECKING(LDLIBRARY)
539 # MacOSX framework builds need more magic. LDLIBRARY is the dynamic
540 # library that we build, but we do not want to link against it (we
541 # will find it with a -framework option). For this reason there is an
542 # extra variable BLDLIBRARY against which Python and the extension
543 # modules are linked, BLDLIBRARY. This is normally the same as
544 # LDLIBRARY, but empty for MacOSX framework builds.
545 if test "$enable_framework"
547 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
548 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
551 BLDLIBRARY='$(LDLIBRARY)'
554 # Other platforms follow
555 if test $enable_shared = "yes"; then
556 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
557 case $ac_sys_system in
559 LDLIBRARY='libpython$(VERSION).so'
562 LDLIBRARY='libpython$(VERSION).dll.a'
563 DLLLIBRARY='libpython$(VERSION).dll'
566 LDLIBRARY='libpython$(VERSION).so'
567 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
568 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
569 INSTSONAME="$LDLIBRARY".$SOVERSION
571 Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*)
572 LDLIBRARY='libpython$(VERSION).so'
573 BLDLIBRARY='-L. -lpython$(VERSION)'
574 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
575 case $ac_sys_system in
577 SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
580 INSTSONAME="$LDLIBRARY".$SOVERSION
583 LDLIBRARY='libpython$(VERSION).sl'
584 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
585 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
588 LDLIBRARY='libpython$(VERSION).so'
589 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
590 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
593 LDLIBRARY='libpython$(VERSION).so'
594 BLDLIBRARY='-L. -lpython$(VERSION)'
595 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
598 else # shared is disabled
599 case $ac_sys_system in
601 BLDLIBRARY='$(LIBRARY)'
602 LDLIBRARY='libpython$(VERSION).dll.a'
607 AC_MSG_RESULT($LDLIBRARY)
611 AC_CHECK_PROGS(AR, ar aal, ar)
614 AC_CHECK_PROG(SVNVERSION, svnversion, found, not-found)
615 if test $SVNVERSION = found
617 SVNVERSION="svnversion \$(srcdir)"
619 SVNVERSION="echo exported"
624 # install -d does not work on BSDI or HP-UX
625 if test -z "$INSTALL"
627 INSTALL="${srcdir}/install-sh -c"
632 # Not every filesystem supports hard links
634 if test -z "$LN" ; then
635 case $ac_sys_system in
637 CYGWIN*) LN="ln -s";;
638 atheos*) LN="ln -s";;
643 # Check for --with-pydebug
644 AC_MSG_CHECKING(for --with-pydebug)
646 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
648 if test "$withval" != no
650 AC_DEFINE(Py_DEBUG, 1,
651 [Define if you want to build an interpreter with many run-time checks.])
654 else AC_MSG_RESULT(no); Py_DEBUG='false'
658 # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
659 # merged with this chunk of code?
661 # Optimizer/debugger flags
662 # ------------------------
663 # (The following bit of code is complicated enough - please keep things
664 # indented properly. Just pretend you're editing Python code. ;-)
666 # There are two parallel sets of case statements below, one that checks to
667 # see if OPT was set and one that does BASECFLAGS setting based upon
668 # compiler and platform. BASECFLAGS tweaks need to be made even if the
671 # tweak OPT based on compiler and platform, only if the user didn't set
672 # it on the command line
678 if test "$CC" != 'g++' ; then
679 STRICT_PROTO="-Wstrict-prototypes"
681 case $ac_cv_prog_cc_g in
683 if test "$Py_DEBUG" = 'true' ; then
684 # Optimization messes up debuggers, so turn it off for
686 OPT="-g -Wall $STRICT_PROTO"
688 OPT="-g -O3 -Wall $STRICT_PROTO"
692 OPT="-O3 -Wall $STRICT_PROTO"
695 case $ac_sys_system in
696 SCO_SV*) OPT="$OPT -m486 -DSCO5"
706 # The current (beta) Monterey compiler dies with optimizations
707 # XXX what is Monterey? Does it still die w/ -O? Can we get rid of this?
708 case $ac_sys_system in
717 # tweak BASECFLAGS based on compiler and platform
720 # Python violates C99 rules, by casting between incompatible
721 # pointer types. GCC may generate bad code as a result of that,
722 # so use -fno-strict-aliasing if supported.
723 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
725 CC="$CC -fno-strict-aliasing"
726 AC_TRY_RUN([int main() { return 0; }],
727 ac_cv_no_strict_aliasing_ok=yes,
728 ac_cv_no_strict_aliasing_ok=no,
729 ac_cv_no_strict_aliasing_ok=no)
731 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
732 if test $ac_cv_no_strict_aliasing_ok = yes
734 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
736 case $ac_sys_system in
738 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
740 # is there any other compiler on Darwin besides gcc?
742 BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd"
745 BASECFLAGS="$BASECFLAGS -mieee"
751 case $ac_sys_system in
753 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
756 BASECFLAGS="$BASECFLAGS -ieee -std"
759 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
765 if test "$Py_DEBUG" = 'true'; then
771 if test "$ac_arch_flags"
773 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
776 # disable check for icc since it seems to pass, but generates a warning
779 ac_cv_opt_olimit_ok=no
782 AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
783 AC_CACHE_VAL(ac_cv_opt_olimit_ok,
785 CC="$CC -OPT:Olimit=0"
786 AC_TRY_RUN([int main() { return 0; }],
787 ac_cv_opt_olimit_ok=yes,
788 ac_cv_opt_olimit_ok=no,
789 ac_cv_opt_olimit_ok=no)
791 AC_MSG_RESULT($ac_cv_opt_olimit_ok)
792 if test $ac_cv_opt_olimit_ok = yes; then
793 case $ac_sys_system in
794 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
795 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
800 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
804 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
805 AC_CACHE_VAL(ac_cv_olimit_ok,
807 CC="$CC -Olimit 1500"
808 AC_TRY_RUN([int main() { return 0; }],
813 AC_MSG_RESULT($ac_cv_olimit_ok)
814 if test $ac_cv_olimit_ok = yes; then
815 BASECFLAGS="$BASECFLAGS -Olimit 1500"
819 # On some compilers, pthreads are available without further options
820 # (e.g. MacOS X). On some of these systems, the compiler will not
821 # complain if unaccepted options are passed (e.g. gcc on Mac OS X).
822 # So we have to see first whether pthreads are available without
823 # options before we can check whether -Kpthread improves anything.
824 AC_MSG_CHECKING(whether pthreads are available without options)
825 AC_CACHE_VAL(ac_cv_pthread_is_default,
829 void* routine(void* p){return NULL;}
833 if(pthread_create(&p,NULL,routine,NULL)!=0)
835 (void)pthread_detach(p);
840 ac_cv_pthread_is_default=yes
844 ac_cv_pthread_is_default=no,
845 ac_cv_pthread_is_default=no)
847 AC_MSG_RESULT($ac_cv_pthread_is_default)
850 if test $ac_cv_pthread_is_default = yes
854 # -Kpthread, if available, provides the right #defines
855 # and linker options to make pthread_create available
856 # Some compilers won't report that they do not support -Kpthread,
857 # so we need to run a program to see whether it really made the
858 # function available.
859 AC_MSG_CHECKING(whether $CC accepts -Kpthread)
860 AC_CACHE_VAL(ac_cv_kpthread,
866 void* routine(void* p){return NULL;}
870 if(pthread_create(&p,NULL,routine,NULL)!=0)
872 (void)pthread_detach(p);
880 AC_MSG_RESULT($ac_cv_kpthread)
883 if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
885 # -Kthread, if available, provides the right #defines
886 # and linker options to make pthread_create available
887 # Some compilers won't report that they do not support -Kthread,
888 # so we need to run a program to see whether it really made the
889 # function available.
890 AC_MSG_CHECKING(whether $CC accepts -Kthread)
891 AC_CACHE_VAL(ac_cv_kthread,
897 void* routine(void* p){return NULL;}
901 if(pthread_create(&p,NULL,routine,NULL)!=0)
903 (void)pthread_detach(p);
911 AC_MSG_RESULT($ac_cv_kthread)
914 if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
916 # -pthread, if available, provides the right #defines
917 # and linker options to make pthread_create available
918 # Some compilers won't report that they do not support -pthread,
919 # so we need to run a program to see whether it really made the
920 # function available.
921 AC_MSG_CHECKING(whether $CC accepts -pthread)
922 AC_CACHE_VAL(ac_cv_thread,
928 void* routine(void* p){return NULL;}
932 if(pthread_create(&p,NULL,routine,NULL)!=0)
934 (void)pthread_detach(p);
942 AC_MSG_RESULT($ac_cv_pthread)
945 # If we have set a CC compiler flag for thread support then
946 # check if it works for CXX, too.
950 AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
953 if test "$ac_cv_kpthread" = "yes"
957 elif test "$ac_cv_kthread" = "yes"
961 elif test "$ac_cv_pthread" = "yes"
967 if test $ac_cv_cxx_thread = yes
969 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
970 $CXX -c conftest.$ac_ext 2>&5
971 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
972 && test -s conftest$ac_exeext && ./conftest$ac_exeext
980 AC_MSG_RESULT($ac_cv_cxx_thread)
984 dnl # check for ANSI or K&R ("traditional") preprocessor
985 dnl AC_MSG_CHECKING(for C preprocessor type)
987 dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
989 dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
990 dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
991 dnl AC_MSG_RESULT($cpp_type)
993 # checks for header files
995 AC_CHECK_HEADERS(asm/types.h curses.h dlfcn.h fcntl.h grp.h \
996 shadow.h langinfo.h libintl.h ncurses.h poll.h pthread.h \
997 stropts.h termios.h thread.h \
999 sys/audioio.h sys/bsdtty.h sys/file.h sys/loadavg.h sys/lock.h sys/mkdev.h \
1001 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/time.h sys/times.h \
1002 sys/un.h sys/utsname.h sys/wait.h pty.h libutil.h \
1003 sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
1004 bluetooth/bluetooth.h)
1008 # On Solaris, term.h requires curses.h
1009 AC_CHECK_HEADERS(term.h,,,[
1010 #ifdef HAVE_CURSES_H
1015 # On Linux, netlink.h requires asm/types.h
1016 AC_CHECK_HEADERS(linux/netlink.h,,,[
1017 #ifdef HAVE_ASM_TYPES_H
1018 #include <asm/types.h>
1020 #ifdef HAVE_SYS_SOCKET_H
1021 #include <sys/socket.h>
1025 # checks for typedefs
1027 AC_MSG_CHECKING(for clock_t in time.h)
1028 AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
1029 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
1031 AC_MSG_RESULT($was_it_defined)
1033 # Check whether using makedev requires defining _OSF_SOURCE
1034 AC_MSG_CHECKING(for makedev)
1035 AC_TRY_LINK([#include <sys/types.h> ],
1037 ac_cv_has_makedev=yes,
1038 ac_cv_has_makedev=no)
1039 if test "$ac_cv_has_makedev" = "no"; then
1040 # we didn't link, try if _OSF_SOURCE will allow us to link
1042 #define _OSF_SOURCE 1
1043 #include <sys/types.h>
1046 ac_cv_has_makedev=yes,
1047 ac_cv_has_makedev=no)
1048 if test "$ac_cv_has_makedev" = "yes"; then
1049 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
1052 AC_MSG_RESULT($ac_cv_has_makedev)
1053 if test "$ac_cv_has_makedev" = "yes"; then
1054 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
1057 # Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
1058 # the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
1059 # defined, but the compiler does not support pragma redefine_extname,
1060 # and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
1061 # structures (such as rlimit64) without declaring them. As a
1062 # work-around, disable LFS on such configurations
1065 AC_MSG_CHECKING(Solaris LFS bug)
1067 #define _LARGEFILE_SOURCE 1
1068 #define _FILE_OFFSET_BITS 64
1069 #include <sys/resource.h>
1070 ],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
1071 AC_MSG_RESULT($sol_lfs_bug)
1072 if test "$sol_lfs_bug" = "yes"; then
1076 if test "$use_lfs" = "yes"; then
1077 # Two defines needed to enable largefile support on various platforms
1078 # These may affect some typedefs
1079 AC_DEFINE(_LARGEFILE_SOURCE, 1,
1080 [This must be defined on some systems to enable large file support.])
1081 AC_DEFINE(_FILE_OFFSET_BITS, 64,
1082 [This must be set to 64 on some systems to enable large file support.])
1085 # Add some code to confdefs.h so that the test for off_t works on SCO
1086 cat >> confdefs.h <<\EOF
1092 # Type availability checks
1099 AC_CHECK_TYPE(ssize_t,
1100 AC_DEFINE(HAVE_SSIZE_T, 1, Define if your compiler provides ssize_t),,)
1102 # Sizes of various common basic types
1103 # ANSI C requires sizeof(char) == 1, so no need to check it
1104 AC_CHECK_SIZEOF(int, 4)
1105 AC_CHECK_SIZEOF(long, 4)
1106 AC_CHECK_SIZEOF(void *, 4)
1107 AC_CHECK_SIZEOF(short, 2)
1108 AC_CHECK_SIZEOF(float, 4)
1109 AC_CHECK_SIZEOF(double, 8)
1110 AC_CHECK_SIZEOF(fpos_t, 4)
1111 AC_CHECK_SIZEOF(size_t, 4)
1113 AC_MSG_CHECKING(for long long support)
1115 AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1116 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1119 AC_MSG_RESULT($have_long_long)
1120 if test "$have_long_long" = yes ; then
1121 AC_CHECK_SIZEOF(long long, 8)
1124 AC_MSG_CHECKING(for uintptr_t support)
1126 AC_TRY_COMPILE([], [uintptr_t x; x = (uintptr_t)0;], [
1127 AC_DEFINE(HAVE_UINTPTR_T, 1, [Define this if you have the type uintptr_t.])
1130 AC_MSG_RESULT($have_uintptr_t)
1131 if test "$have_uintptr_t" = yes ; then
1132 AC_CHECK_SIZEOF(uintptr_t, 4)
1135 # Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1136 AC_MSG_CHECKING(size of off_t)
1137 AC_CACHE_VAL(ac_cv_sizeof_off_t,
1138 [AC_TRY_RUN([#include <stdio.h>
1139 #include <sys/types.h>
1142 FILE *f=fopen("conftestval", "w");
1144 fprintf(f, "%d\n", sizeof(off_t));
1147 ac_cv_sizeof_off_t=`cat conftestval`,
1148 ac_cv_sizeof_off_t=0,
1149 ac_cv_sizeof_off_t=4)
1151 AC_MSG_RESULT($ac_cv_sizeof_off_t)
1152 AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1153 [The number of bytes in an off_t.])
1155 AC_MSG_CHECKING(whether to enable large file support)
1156 if test "$have_long_long" = yes -a \
1157 "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1158 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
1159 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1160 [Defined to enable large file support when an off_t is bigger than a long
1161 and long long is available and at least as big as an off_t. You may need
1162 to add some flags for configuration and compilation to enable this mode.
1163 (For Solaris and Linux, the necessary defines are already defined.)])
1169 # AC_CHECK_SIZEOF() doesn't include <time.h>.
1170 AC_MSG_CHECKING(size of time_t)
1171 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1172 [AC_TRY_RUN([#include <stdio.h>
1176 FILE *f=fopen("conftestval", "w");
1178 fprintf(f, "%d\n", sizeof(time_t));
1181 ac_cv_sizeof_time_t=`cat conftestval`,
1182 ac_cv_sizeof_time_t=0,
1183 ac_cv_sizeof_time_t=4)
1185 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1186 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1187 [The number of bytes in a time_t.])
1190 # if have pthread_t then define SIZEOF_PTHREAD_T
1192 if test "$ac_cv_kpthread" = "yes"
1193 then CC="$CC -Kpthread"
1194 elif test "$ac_cv_kthread" = "yes"
1195 then CC="$CC -Kthread"
1196 elif test "$ac_cv_pthread" = "yes"
1197 then CC="$CC -pthread"
1199 AC_MSG_CHECKING(for pthread_t)
1201 AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
1202 AC_MSG_RESULT($have_pthread_t)
1203 if test "$have_pthread_t" = yes ; then
1204 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1205 AC_MSG_CHECKING(size of pthread_t)
1206 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1207 [AC_TRY_RUN([#include <stdio.h>
1208 #include <pthread.h>
1211 FILE *f=fopen("conftestval", "w");
1213 fprintf(f, "%d\n", sizeof(pthread_t));
1216 ac_cv_sizeof_pthread_t=`cat conftestval`,
1217 ac_cv_sizeof_pthread_t=0,
1218 ac_cv_sizeof_pthread_t=4)
1220 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
1221 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1222 [The number of bytes in a pthread_t.])
1226 AC_MSG_CHECKING(for --enable-toolbox-glue)
1227 AC_ARG_ENABLE(toolbox-glue,
1228 AC_HELP_STRING(--enable-toolbox-glue, disable/enable MacOSX glue code for extensions))
1230 if test -z "$enable_toolbox_glue"
1232 case $ac_sys_system/$ac_sys_release in
1234 enable_toolbox_glue="yes";;
1236 enable_toolbox_glue="no";;
1239 case "$enable_toolbox_glue" in
1241 extra_machdep_objs="Python/mactoolboxglue.o"
1242 extra_undefs="-u _PyMac_Error"
1243 AC_DEFINE(USE_TOOLBOX_OBJECT_GLUE, 1,
1244 [Define if you want to use MacPython modules on MacOSX in unix-Python.])
1247 extra_machdep_objs=""
1251 AC_MSG_RESULT($enable_toolbox_glue)
1253 AC_SUBST(OTHER_LIBTOOL_OPT)
1254 case $ac_sys_system/$ac_sys_release in
1255 Darwin/@<:@01567@:>@\..*)
1256 OTHER_LIBTOOL_OPT="-prebind -seg1addr 0x10000000"
1259 OTHER_LIBTOOL_OPT=""
1263 AC_SUBST(LIBTOOL_CRUFT)
1264 case $ac_sys_system/$ac_sys_release in
1265 Darwin/@<:@01567@:>@\..*)
1266 LIBTOOL_CRUFT="-framework System -lcc_dynamic -arch_only `arch`"
1267 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1268 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1270 gcc_version=`gcc -v 2>&1 | grep version | cut -d\ -f3`
1271 if test ${gcc_version} '<' 4.0
1273 LIBTOOL_CRUFT="-lcc_dynamic"
1277 LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only `arch`"
1278 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1279 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1282 AC_MSG_CHECKING(for --enable-framework)
1283 if test "$enable_framework"
1285 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
1286 # -F. is needed to allow linking to the framework while
1287 # in the build location.
1288 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1289 [Define if you want to produce an OpenStep/Rhapsody framework
1290 (shared library plus accessory files).])
1296 AC_MSG_CHECKING(for dyld)
1297 case $ac_sys_system/$ac_sys_release in
1299 AC_DEFINE(WITH_DYLD, 1,
1300 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1301 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1302 linker (rld). Dyld is necessary to support frameworks.])
1303 AC_MSG_RESULT(always on for Darwin)
1310 # Set info about shared libraries.
1315 AC_SUBST(LINKFORSHARED)
1316 # SO is the extension of shared libraries `(including the dot!)
1317 # -- usually .so, .sl on HP-UX, .dll on Cygwin
1321 case $ac_sys_system in
1327 # this might also be a termcap variable, see #610332
1329 echo '====================================================================='
1331 echo '+ WARNING: You have set SO in your environment. +'
1332 echo '+ Do you really mean to change the extension for shared libraries? +'
1333 echo '+ Continuing in 10 seconds to let you to ponder. +'
1335 echo '====================================================================='
1339 # LDSHARED is the ld *command* used to create shared library
1340 # -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
1341 # (Shared libraries in this instance are shared modules to be loaded into
1342 # Python, as opposed to building Python itself as a shared library.)
1343 AC_MSG_CHECKING(LDSHARED)
1344 if test -z "$LDSHARED"
1346 case $ac_sys_system/$ac_sys_release in
1348 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
1349 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
1352 BLDSHARED="\$(srcdir)/Modules/ld_so_beos $LDLIBRARY"
1353 LDSHARED="\$(BINLIBDEST)/config/ld_so_beos \$(LIBDIR)/$LDLIBRARY"
1355 IRIX/5*) LDSHARED="ld -shared";;
1356 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
1358 if test "$GCC" = "yes"
1359 then LDSHARED='$(CC) -shared'
1360 else LDSHARED='$(CC) -G';
1362 hp*|HP*) LDSHARED="ld -b";;
1363 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
1365 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1366 if test "$enable_framework" ; then
1367 # Link against the framework. All externals should be defined.
1368 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1369 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1371 # No framework. Ignore undefined symbols, assuming they come from Python
1372 LDSHARED="$LDSHARED -undefined suppress"
1374 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
1375 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1376 if test "$enable_framework" ; then
1377 # Link against the framework. All externals should be defined.
1378 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1379 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1381 # No framework, use the Python app as bundle-loader
1382 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1383 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1386 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1387 # This allows an extension to be used in any Python
1388 cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
1389 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
1390 if test ${MACOSX_DEPLOYMENT_TARGET-${cur_target}} '>' 10.2
1392 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1393 BLDSHARED="$LDSHARED"
1395 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1396 if test "$enable_framework" ; then
1397 # Link against the framework. All externals should be defined.
1398 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1399 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1401 # No framework, use the Python app as bundle-loader
1402 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1403 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1407 Linux*|GNU*) LDSHARED='$(CC) -shared';;
1408 BSD/OS*/4*) LDSHARED="gcc -shared";;
1410 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1412 LDSHARED="$CC -shared ${LDFLAGS}"
1414 LDSHARED="ld -Bshareable ${LDFLAGS}"
1416 NetBSD*|DragonFly*) LDSHARED="cc -shared ${LDFLAGS}";;
1417 OpenUNIX*|UnixWare*)
1418 if test "$GCC" = "yes"
1419 then LDSHARED='$(CC) -shared'
1420 else LDSHARED='$(CC) -G'
1422 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
1423 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
1424 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
1425 atheos*) LDSHARED="gcc -shared";;
1429 AC_MSG_RESULT($LDSHARED)
1430 BLDSHARED=${BLDSHARED-$LDSHARED}
1431 # CCSHARED are the C *flags* used to create objects to go into a shared
1432 # library (module) -- this is only needed for a few systems
1433 AC_MSG_CHECKING(CCSHARED)
1434 if test -z "$CCSHARED"
1436 case $ac_sys_system/$ac_sys_release in
1437 SunOS*) if test "$GCC" = yes;
1438 then CCSHARED="-fPIC";
1439 else CCSHARED="-xcode=pic32";
1441 hp*|HP*) if test "$GCC" = yes;
1442 then CCSHARED="-fPIC";
1445 Linux*|GNU*) CCSHARED="-fPIC";;
1446 BSD/OS*/4*) CCSHARED="-fpic";;
1447 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";;
1448 OpenUNIX*|UnixWare*)
1449 if test "$GCC" = "yes"
1450 then CCSHARED="-fPIC"
1451 else CCSHARED="-KPIC"
1454 if test "$GCC" = "yes"
1455 then CCSHARED="-fPIC"
1456 else CCSHARED="-Kpic -belf"
1458 Monterey*) CCSHARED="-G";;
1459 IRIX*/6*) case $CC in
1460 *gcc*) CCSHARED="-shared";;
1463 atheos*) CCSHARED="-fPIC";;
1466 AC_MSG_RESULT($CCSHARED)
1467 # LINKFORSHARED are the flags passed to the $(CC) command that links
1468 # the python executable -- this is only needed for a few systems
1469 AC_MSG_CHECKING(LINKFORSHARED)
1470 if test -z "$LINKFORSHARED"
1472 case $ac_sys_system/$ac_sys_release in
1473 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
1475 LINKFORSHARED="-Wl,-E -Wl,+s";;
1476 # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
1477 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
1478 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
1479 # -u libsys_s pulls in all symbols in libsys
1481 # -u _PyMac_Error is needed to pull in the mac toolbox glue,
1483 # not used by the core itself but which needs to be in the core so
1484 # that dynamically loaded extension modules have access to it.
1485 # -prebind is no longer used, because it actually seems to give a
1486 # slowdown in stead of a speedup, maybe due to the large number of
1487 # dynamic loads Python does.
1489 LINKFORSHARED="$extra_undefs"
1490 if test "$enable_framework"
1492 LINKFORSHARED="$LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1494 LINKFORSHARED="$LINKFORSHARED";;
1495 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
1496 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
1497 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
1498 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*)
1499 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1501 LINKFORSHARED="-Wl,--export-dynamic"
1503 SunOS/5*) case $CC in
1505 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
1507 LINKFORSHARED="-Xlinker --export-dynamic"
1511 if test $enable_shared = "no"
1513 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1517 AC_MSG_RESULT($LINKFORSHARED)
1519 AC_SUBST(CFLAGSFORSHARED)
1520 AC_MSG_CHECKING(CFLAGSFORSHARED)
1521 if test ! "$LIBRARY" = "$LDLIBRARY"
1523 case $ac_sys_system in
1525 # Cygwin needs CCSHARED when building extension DLLs
1526 # but not when building the interpreter DLL.
1527 CFLAGSFORSHARED='';;
1529 CFLAGSFORSHARED='$(CCSHARED)'
1532 AC_MSG_RESULT($CFLAGSFORSHARED)
1534 # SHLIBS are libraries (except -lc and -lm) to link to the python shared
1535 # library (with --enable-shared).
1536 # For platforms on which shared libraries are not allowed to have unresolved
1537 # symbols, this must be set to $(LIBS) (expanded by make). We do this even
1538 # if it is not required, since it creates a dependency of the shared library
1539 # to LIBS. This, in turn, means that applications linking the shared libpython
1540 # don't need to link LIBS explicitly. The default should be only changed
1541 # on systems where this approach causes problems.
1543 AC_MSG_CHECKING(SHLIBS)
1544 case "$ac_sys_system" in
1548 AC_MSG_RESULT($SHLIBS)
1551 # checks for libraries
1552 AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1553 AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
1555 # only check for sem_ini if thread support is requested
1556 if test "$with_threads" = "yes" -o -z "$with_threads"; then
1557 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1558 # posix4 on Solaris 2.6
1559 # pthread (first!) on Linux
1562 # check if we need libintl for locale functions
1563 AC_CHECK_LIB(intl, textdomain,
1564 AC_DEFINE(WITH_LIBINTL, 1,
1565 [Define to 1 if libintl is needed for locale functions.]))
1567 # checks for system dependent C++ extensions support
1568 case "$ac_sys_system" in
1569 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1570 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1571 [loadAndInit("", 0, "")],
1572 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1573 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1574 and you want support for AIX C++ shared extension modules.])
1575 AC_MSG_RESULT(yes)],
1576 [AC_MSG_RESULT(no)]);;
1580 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
1581 # BeOS' sockets are stashed in libnet.
1582 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
1583 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
1585 case "$ac_sys_system" in
1587 AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
1591 AC_MSG_CHECKING(for --with-libs)
1593 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1595 AC_MSG_RESULT($withval)
1596 LIBS="$withval $LIBS"
1598 [AC_MSG_RESULT(no)])
1600 # Check for use of the system libffi library
1601 AC_MSG_CHECKING(for --with-system-ffi)
1602 AC_ARG_WITH(system_ffi,
1603 AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library))
1605 if test -z "$with_system_ffi"
1606 then with_system_ffi="no"
1608 AC_MSG_RESULT($with_system_ffi)
1610 # Determine if signalmodule should be used.
1611 AC_SUBST(USE_SIGNAL_MODULE)
1612 AC_SUBST(SIGNAL_OBJS)
1613 AC_MSG_CHECKING(for --with-signal-module)
1614 AC_ARG_WITH(signal-module,
1615 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
1617 if test -z "$with_signal_module"
1618 then with_signal_module="yes"
1620 AC_MSG_RESULT($with_signal_module)
1622 if test "${with_signal_module}" = "yes"; then
1623 USE_SIGNAL_MODULE=""
1626 USE_SIGNAL_MODULE="#"
1627 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1630 # This is used to generate Setup.config
1631 AC_SUBST(USE_THREAD_MODULE)
1632 USE_THREAD_MODULE=""
1634 AC_MSG_CHECKING(for --with-dec-threads)
1636 AC_ARG_WITH(dec-threads,
1637 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1639 AC_MSG_RESULT($withval)
1641 if test "${with_thread+set}" != set; then
1642 with_thread="$withval";
1644 [AC_MSG_RESULT(no)])
1646 # Templates for things AC_DEFINEd more than once.
1647 # For a single AC_DEFINE, no template is needed.
1648 AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1649 AH_TEMPLATE(_REENTRANT,
1650 [Define to force use of thread-safe errno, h_errno, and other functions])
1651 AH_TEMPLATE(WITH_THREAD,
1652 [Define if you want to compile in rudimentary thread support])
1654 AC_MSG_CHECKING(for --with-threads)
1655 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1656 AC_ARG_WITH(threads,
1657 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
1659 # --with-thread is deprecated, but check for it anyway
1660 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1662 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1663 [with_threads=$with_thread])
1665 if test -z "$with_threads"
1666 then with_threads="yes"
1668 AC_MSG_RESULT($with_threads)
1671 if test "$with_threads" = "no"
1673 USE_THREAD_MODULE="#"
1674 elif test "$ac_cv_pthread_is_default" = yes
1676 AC_DEFINE(WITH_THREAD)
1677 # Defining _REENTRANT on system with POSIX threads should not hurt.
1678 AC_DEFINE(_REENTRANT)
1680 THREADOBJ="Python/thread.o"
1681 elif test "$ac_cv_kpthread" = "yes"
1684 if test "$ac_cv_cxx_thread" = "yes"; then
1685 CXX="$CXX -Kpthread"
1687 AC_DEFINE(WITH_THREAD)
1689 THREADOBJ="Python/thread.o"
1690 elif test "$ac_cv_kthread" = "yes"
1693 if test "$ac_cv_cxx_thread" = "yes"; then
1696 AC_DEFINE(WITH_THREAD)
1698 THREADOBJ="Python/thread.o"
1699 elif test "$ac_cv_pthread" = "yes"
1702 if test "$ac_cv_cxx_thread" = "yes"; then
1705 AC_DEFINE(WITH_THREAD)
1707 THREADOBJ="Python/thread.o"
1709 if test ! -z "$with_threads" -a -d "$with_threads"
1710 then LDFLAGS="$LDFLAGS -L$with_threads"
1712 if test ! -z "$withval" -a -d "$withval"
1713 then LDFLAGS="$LDFLAGS -L$withval"
1716 # According to the POSIX spec, a pthreads implementation must
1717 # define _POSIX_THREADS in unistd.h. Some apparently don't
1718 # (e.g. gnu pth with pthread emulation)
1719 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
1723 #ifdef _POSIX_THREADS
1726 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
1727 AC_MSG_RESULT($unistd_defines_pthreads)
1729 AC_DEFINE(_REENTRANT)
1730 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
1731 AC_DEFINE(C_THREADS)
1732 AC_DEFINE(HURD_C_THREADS, 1,
1733 [Define if you are using Mach cthreads directly under /include])
1734 LIBS="$LIBS -lthreads"
1735 THREADOBJ="Python/thread.o"],[
1736 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
1737 AC_DEFINE(C_THREADS)
1738 AC_DEFINE(MACH_C_THREADS, 1,
1739 [Define if you are using Mach cthreads under mach /])
1740 THREADOBJ="Python/thread.o"],[
1741 AC_MSG_CHECKING(for --with-pth)
1743 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
1744 [AC_MSG_RESULT($withval)
1745 AC_DEFINE([WITH_THREAD])
1746 AC_DEFINE([HAVE_PTH], 1,
1747 [Define if you have GNU PTH threads.])
1749 THREADOBJ="Python/thread.o"],
1752 # Just looking for pthread_create in libpthread is not enough:
1753 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
1754 # So we really have to include pthread.h, and then link.
1756 LIBS="$LIBS -lpthread"
1757 AC_MSG_CHECKING([for pthread_create in -lpthread])
1758 AC_TRY_LINK([#include <pthread.h>
1760 void * start_routine (void *arg) { exit (0); }], [
1761 pthread_create (NULL, NULL, start_routine, NULL)], [
1763 AC_DEFINE(WITH_THREAD)
1765 THREADOBJ="Python/thread.o"],[
1767 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
1769 THREADOBJ="Python/thread.o"],[
1770 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
1771 AC_DEFINE(ATHEOS_THREADS, 1,
1772 [Define this if you have AtheOS threads.])
1773 THREADOBJ="Python/thread.o"],[
1774 AC_CHECK_HEADER(kernel/OS.h, [AC_DEFINE(WITH_THREAD)
1775 AC_DEFINE(BEOS_THREADS, 1,
1776 [Define this if you have BeOS threads.])
1777 THREADOBJ="Python/thread.o"],[
1778 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
1780 LIBS="$LIBS -lpthreads"
1781 THREADOBJ="Python/thread.o"], [
1782 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
1785 THREADOBJ="Python/thread.o"], [
1786 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
1788 LIBS="$LIBS -lpthread"
1789 THREADOBJ="Python/thread.o"], [
1790 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
1793 THREADOBJ="Python/thread.o"],[
1794 USE_THREAD_MODULE="#"])
1795 ])])])])])])])])])])
1797 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
1799 THREADOBJ="Python/thread.o"
1800 USE_THREAD_MODULE=""])
1802 if test "$posix_threads" != "yes"; then
1803 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
1804 LIBS="$LIBS -lthread"
1805 THREADOBJ="Python/thread.o"
1806 USE_THREAD_MODULE=""])
1809 if test "$USE_THREAD_MODULE" != "#"
1811 # If the above checks didn't disable threads, (at least) OSF1
1812 # needs this '-threads' argument during linking.
1813 case $ac_sys_system in
1814 OSF1) LDLAST=-threads;;
1819 if test "$posix_threads" = "yes"; then
1820 if test "$unistd_defines_pthreads" = "no"; then
1821 AC_DEFINE(_POSIX_THREADS, 1,
1822 [Define if you have POSIX threads,
1823 and your system does not define that.])
1826 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
1827 case $ac_sys_system/$ac_sys_release in
1828 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
1829 Defined for Solaris 2.6 bug in pthread header.)
1831 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
1832 Define if the Posix semaphores do not work on your system)
1836 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
1837 AC_CACHE_VAL(ac_cv_pthread_system_supported,
1838 [AC_TRY_RUN([#include <pthread.h>
1839 void *foo(void *parm) {
1843 pthread_attr_t attr;
1845 if (pthread_attr_init(&attr)) exit(-1);
1846 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
1847 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
1850 ac_cv_pthread_system_supported=yes,
1851 ac_cv_pthread_system_supported=no,
1852 ac_cv_pthread_system_supported=no)
1854 AC_MSG_RESULT($ac_cv_pthread_system_supported)
1855 if test "$ac_cv_pthread_system_supported" = "yes"; then
1856 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
1858 AC_CHECK_FUNCS(pthread_sigmask,
1859 [case $ac_sys_system in
1861 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
1862 [Define if pthread_sigmask() does not work on your system.])
1868 # Check for enable-ipv6
1869 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
1870 AC_MSG_CHECKING([if --enable-ipv6 is specified])
1872 [ --enable-ipv6 Enable ipv6 (with ipv4) support
1873 --disable-ipv6 Disable ipv6 support],
1874 [ case "$enableval" in
1879 *) AC_MSG_RESULT(yes)
1880 AC_DEFINE(ENABLE_IPV6)
1886 dnl the check does not work on cross compilation case...
1887 AC_TRY_RUN([ /* AF_INET6 available check */
1888 #include <sys/types.h>
1889 #include <sys/socket.h>
1892 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
1906 if test "$ipv6" = "yes"; then
1907 AC_MSG_CHECKING(if RFC2553 API is available)
1908 AC_TRY_COMPILE([#include <sys/types.h>
1909 #include <netinet/in.h>],
1910 [struct sockaddr_in6 x;
1914 AC_MSG_RESULT(no, IPv6 disabled)
1918 if test "$ipv6" = "yes"; then
1919 AC_DEFINE(ENABLE_IPV6)
1927 if test "$ipv6" = "yes"; then
1928 AC_MSG_CHECKING([ipv6 stack type])
1929 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
1933 dnl http://www.kame.net/
1935 #include <netinet/in.h>
1936 #ifdef IPV6_INRIA_VERSION
1942 dnl http://www.kame.net/
1944 #include <netinet/in.h>
1950 ipv6libdir=/usr/local/v6/lib
1954 dnl http://www.v6.linux.or.jp/
1956 #include <features.h>
1957 #if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
1964 dnl http://www.v6.linux.or.jp/
1965 if test -d /usr/inet6; then
1968 ipv6libdir=/usr/inet6/lib
1969 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
1973 if test -f /etc/netconfig; then
1974 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
1982 #include <sys/param.h>
1983 #ifdef _TOSHIBA_INET6
1988 ipv6libdir=/usr/local/v6/lib])
1992 #include </usr/local/v6/include/sys/v6config.h>
1998 ipv6libdir=/usr/local/v6/lib;
1999 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
2003 #include <sys/param.h>
2004 #ifdef _ZETA_MINAMI_INET6
2009 ipv6libdir=/usr/local/v6/lib])
2012 if test "$ipv6type" != "unknown"; then
2016 AC_MSG_RESULT($ipv6type)
2019 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
2020 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
2021 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
2022 echo "using lib$ipv6lib"
2024 if test $ipv6trylibc = "yes"; then
2027 echo 'Fatal: no $ipv6lib library found. cannot continue.'
2028 echo "You need to fetch lib$ipv6lib.a from appropriate"
2029 echo 'ipv6 kit and compile beforehand.'
2035 # Check for --with-doc-strings
2036 AC_MSG_CHECKING(for --with-doc-strings)
2037 AC_ARG_WITH(doc-strings,
2038 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
2040 if test -z "$with_doc_strings"
2041 then with_doc_strings="yes"
2043 if test "$with_doc_strings" != "no"
2045 AC_DEFINE(WITH_DOC_STRINGS, 1,
2046 [Define if you want documentation strings in extension modules])
2048 AC_MSG_RESULT($with_doc_strings)
2050 # Check for Python-specific malloc support
2051 AC_MSG_CHECKING(for --with-tsc)
2053 [ --with(out)-tsc enable/disable timestamp counter profile], [
2054 if test "$withval" != no
2056 AC_DEFINE(WITH_TSC, 1,
2057 [Define to profile with the Pentium timestamp counter])
2059 else AC_MSG_RESULT(no)
2061 [AC_MSG_RESULT(no)])
2063 # Check for Python-specific malloc support
2064 AC_MSG_CHECKING(for --with-pymalloc)
2065 AC_ARG_WITH(pymalloc,
2066 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
2068 if test -z "$with_pymalloc"
2069 then with_pymalloc="yes"
2071 if test "$with_pymalloc" != "no"
2073 AC_DEFINE(WITH_PYMALLOC, 1,
2074 [Define if you want to compile in Python-specific mallocs])
2076 AC_MSG_RESULT($with_pymalloc)
2078 # Check for --with-wctype-functions
2079 AC_MSG_CHECKING(for --with-wctype-functions)
2080 AC_ARG_WITH(wctype-functions,
2081 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
2083 if test "$withval" != no
2085 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2086 [Define if you want wctype.h functions to be used instead of the
2087 one supplied by Python itself. (see Include/unicodectype.h).])
2089 else AC_MSG_RESULT(no)
2091 [AC_MSG_RESULT(no)])
2093 # -I${DLINCLDIR} is added to the compile rule for importdl.o
2097 # the dlopen() function means we might want to use dynload_shlib.o. some
2098 # platforms, such as AIX, have dlopen(), but don't want to use it.
2099 AC_CHECK_FUNCS(dlopen)
2101 # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2102 # loading of modules.
2103 AC_SUBST(DYNLOADFILE)
2104 AC_MSG_CHECKING(DYNLOADFILE)
2105 if test -z "$DYNLOADFILE"
2107 case $ac_sys_system/$ac_sys_release in
2108 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2109 if test "$ac_cv_func_dlopen" = yes
2110 then DYNLOADFILE="dynload_shlib.o"
2111 else DYNLOADFILE="dynload_aix.o"
2114 BeOS*) DYNLOADFILE="dynload_beos.o";;
2115 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
2116 # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
2117 Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
2118 atheos*) DYNLOADFILE="dynload_atheos.o";;
2120 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2121 # out any dynamic loading
2122 if test "$ac_cv_func_dlopen" = yes
2123 then DYNLOADFILE="dynload_shlib.o"
2124 else DYNLOADFILE="dynload_stub.o"
2129 AC_MSG_RESULT($DYNLOADFILE)
2130 if test "$DYNLOADFILE" != "dynload_stub.o"
2132 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2133 [Defined when any dynamic module loading is enabled.])
2136 # MACHDEP_OBJS can be set to platform-specific object files needed by Python
2138 AC_SUBST(MACHDEP_OBJS)
2139 AC_MSG_CHECKING(MACHDEP_OBJS)
2140 if test -z "$MACHDEP_OBJS"
2142 MACHDEP_OBJS=$extra_machdep_objs
2144 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
2146 AC_MSG_RESULT(MACHDEP_OBJS)
2148 # checks for library functions
2149 AC_CHECK_FUNCS(alarm bind_textdomain_codeset chown clock confstr ctermid \
2150 execv fork fpathconf ftime ftruncate \
2151 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
2152 getpriority getpwent getspnam getspent getsid getwd \
2153 kill killpg lchown lstat mkfifo mknod mktime \
2154 mremap nice pathconf pause plock poll pthread_init \
2155 putenv readlink realpath \
2156 select setegid seteuid setgid \
2157 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
2158 sigaction siginterrupt sigrelse strftime \
2159 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
2160 truncate uname unsetenv utimes waitpid wait3 wait4 wcscoll _getpty)
2162 # For some functions, having a definition is not sufficient, since
2163 # we want to take their address.
2164 AC_MSG_CHECKING(for chroot)
2165 AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2166 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2170 AC_MSG_CHECKING(for link)
2171 AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2172 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2176 AC_MSG_CHECKING(for symlink)
2177 AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2178 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2182 AC_MSG_CHECKING(for fchdir)
2183 AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2184 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2188 AC_MSG_CHECKING(for fsync)
2189 AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
2190 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
2194 AC_MSG_CHECKING(for fdatasync)
2195 AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2196 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2201 # On some systems (eg. FreeBSD 5), we would find a definition of the
2202 # functions ctermid_r, setgroups in the library, but no prototype
2203 # (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2204 # address to avoid compiler warnings and potential miscompilations
2205 # because of the missing prototypes.
2207 AC_MSG_CHECKING(for ctermid_r)
2209 #include "confdefs.h"
2211 ], void* p = ctermid_r,
2212 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2217 AC_MSG_CHECKING(for flock)
2219 #include "confdefs.h"
2220 #include <sys/file.h>
2222 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2227 AC_MSG_CHECKING(for getpagesize)
2229 #include "confdefs.h"
2231 ], void* p = getpagesize,
2232 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2238 AC_CHECK_PROGS(TRUE, true, /bin/true)
2240 dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2241 dnl On others, they are in the C library, so we to take no action
2242 AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
2243 AC_CHECK_LIB(resolv, inet_aton)
2246 AC_MSG_CHECKING(for hstrerror)
2248 #include "confdefs.h"
2250 ], void* p = hstrerror; hstrerror(0),
2251 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2256 AC_MSG_CHECKING(for inet_aton)
2258 #include "confdefs.h"
2259 #include <sys/types.h>
2260 #include <sys/socket.h>
2261 #include <netinet/in.h>
2262 #include <arpa/inet.h>
2263 ], void* p = inet_aton;inet_aton(0,0),
2264 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2269 AC_MSG_CHECKING(for inet_pton)
2271 #include "confdefs.h"
2272 #include <sys/types.h>
2273 #include <sys/socket.h>
2274 #include <netinet/in.h>
2275 #include <arpa/inet.h>
2276 ], void* p = inet_pton,
2277 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2282 # On some systems, setgroups is in unistd.h, on others, in grp.h
2283 AC_MSG_CHECKING(for setgroups)
2285 #include "confdefs.h"
2291 void* p = setgroups,
2292 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2297 # check for openpty and forkpty
2299 AC_CHECK_FUNCS(openpty,,
2300 AC_CHECK_LIB(util,openpty,
2301 [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"],
2302 AC_CHECK_LIB(bsd,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lbsd"])
2305 AC_CHECK_FUNCS(forkpty,,
2306 AC_CHECK_LIB(util,forkpty,
2307 [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"],
2308 AC_CHECK_LIB(bsd,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lbsd"])
2312 # check for long file support functions
2313 AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2315 AC_REPLACE_FUNCS(dup2 getcwd strdup strerror memmove)
2316 AC_CHECK_FUNCS(getpgrp,
2317 AC_TRY_COMPILE([#include <unistd.h>],
2319 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2320 [Define if getpgrp() must be called as getpgrp(0).])
2323 AC_CHECK_FUNCS(setpgrp,
2324 AC_TRY_COMPILE([#include <unistd.h>],
2326 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2327 [Define if setpgrp() must be called as setpgrp(0, 0).])
2330 AC_CHECK_FUNCS(gettimeofday,
2331 AC_TRY_COMPILE([#include <sys/time.h>],
2332 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2333 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2334 [Define if gettimeofday() does not have second (timezone) argument
2335 This is the case on Motorola V4 (R40V4.2)])
2339 AC_MSG_CHECKING(for major, minor, and makedev)
2341 #if defined(MAJOR_IN_MKDEV)
2342 #include <sys/mkdev.h>
2343 #elif defined(MAJOR_IN_SYSMACROS)
2344 #include <sys/sysmacros.h>
2346 #include <sys/types.h>
2349 makedev(major(0),minor(0));
2351 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2352 [Define to 1 if you have the device macros.])
2358 # On OSF/1 V5.1, getaddrinfo is available, but a define
2359 # for [no]getaddrinfo in netdb.h.
2360 AC_MSG_CHECKING(for getaddrinfo)
2362 #include <sys/types.h>
2363 #include <sys/socket.h>
2367 getaddrinfo(NULL, NULL, NULL, NULL);
2370 AC_MSG_CHECKING(getaddrinfo bug)
2372 #include <sys/types.h>
2375 #include <sys/socket.h>
2376 #include <netinet/in.h>
2380 int passive, gaierr, inet4 = 0, inet6 = 0;
2381 struct addrinfo hints, *ai, *aitop;
2382 char straddr[INET6_ADDRSTRLEN], strport[16];
2384 for (passive = 0; passive <= 1; passive++) {
2385 memset(&hints, 0, sizeof(hints));
2386 hints.ai_family = AF_UNSPEC;
2387 hints.ai_flags = passive ? AI_PASSIVE : 0;
2388 hints.ai_socktype = SOCK_STREAM;
2389 hints.ai_protocol = IPPROTO_TCP;
2390 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2391 (void)gai_strerror(gaierr);
2394 for (ai = aitop; ai; ai = ai->ai_next) {
2395 if (ai->ai_addr == NULL ||
2396 ai->ai_addrlen == 0 ||
2397 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2398 straddr, sizeof(straddr), strport, sizeof(strport),
2399 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2402 switch (ai->ai_family) {
2404 if (strcmp(strport, "54321") != 0) {
2408 if (strcmp(straddr, "0.0.0.0") != 0) {
2412 if (strcmp(straddr, "127.0.0.1") != 0) {
2419 if (strcmp(strport, "54321") != 0) {
2423 if (strcmp(straddr, "::") != 0) {
2427 if (strcmp(straddr, "::1") != 0) {
2437 /* another family support? */
2443 if (!(inet4 == 0 || inet4 == 2))
2445 if (!(inet6 == 0 || inet6 == 2))
2449 freeaddrinfo(aitop);
2454 freeaddrinfo(aitop);
2459 buggygetaddrinfo=no,
2460 AC_MSG_RESULT(buggy)
2461 buggygetaddrinfo=yes,
2462 AC_MSG_RESULT(buggy)
2463 buggygetaddrinfo=yes)], [
2465 buggygetaddrinfo=yes
2468 if test "$buggygetaddrinfo" = "yes"; then
2469 if test "$ipv6" = "yes"; then
2470 echo 'Fatal: You must get working getaddrinfo() function.'
2471 echo ' or you can specify "--disable-ipv6"'.
2475 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
2477 AC_CHECK_FUNCS(getnameinfo)
2479 # checks for structures
2483 AC_CHECK_MEMBERS([struct stat.st_rdev])
2484 AC_CHECK_MEMBERS([struct stat.st_blksize])
2485 AC_CHECK_MEMBERS([struct stat.st_flags])
2486 AC_CHECK_MEMBERS([struct stat.st_gen])
2487 AC_CHECK_MEMBERS([struct stat.st_birthtime])
2490 AC_MSG_CHECKING(for time.h that defines altzone)
2491 AC_CACHE_VAL(ac_cv_header_time_altzone,
2492 [AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2493 ac_cv_header_time_altzone=yes,
2494 ac_cv_header_time_altzone=no)])
2495 AC_MSG_RESULT($ac_cv_header_time_altzone)
2496 if test $ac_cv_header_time_altzone = yes; then
2497 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
2501 AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
2503 #include <sys/types.h>
2504 #include <sys/select.h>
2505 #include <sys/time.h>
2507 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2508 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2509 (which you can't on SCO ODT 3.0).])
2512 AC_MSG_RESULT($was_it_defined)
2514 AC_MSG_CHECKING(for addrinfo)
2515 AC_CACHE_VAL(ac_cv_struct_addrinfo,
2517 # include <netdb.h>],
2518 [struct addrinfo a],
2519 ac_cv_struct_addrinfo=yes,
2520 ac_cv_struct_addrinfo=no))
2521 AC_MSG_RESULT($ac_cv_struct_addrinfo)
2522 if test $ac_cv_struct_addrinfo = yes; then
2523 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
2526 AC_MSG_CHECKING(for sockaddr_storage)
2527 AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2529 # include <sys/types.h>
2530 # include <sys/socket.h>],
2531 [struct sockaddr_storage s],
2532 ac_cv_struct_sockaddr_storage=yes,
2533 ac_cv_struct_sockaddr_storage=no))
2534 AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2535 if test $ac_cv_struct_sockaddr_storage = yes; then
2536 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
2539 # checks for compiler characteristics
2545 AC_MSG_CHECKING(for working volatile)
2546 AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2547 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2549 AC_MSG_RESULT($works)
2552 AC_MSG_CHECKING(for working signed char)
2553 AC_TRY_COMPILE([], [signed char c;], works=yes,
2554 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2556 AC_MSG_RESULT($works)
2559 AC_MSG_CHECKING(for prototypes)
2560 AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2561 AC_DEFINE(HAVE_PROTOTYPES, 1,
2562 [Define if your compiler supports function prototype])
2565 AC_MSG_RESULT($have_prototypes)
2568 AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
2571 int foo(int x, ...) {
2579 ], [return foo(10, "", 3.14);], [
2580 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2581 [Define if your compiler supports variable length function prototypes
2582 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2585 AC_MSG_RESULT($works)
2587 # check for socketpair
2588 AC_MSG_CHECKING(for socketpair)
2590 #include <sys/types.h>
2591 #include <sys/socket.h>
2592 ], void *x=socketpair,
2593 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
2598 # check if sockaddr has sa_len member
2599 AC_MSG_CHECKING(if sockaddr has sa_len member)
2600 AC_TRY_COMPILE([#include <sys/types.h>
2601 #include <sys/socket.h>],
2605 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
2609 AC_MSG_CHECKING(whether va_list is an array)
2611 #ifdef HAVE_STDARG_PROTOTYPES
2614 #include <varargs.h>
2616 ], [va_list list1, list2; list1 = list2;], , [
2617 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
2618 va_list_is_array=yes
2620 AC_MSG_RESULT($va_list_is_array)
2622 # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
2623 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
2624 [Define this if you have some version of gethostbyname_r()])
2626 AC_CHECK_FUNC(gethostbyname_r, [
2627 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2628 AC_MSG_CHECKING([gethostbyname_r with 6 args])
2630 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
2635 struct hostent *he, *res;
2640 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
2642 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2643 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
2644 [Define this if you have the 6-arg version of gethostbyname_r().])
2648 AC_MSG_CHECKING([gethostbyname_r with 5 args])
2658 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
2660 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2661 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
2662 [Define this if you have the 5-arg version of gethostbyname_r().])
2666 AC_MSG_CHECKING([gethostbyname_r with 3 args])
2672 struct hostent_data data;
2674 (void) gethostbyname_r(name, he, &data);
2676 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2677 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
2678 [Define this if you have the 3-arg version of gethostbyname_r().])
2687 AC_CHECK_FUNCS(gethostbyname)
2689 AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
2690 AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
2691 AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
2692 AC_SUBST(HAVE_GETHOSTBYNAME_R)
2693 AC_SUBST(HAVE_GETHOSTBYNAME)
2695 # checks for system services
2698 # Linux requires this for correct f.p. operations
2699 AC_CHECK_FUNC(__fpu_control,
2701 [AC_CHECK_LIB(ieee, __fpu_control)
2704 # Check for --with-fpectl
2705 AC_MSG_CHECKING(for --with-fpectl)
2707 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
2709 if test "$withval" != no
2711 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
2712 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
2714 else AC_MSG_RESULT(no)
2716 [AC_MSG_RESULT(no)])
2718 # check for --with-libm=...
2720 case $ac_sys_system in
2725 AC_MSG_CHECKING(for --with-libm=STRING)
2727 AC_HELP_STRING(--with-libm=STRING, math library),
2729 if test "$withval" = no
2731 AC_MSG_RESULT(force LIBM empty)
2732 elif test "$withval" != yes
2734 AC_MSG_RESULT(set LIBM="$withval")
2735 else AC_MSG_ERROR([proper usage is --with-libm=STRING])
2737 [AC_MSG_RESULT(default LIBM="$LIBM")])
2739 # check for --with-libc=...
2741 AC_MSG_CHECKING(for --with-libc=STRING)
2743 AC_HELP_STRING(--with-libc=STRING, C library),
2745 if test "$withval" = no
2747 AC_MSG_RESULT(force LIBC empty)
2748 elif test "$withval" != yes
2750 AC_MSG_RESULT(set LIBC="$withval")
2751 else AC_MSG_ERROR([proper usage is --with-libc=STRING])
2753 [AC_MSG_RESULT(default LIBC="$LIBC")])
2755 # check for hypot() in math library
2758 AC_REPLACE_FUNCS(hypot)
2762 AC_CHECK_HEADER(wchar.h, [
2763 AC_DEFINE(HAVE_WCHAR_H, 1,
2764 [Define if the compiler provides a wchar.h header file.])
2770 # determine wchar_t size
2771 if test "$wchar_h" = yes
2773 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
2776 AC_MSG_CHECKING(for UCS-4 tcl)
2780 #if TCL_UTF_MAX != 6
2781 # error "NOT UCS4_TCL"
2783 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
2786 AC_MSG_RESULT($have_ucs4_tcl)
2788 # check whether wchar_t is signed or not
2789 if test "$wchar_h" = yes
2791 # check whether wchar_t is signed or not
2792 AC_MSG_CHECKING(whether wchar_t is signed)
2793 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
2798 /* Success: exit code 0 */
2799 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1);
2802 ac_cv_wchar_t_signed=yes,
2803 ac_cv_wchar_t_signed=no,
2804 ac_cv_wchar_t_signed=yes)])
2805 AC_MSG_RESULT($ac_cv_wchar_t_signed)
2808 AC_MSG_CHECKING(what type to use for unicode)
2809 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
2810 AC_ARG_ENABLE(unicode,
2811 AC_HELP_STRING(--enable-unicode@<:@=ucs@<:@24@:>@@:>@, Enable Unicode strings (default is yes)),
2813 [enable_unicode=yes])
2815 if test $enable_unicode = yes
2817 # Without any arguments, Py_UNICODE defaults to two-byte mode
2818 case "$have_ucs4_tcl" in
2819 yes) enable_unicode="ucs4"
2821 *) enable_unicode="ucs2"
2826 AH_TEMPLATE(Py_UNICODE_SIZE,
2827 [Define as the size of the unicode type.])
2828 case "$enable_unicode" in
2829 ucs2) unicode_size="2"
2830 AC_DEFINE(Py_UNICODE_SIZE,2)
2832 ucs4) unicode_size="4"
2833 AC_DEFINE(Py_UNICODE_SIZE,4)
2837 AH_TEMPLATE(PY_UNICODE_TYPE,
2838 [Define as the integral type used for Unicode representation.])
2840 AC_SUBST(UNICODE_OBJS)
2841 if test "$enable_unicode" = "no"
2844 AC_MSG_RESULT(not used)
2846 UNICODE_OBJS="Objects/unicodeobject.o Objects/unicodectype.o"
2847 AC_DEFINE(Py_USING_UNICODE, 1,
2848 [Define if you want to have a Unicode type.])
2850 # wchar_t is only usable if it maps to an unsigned type
2851 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
2852 -a "$ac_cv_wchar_t_signed" = "no"
2854 PY_UNICODE_TYPE="wchar_t"
2855 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
2856 [Define if you have a useable wchar_t type defined in wchar.h; useable
2857 means wchar_t must be an unsigned type with at least 16 bits. (see
2858 Include/unicodeobject.h).])
2859 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
2860 elif test "$ac_cv_sizeof_short" = "$unicode_size"
2862 PY_UNICODE_TYPE="unsigned short"
2863 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
2864 elif test "$ac_cv_sizeof_long" = "$unicode_size"
2866 PY_UNICODE_TYPE="unsigned long"
2867 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
2869 PY_UNICODE_TYPE="no type found"
2871 AC_MSG_RESULT($PY_UNICODE_TYPE)
2874 # check for endianness
2877 # Check whether right shifting a negative integer extends the sign bit
2878 # or fills with zeros (like the Cray J90, according to Tim Peters).
2879 AC_MSG_CHECKING(whether right shift extends the sign bit)
2880 AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
2884 exit(((-1)>>3 == -1) ? 0 : 1);
2887 ac_cv_rshift_extends_sign=yes,
2888 ac_cv_rshift_extends_sign=no,
2889 ac_cv_rshift_extends_sign=yes)])
2890 AC_MSG_RESULT($ac_cv_rshift_extends_sign)
2891 if test "$ac_cv_rshift_extends_sign" = no
2893 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
2894 [Define if i>>j for signed int i does not extend the sign bit
2898 # check for getc_unlocked and related locking functions
2899 AC_MSG_CHECKING(for getc_unlocked() and friends)
2900 AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
2901 AC_TRY_LINK([#include <stdio.h>],[
2902 FILE *f = fopen("/dev/null", "r");
2906 ], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
2907 AC_MSG_RESULT($ac_cv_have_getc_unlocked)
2908 if test "$ac_cv_have_getc_unlocked" = yes
2910 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
2911 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
2914 # check where readline lives
2915 # save the value of LIBS so we don't actually link Python with readline
2916 LIBS_no_readline=$LIBS
2917 AC_CHECK_LIB(readline, readline)
2918 if test "$ac_cv_have_readline_readline" = no
2920 AC_CHECK_LIB(termcap, readline)
2923 # check for readline 2.1
2924 AC_CHECK_LIB(readline, rl_callback_handler_install,
2925 AC_DEFINE(HAVE_RL_CALLBACK, 1,
2926 [Define if you have readline 2.1]), , )
2928 # check for readline 2.2
2929 AC_TRY_CPP([#include <readline/readline.h>],
2930 have_readline=yes, have_readline=no)
2931 if test $have_readline = yes
2933 AC_EGREP_HEADER([extern int rl_completion_append_character;],
2934 [readline/readline.h],
2935 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
2936 [Define if you have readline 2.2]), )
2939 # check for readline 4.0
2940 AC_CHECK_LIB(readline, rl_pre_input_hook,
2941 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
2942 [Define if you have readline 4.0]), , )
2944 # check for readline 4.2
2945 AC_CHECK_LIB(readline, rl_completion_matches,
2946 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
2947 [Define if you have readline 4.2]), , )
2949 # also in readline 4.2
2950 AC_TRY_CPP([#include <readline/readline.h>],
2951 have_readline=yes, have_readline=no)
2952 if test $have_readline = yes
2954 AC_EGREP_HEADER([extern int rl_catch_signals;],
2955 [readline/readline.h],
2956 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
2957 [Define if you can turn off readline's signal handling.]), )
2960 # End of readline checks: restore LIBS
2961 LIBS=$LIBS_no_readline
2963 AC_MSG_CHECKING(for broken nice())
2964 AC_CACHE_VAL(ac_cv_broken_nice, [
2969 if (val1 != -1 && val1 == nice(2))
2974 ac_cv_broken_nice=yes,
2975 ac_cv_broken_nice=no,
2976 ac_cv_broken_nice=no)])
2977 AC_MSG_RESULT($ac_cv_broken_nice)
2978 if test "$ac_cv_broken_nice" = yes
2980 AC_DEFINE(HAVE_BROKEN_NICE, 1,
2981 [Define if nice() returns success/failure instead of the new priority.])
2984 AC_MSG_CHECKING(for broken poll())
2990 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
2994 int poll_test = poll (&poll_struct, 1, 0);
3000 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
3010 ac_cv_broken_poll=yes,
3011 ac_cv_broken_poll=no,
3012 ac_cv_broken_poll=no)
3013 AC_MSG_RESULT($ac_cv_broken_poll)
3014 if test "$ac_cv_broken_poll" = yes
3016 AC_DEFINE(HAVE_BROKEN_POLL, 1,
3017 [Define if poll() sets errno on invalid file descriptors.])
3020 # Before we can test tzset, we need to check if struct tm has a tm_zone
3021 # (which is not required by ISO C or UNIX spec) and/or if we support
3025 # check tzset(3) exists and works like we expect it to
3026 AC_MSG_CHECKING(for working tzset())
3027 AC_CACHE_VAL(ac_cv_working_tzset, [
3034 extern char *tzname[];
3039 /* Note that we need to ensure that not only does tzset(3)
3040 do 'something' with localtime, but it works as documented
3041 in the library reference and as expected by the test suite.
3042 This includes making sure that tzname is set properly if
3043 tm->tm_zone does not exist since it is the alternative way
3044 of getting timezone info.
3046 Red Hat 6.2 doesn't understand the southern hemisphere
3047 after New Year's Day.
3050 time_t groundhogday = 1044144000; /* GMT-based */
3051 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
3055 if (localtime(&groundhogday)->tm_hour != 0)
3058 /* For UTC, tzname[1] is sometimes "", sometimes " " */
3059 if (strcmp(tzname[0], "UTC") ||
3060 (tzname[1][0] != 0 && tzname[1][0] != ' '))
3064 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
3066 if (localtime(&groundhogday)->tm_hour != 19)
3069 if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT"))
3073 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
3075 if (localtime(&groundhogday)->tm_hour != 11)
3078 if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT"))
3082 #if HAVE_STRUCT_TM_TM_ZONE
3083 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
3085 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
3092 ac_cv_working_tzset=yes,
3093 ac_cv_working_tzset=no,
3094 ac_cv_working_tzset=no)])
3095 AC_MSG_RESULT($ac_cv_working_tzset)
3096 if test "$ac_cv_working_tzset" = yes
3098 AC_DEFINE(HAVE_WORKING_TZSET, 1,
3099 [Define if tzset() actually switches the local timezone in a meaningful way.])
3102 # Look for subsecond timestamps in struct stat
3103 AC_MSG_CHECKING(for tv_nsec in struct stat)
3104 AC_CACHE_VAL(ac_cv_stat_tv_nsec,
3105 AC_TRY_COMPILE([#include <sys/stat.h>], [
3107 st.st_mtim.tv_nsec = 1;
3109 ac_cv_stat_tv_nsec=yes,
3110 ac_cv_stat_tv_nsec=no,
3111 ac_cv_stat_tv_nsec=no))
3112 AC_MSG_RESULT($ac_cv_stat_tv_nsec)
3113 if test "$ac_cv_stat_tv_nsec" = yes
3115 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
3116 [Define if you have struct stat.st_mtim.tv_nsec])
3119 # Look for BSD style subsecond timestamps in struct stat
3120 AC_MSG_CHECKING(for tv_nsec2 in struct stat)
3121 AC_CACHE_VAL(ac_cv_stat_tv_nsec2,
3122 AC_TRY_COMPILE([#include <sys/stat.h>], [
3124 st.st_mtimespec.tv_nsec = 1;
3126 ac_cv_stat_tv_nsec2=yes,
3127 ac_cv_stat_tv_nsec2=no,
3128 ac_cv_stat_tv_nsec2=no))
3129 AC_MSG_RESULT($ac_cv_stat_tv_nsec2)
3130 if test "$ac_cv_stat_tv_nsec2" = yes
3132 AC_DEFINE(HAVE_STAT_TV_NSEC2, 1,
3133 [Define if you have struct stat.st_mtimensec])
3136 # On HP/UX 11.0, mvwdelch is a block with a return statement
3137 AC_MSG_CHECKING(whether mvwdelch is an expression)
3138 AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
3139 AC_TRY_COMPILE([#include <curses.h>], [
3141 rtn = mvwdelch(0,0,0);
3142 ], ac_cv_mvwdelch_is_expression=yes,
3143 ac_cv_mvwdelch_is_expression=no,
3144 ac_cv_mvwdelch_is_expression=yes))
3145 AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
3147 if test "$ac_cv_mvwdelch_is_expression" = yes
3149 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
3150 [Define if mvwdelch in curses.h is an expression.])
3153 AC_MSG_CHECKING(whether WINDOW has _flags)
3154 AC_CACHE_VAL(ac_cv_window_has_flags,
3155 AC_TRY_COMPILE([#include <curses.h>], [
3158 ], ac_cv_window_has_flags=yes,
3159 ac_cv_window_has_flags=no,
3160 ac_cv_window_has_flags=no))
3161 AC_MSG_RESULT($ac_cv_window_has_flags)
3164 if test "$ac_cv_window_has_flags" = yes
3166 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3167 [Define if WINDOW in curses.h offers a field _flags.])
3170 AC_MSG_CHECKING(for /dev/ptmx)
3172 if test -e /dev/ptmx
3175 AC_DEFINE(HAVE_DEV_PTMX, 1,
3176 [Define if we have /dev/ptmx.])
3181 AC_MSG_CHECKING(for /dev/ptc)
3186 AC_DEFINE(HAVE_DEV_PTC, 1,
3187 [Define if we have /dev/ptc.])
3192 AC_CHECK_TYPE(socklen_t,,
3193 AC_DEFINE(socklen_t,int,
3194 Define to `int' if <sys/socket.h> does not define.),[
3195 #ifdef HAVE_SYS_TYPES_H
3196 #include <sys/types.h>
3198 #ifdef HAVE_SYS_SOCKET_H
3199 #include <sys/socket.h>
3203 AC_SUBST(THREADHEADERS)
3205 for h in `(cd $srcdir;echo Python/thread_*.h)`
3207 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3211 SRCDIRS="Parser Grammar Objects Python Modules Mac"
3212 AC_MSG_CHECKING(for build directories)
3213 for dir in $SRCDIRS; do
3214 if test ! -d $dir; then
3220 # generate output files
3221 AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
3224 echo "creating Modules/Setup"
3225 if test ! -f Modules/Setup
3227 cp $srcdir/Modules/Setup.dist Modules/Setup
3230 echo "creating Modules/Setup.local"
3231 if test ! -f Modules/Setup.local
3233 echo "# Edit this file for local setup changes" >Modules/Setup.local
3236 echo "creating Makefile"
3237 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3238 -s Modules Modules/Setup.config \
3239 Modules/Setup.local Modules/Setup