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.4)
6 AC_REVISION($Revision$)
8 AC_INIT(python, PYTHON_VERSION)
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 define_xopen_source=yes
55 # Arguments passed to configure.
57 CONFIG_ARGS="$ac_configure_args"
59 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
60 AC_ARG_ENABLE(framework,
61 AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework),
65 enableval=/Library/Frameworks
70 PYTHONFRAMEWORKDIR=no-framework
71 PYTHONFRAMEWORKPREFIX=
72 PYTHONFRAMEWORKINSTALLDIR=
76 PYTHONFRAMEWORK=Python
77 PYTHONFRAMEWORKDIR=Python.framework
78 PYTHONFRAMEWORKPREFIX=$enableval
79 PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
80 prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
84 PYTHONFRAMEWORKDIR=no-framework
85 PYTHONFRAMEWORKPREFIX=
86 PYTHONFRAMEWORKINSTALLDIR=
89 AC_SUBST(PYTHONFRAMEWORK)
90 AC_SUBST(PYTHONFRAMEWORKDIR)
91 AC_SUBST(PYTHONFRAMEWORKPREFIX)
92 AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)
95 ## AC_HELP_STRING(--with-dyld,
96 ## Use (OpenStep|Rhapsody) dynamic linker))
98 # Set name for machine-dependent library files
100 AC_MSG_CHECKING(MACHDEP)
101 if test -z "$MACHDEP"
103 ac_sys_system=`uname -s`
104 if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \
105 -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
106 ac_sys_release=`uname -v`
108 ac_sys_release=`uname -r`
110 ac_md_system=`echo $ac_sys_system |
111 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
112 ac_md_release=`echo $ac_sys_release |
113 tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
114 MACHDEP="$ac_md_system$ac_md_release"
117 cygwin*) MACHDEP="cygwin";;
118 darwin*) MACHDEP="darwin";;
119 atheos*) MACHDEP="atheos";;
120 irix646) MACHDEP="irix6";;
121 '') MACHDEP="unknown";;
125 # Some systems cannot stand _XOPEN_SOURCE being defined at all; they
126 # disable features if it is defined, without any means to access these
127 # features as extensions. For these systems, we skip the definition of
128 # _XOPEN_SOURCE. Before adding a system to the list to gain access to
129 # some feature, make sure there is no alternative way to access this
130 # feature. Also, when using wildcards, make sure you have verified the
131 # need for not defining _XOPEN_SOURCE on all systems matching the
132 # wildcard, and that the wildcard does not include future systems
133 # (which may remove their limitations).
134 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
135 case $ac_sys_system/$ac_sys_release in
136 # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined,
137 # even though select is a POSIX function. Reported by J. Ribbens.
138 # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
139 OpenBSD/2.* | OpenBSD/3.@<:@01234@:>@)
140 define_xopen_source=no;;
141 # On Solaris 2.6, sys/wait.h is inconsistent in the usage
142 # of union __?sigval. Reported by Stuart Bishop.
144 define_xopen_source=no;;
145 # On UnixWare 7, u_long is never defined with _XOPEN_SOURCE,
146 # but used in /usr/include/netinet/tcp.h. Reported by Tim Rice.
147 # Reconfirmed for 7.1.4 by Martin v. Loewis.
148 OpenUNIX/8.0.0| UnixWare/7.1.@<:@0-4@:>@)
149 define_xopen_source=no;;
150 # On OpenServer 5, u_short is never defined with _XOPEN_SOURCE,
151 # but used in struct sockaddr.sa_family. Reported by Tim Rice.
153 define_xopen_source=no;;
154 # On FreeBSD 4.8 and MacOS X 10.2, a bug in ncurses.h means that
155 # it craps out if _XOPEN_EXTENDED_SOURCE is defined. Apparently,
156 # this is fixed in 10.3, which identifies itself as Darwin/7.*
157 # This should hopefully be fixed in FreeBSD 4.9
158 FreeBSD/4.8* | Darwin/6* )
159 define_xopen_source=no;;
160 # On AIX 4, mbstate_t is defined only when _XOPEN_SOURCE == 500 but used in
161 # wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined or
162 # has another value. By not (re)defining it, the defaults come in place.
164 define_xopen_source=no;;
167 if test $define_xopen_source = yes
169 AC_DEFINE(_XOPEN_SOURCE, 600,
170 Define to the level of X/Open that your system supports)
172 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
173 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
174 # several APIs are not declared. Since this is also needed in some
175 # cases for HP-UX, we define it globally.
177 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Define to activate Unix95-and-earlier features)
178 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
183 # SGI compilers allow the specification of the both the ABI and the
184 # ISA on the command line. Depending on the values of these switches,
185 # different and often incompatable code will be generated.
187 # The SGI_ABI variable can be used to modify the CC and LDFLAGS and
188 # thus supply support for various ABI/ISA combinations. The MACHDEP
189 # variable is also adjusted.
192 if test ! -z "$SGI_ABI"
195 LDFLAGS="$SGI_ABI $LDFLAGS"
196 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
198 AC_MSG_RESULT($MACHDEP)
200 # And add extra plat-mac for darwin
201 AC_SUBST(EXTRAPLATDIR)
202 AC_SUBST(EXTRAMACHDEPPATH)
203 AC_MSG_CHECKING(EXTRAPLATDIR)
204 if test -z "$EXTRAPLATDIR"
208 EXTRAPLATDIR="\$(PLATMACDIRS)"
209 EXTRAMACHDEPPATH="\$(PLATMACPATH)"
217 AC_MSG_RESULT($EXTRAPLATDIR)
219 # Record the configure-time value of MACOSX_DEPLOYMENT_TARGET,
220 # it may influence the way we can build extensions, so distutils
222 AC_SUBST(CONFIGURE_MACOSX_DEPLOYMENT_TARGET)
223 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
225 # checks for alternative programs
227 # compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
228 # for debug/optimization stuff. BASECFLAGS is for flags that are required
229 # just to get things to compile and link. Users are free to override OPT
230 # when running configure or make. The build should not break if they do.
231 # BASECFLAGS should generally not be messed with, however.
233 # XXX shouldn't some/most/all of this code be merged with the stuff later
234 # on that fiddles with OPT and BASECFLAGS?
235 AC_MSG_CHECKING(for --without-gcc)
237 AC_HELP_STRING(--without-gcc,never use gcc),
245 without_gcc=$withval;;
247 case $ac_sys_system in
255 BASECFLAGS="$BASECFLAGS -export pragma"
257 LDFLAGS="$LDFLAGS -nodup"
265 AC_MSG_ERROR([Unknown BeOS platform "$BE_HOST_CPU"])
268 AR="\$(srcdir)/Modules/ar_beos"
276 AC_MSG_RESULT($without_gcc)
281 AC_MSG_CHECKING(for --with-cxx=<compiler>)
283 AC_HELP_STRING(--with-cxx=<compiler>, enable C++ support),
296 AC_MSG_RESULT($with_cxx)
298 if test "$with_cxx" = "yes"
300 AC_MSG_ERROR([must supply a compiler when using --with-cxx])
303 dnl The following fragment works similar to AC_PROG_CXX.
304 dnl It does not fail if CXX is not found, and it is not executed if
305 dnl --without-cxx was given.
306 dnl Finally, it does not test whether CXX is g++.
308 dnl Autoconf 2.5x does not have AC_PROG_CXX_WORKS anymore
309 ifdef([AC_PROG_CXX_WORKS],[],
310 [AC_DEFUN([AC_PROG_CXX_WORKS],
311 [AC_LANG_PUSH(C++)dnl
317 if test "$check_cxx" = "yes"
319 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
320 if test "$CXX" = "notfound"
328 # If the user switches compilers, we can't believe the cache
329 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
331 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
332 (it is also a good idea to do 'make clean' before compiling)])
337 # checks for UNIX variants that set C preprocessor variables
340 # Check for unsupported systems
341 case $ac_sys_system/$ac_sys_release in
343 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
344 echo See README for details.
349 AC_MSG_CHECKING(for --with-suffix)
351 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
358 AC_MSG_RESULT($EXEEXT)
360 # Test whether we're running on a non-case-sensitive system, in which
361 # case we give a warning if no ext is given
362 AC_SUBST(BUILDEXEEXT)
363 AC_MSG_CHECKING(for case-insensitive build directory)
364 if test ! -d CaseSensitiveTestDir; then
365 mkdir CaseSensitiveTestDir
368 if test -d casesensitivetestdir
376 rmdir CaseSensitiveTestDir
381 gcc) CC="$CC -D_HAVE_BSDI";;
385 case $ac_sys_system in
388 cc|*/cc) CC="$CC -Ae";;
392 cc) CC="$CC -Wl,-Bexport";;
395 # Some functions have a prototype only with that define, e.g. confstr
396 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
402 AC_MSG_CHECKING(LIBRARY)
403 if test -z "$LIBRARY"
405 LIBRARY='libpython$(VERSION).a'
407 AC_MSG_RESULT($LIBRARY)
409 # LDLIBRARY is the name of the library to link against (as opposed to the
410 # name of the library into which to insert object files). BLDLIBRARY is also
411 # the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
412 # is blank as the main program is not linked directly against LDLIBRARY.
413 # LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
414 # systems without shared libraries, LDLIBRARY is the same as LIBRARY
415 # (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
416 # DLLLIBRARY is the shared (i.e., DLL) library.
418 # RUNSHARED is used to run shared python without installed libraries
420 # INSTSONAME is the name of the shared library that will be use to install
421 # on the system - some systems like version suffix, others don't
425 AC_SUBST(LDLIBRARYDIR)
429 BLDLIBRARY='$(LDLIBRARY)'
430 INSTSONAME='$(LDLIBRARY)'
435 # LINKCC is the command that links the python executable -- default is $(CC).
436 # If CXX is set, and if it is needed to link a main function that was
437 # compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
438 # python might then depend on the C++ runtime
439 # This is altered for AIX in order to build the export list before
442 AC_MSG_CHECKING(LINKCC)
445 if test -z "$CXX"; then
446 LINKCC="\$(PURIFY) \$(CC)"
448 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
449 $CXX -c conftest.$ac_ext 2>&5
450 if $CC -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
451 && test -s conftest$ac_exeext && ./conftest$ac_exeext
453 LINKCC="\$(PURIFY) \$(CC)"
455 LINKCC="\$(PURIFY) \$(CXX)"
459 case $ac_sys_system in
462 if test $ac_sys_release -ge 5 -o \
463 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
466 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
468 LINKCC="$LINKCC -L/usr/lib/ia64l64";;
471 AC_MSG_RESULT($LINKCC)
473 AC_MSG_CHECKING(for --enable-shared)
474 AC_ARG_ENABLE(shared,
475 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
477 if test -z "$enable_shared"
479 case $ac_sys_system in
481 enable_shared="yes";;
486 AC_MSG_RESULT($enable_shared)
488 AC_MSG_CHECKING(for --enable-profiling)
489 AC_ARG_ENABLE(profiling,
490 AC_HELP_STRING(--enable-profiling, enable C-level code profiling),
493 AC_TRY_RUN([int main() { return 0; }],
494 ac_enable_profiling="yes",
495 ac_enable_profiling="no",
496 ac_enable_profiling="no")
498 AC_MSG_RESULT($ac_enable_profiling)
500 case "$ac_enable_profiling" in
502 BASECFLAGS="-pg $BASECFLAGS"
503 LDFLAGS="-pg $LDFLAGS"
507 AC_MSG_CHECKING(LDLIBRARY)
509 # MacOSX framework builds need more magic. LDLIBRARY is the dynamic
510 # library that we build, but we do not want to link against it (we
511 # will find it with a -framework option). For this reason there is an
512 # extra variable BLDLIBRARY against which Python and the extension
513 # modules are linked, BLDLIBRARY. This is normally the same as
514 # LDLIBRARY, but empty for MacOSX framework builds.
515 if test "$enable_framework"
517 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
518 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
521 BLDLIBRARY='$(LDLIBRARY)'
524 # Other platforms follow
525 if test $enable_shared = "yes"; then
526 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
527 case $ac_sys_system in
529 LDLIBRARY='libpython$(VERSION).so'
532 LDLIBRARY='libpython$(VERSION).dll.a'
533 DLLLIBRARY='libpython$(VERSION).dll'
536 LDLIBRARY='libpython$(VERSION).so'
537 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
538 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
539 INSTSONAME="$LDLIBRARY".$SOVERSION
542 LDLIBRARY='libpython$(VERSION).so'
543 BLDLIBRARY='-L. -lpython$(VERSION)'
544 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
545 INSTSONAME="$LDLIBRARY".$SOVERSION
548 LDLIBRARY='libpython$(VERSION).sl'
549 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
550 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
553 LDLIBRARY='libpython$(VERSION).so'
554 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
555 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
558 LDLIBRARY='libpython$(VERSION).so'
559 BLDLIBRARY='-L. -lpython$(VERSION)'
560 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
563 else # shared is disabled
564 case $ac_sys_system in
566 BLDLIBRARY='$(LIBRARY)'
567 LDLIBRARY='libpython$(VERSION).dll.a'
572 AC_MSG_RESULT($LDLIBRARY)
576 AC_CHECK_PROGS(AR, ar aal, ar)
580 # install -d does not work on BSDI or HP-UX
581 if test -z "$INSTALL"
583 INSTALL="${srcdir}/install-sh -c"
588 # Not every filesystem supports hard links
590 if test -z "$LN" ; then
591 case $ac_sys_system in
593 CYGWIN*) LN="ln -s";;
594 atheos*) LN="ln -s";;
599 # Check for --with-pydebug
600 AC_MSG_CHECKING(for --with-pydebug)
602 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
604 if test "$withval" != no
606 AC_DEFINE(Py_DEBUG, 1,
607 [Define if you want to build an interpreter with many run-time checks.])
610 else AC_MSG_RESULT(no); Py_DEBUG='false'
614 # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
615 # merged with this chunk of code?
617 # Optimizer/debugger flags
618 # ------------------------
619 # (The following bit of code is complicated enough - please keep things
620 # indented properly. Just pretend you're editing Python code. ;-)
622 # There are two parallel sets of case statements below, one that checks to
623 # see if OPT was set and one that does BASECFLAGS setting based upon
624 # compiler and platform. BASECFLAGS tweaks need to be made even if the
627 # tweak OPT based on compiler and platform, only if the user didn't set
628 # it on the command line
634 case $ac_cv_prog_cc_g in
636 if test "$Py_DEBUG" = 'true' ; then
637 # Optimization messes up debuggers, so turn it off for
639 OPT="-g -Wall -Wstrict-prototypes"
641 OPT="-g -O3 -Wall -Wstrict-prototypes"
645 OPT="-O3 -Wall -Wstrict-prototypes"
648 case $ac_sys_system in
649 SCO_SV*) OPT="$OPT -m486 -DSCO5"
659 # The current (beta) Monterey compiler dies with optimizations
660 # XXX what is Monterey? Does it still die w/ -O? Can we get rid of this?
661 case $ac_sys_system in
670 # tweak BASECFLAGS based on compiler and platform
673 # Python violates C99 rules, by casting between incompatible
674 # pointer types. GCC may generate bad code as a result of that,
675 # so use -fno-strict-aliasing if supported.
676 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
678 CC="$CC -fno-strict-aliasing"
679 AC_TRY_RUN([int main() { return 0; }],
680 ac_cv_no_strict_aliasing_ok=yes,
681 ac_cv_no_strict_aliasing_ok=no,
682 ac_cv_no_strict_aliasing_ok=no)
684 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
685 if test $ac_cv_no_strict_aliasing_ok = yes
687 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
689 case $ac_sys_system in
691 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
693 # is there any other compiler on Darwin besides gcc?
695 BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd"
701 case $ac_sys_system in
703 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
706 BASECFLAGS="$BASECFLAGS -ieee -std"
709 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
715 if test "$Py_DEBUG" = 'true'; then
721 if test "$ac_arch_flags"
723 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
726 AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
727 AC_CACHE_VAL(ac_cv_opt_olimit_ok,
729 CC="$CC -OPT:Olimit=0"
730 AC_TRY_RUN([int main() { return 0; }],
731 ac_cv_opt_olimit_ok=yes,
732 ac_cv_opt_olimit_ok=no,
733 ac_cv_opt_olimit_ok=no)
735 AC_MSG_RESULT($ac_cv_opt_olimit_ok)
736 if test $ac_cv_opt_olimit_ok = yes; then
737 case $ac_sys_system in
738 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
739 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
744 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
748 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
749 AC_CACHE_VAL(ac_cv_olimit_ok,
751 CC="$CC -Olimit 1500"
752 AC_TRY_RUN([int main() { return 0; }],
757 AC_MSG_RESULT($ac_cv_olimit_ok)
758 if test $ac_cv_olimit_ok = yes; then
759 BASECFLAGS="$BASECFLAGS -Olimit 1500"
763 # On some compilers, pthreads are available without further options
764 # (e.g. MacOS X). On some of these systems, the compiler will not
765 # complain if unaccepted options are passed (e.g. gcc on Mac OS X).
766 # So we have to see first whether pthreads are available without
767 # options before we can check whether -Kpthread improves anything.
768 AC_MSG_CHECKING(whether pthreads are available without options)
769 AC_CACHE_VAL(ac_cv_pthread_is_default,
773 void* routine(void* p){return NULL;}
777 if(pthread_create(&p,NULL,routine,NULL)!=0)
779 (void)pthread_detach(p);
784 ac_cv_pthread_is_default=yes
788 ac_cv_pthread_is_default=no,
789 ac_cv_pthread_is_default=no)
791 AC_MSG_RESULT($ac_cv_pthread_is_default)
794 if test $ac_cv_pthread_is_default = yes
798 # -Kpthread, if available, provides the right #defines
799 # and linker options to make pthread_create available
800 # Some compilers won't report that they do not support -Kpthread,
801 # so we need to run a program to see whether it really made the
802 # function available.
803 AC_MSG_CHECKING(whether $CC accepts -Kpthread)
804 AC_CACHE_VAL(ac_cv_kpthread,
810 void* routine(void* p){return NULL;}
814 if(pthread_create(&p,NULL,routine,NULL)!=0)
816 (void)pthread_detach(p);
824 AC_MSG_RESULT($ac_cv_kpthread)
827 if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
829 # -Kthread, if available, provides the right #defines
830 # and linker options to make pthread_create available
831 # Some compilers won't report that they do not support -Kthread,
832 # so we need to run a program to see whether it really made the
833 # function available.
834 AC_MSG_CHECKING(whether $CC accepts -Kthread)
835 AC_CACHE_VAL(ac_cv_kthread,
841 void* routine(void* p){return NULL;}
845 if(pthread_create(&p,NULL,routine,NULL)!=0)
847 (void)pthread_detach(p);
855 AC_MSG_RESULT($ac_cv_kthread)
858 if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
860 # -pthread, if available, provides the right #defines
861 # and linker options to make pthread_create available
862 # Some compilers won't report that they do not support -pthread,
863 # so we need to run a program to see whether it really made the
864 # function available.
865 AC_MSG_CHECKING(whether $CC accepts -pthread)
866 AC_CACHE_VAL(ac_cv_thread,
872 void* routine(void* p){return NULL;}
876 if(pthread_create(&p,NULL,routine,NULL)!=0)
878 (void)pthread_detach(p);
886 AC_MSG_RESULT($ac_cv_pthread)
889 # If we have set a CC compiler flag for thread support then
890 # check if it works for CXX, too.
894 AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
897 if test "$ac_cv_kpthread" = "yes"
901 elif test "$ac_cv_kthread" = "yes"
905 elif test "$ac_cv_pthread" = "yes"
911 if test $ac_cv_cxx_thread = yes
913 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
914 $CXX -c conftest.$ac_ext 2>&5
915 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
916 && test -s conftest$ac_exeext && ./conftest$ac_exeext
926 AC_MSG_RESULT($ac_cv_cxx_thread)
928 dnl # check for ANSI or K&R ("traditional") preprocessor
929 dnl AC_MSG_CHECKING(for C preprocessor type)
931 dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
933 dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
934 dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
935 dnl AC_MSG_RESULT($cpp_type)
937 # checks for header files
939 AC_CHECK_HEADERS(dlfcn.h fcntl.h grp.h langinfo.h \
940 libintl.h ncurses.h poll.h pthread.h \
941 stropts.h termios.h thread.h \
943 sys/audioio.h sys/bsdtty.h sys/file.h sys/lock.h sys/mkdev.h sys/modem.h \
944 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/time.h sys/times.h \
945 sys/un.h sys/utsname.h sys/wait.h pty.h term.h libutil.h \
946 sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
947 bluetooth/bluetooth.h)
951 # checks for typedefs
953 AC_MSG_CHECKING(for clock_t in time.h)
954 AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
955 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
957 AC_MSG_RESULT($was_it_defined)
959 # Check whether using makedev requires defining _OSF_SOURCE
960 AC_MSG_CHECKING(for makedev)
961 AC_TRY_LINK([#include <sys/types.h> ],
963 ac_cv_has_makedev=yes,
964 ac_cv_has_makedev=no)
965 if test "$ac_cv_has_makedev" = "no"; then
966 # we didn't link, try if _OSF_SOURCE will allow us to link
968 #define _OSF_SOURCE 1
969 #include <sys/types.h>
972 ac_cv_has_makedev=yes,
973 ac_cv_has_makedev=no)
974 if test "$ac_cv_has_makedev" = "yes"; then
975 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
978 AC_MSG_RESULT($ac_cv_has_makedev)
979 if test "$ac_cv_has_makedev" = "yes"; then
980 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
983 # Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
984 # the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
985 # defined, but the compiler does not support pragma redefine_extname,
986 # and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
987 # structures (such as rlimit64) without declaring them. As a
988 # work-around, disable LFS on such configurations
991 AC_MSG_CHECKING(Solaris LFS bug)
993 #define _LARGEFILE_SOURCE 1
994 #define _FILE_OFFSET_BITS 64
995 #include <sys/resource.h>
996 ],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
997 AC_MSG_RESULT($sol_lfs_bug)
998 if test "$sol_lfs_bug" = "yes"; then
1002 if test "$use_lfs" = "yes"; then
1003 # Two defines needed to enable largefile support on various platforms
1004 # These may affect some typedefs
1005 AC_DEFINE(_LARGEFILE_SOURCE, 1,
1006 [This must be defined on some systems to enable large file support.])
1007 AC_DEFINE(_FILE_OFFSET_BITS, 64,
1008 [This must be set to 64 on some systems to enable large file support.])
1011 # Add some code to confdefs.h so that the test for off_t works on SCO
1012 cat >> confdefs.h <<\EOF
1018 # Type availability checks
1026 # Sizes of various common basic types
1027 # ANSI C requires sizeof(char) == 1, so no need to check it
1028 AC_CHECK_SIZEOF(int, 4)
1029 AC_CHECK_SIZEOF(long, 4)
1030 AC_CHECK_SIZEOF(void *, 4)
1031 AC_CHECK_SIZEOF(short, 2)
1032 AC_CHECK_SIZEOF(float, 4)
1033 AC_CHECK_SIZEOF(double, 8)
1034 AC_CHECK_SIZEOF(fpos_t, 4)
1036 AC_MSG_CHECKING(for long long support)
1038 AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1039 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1042 AC_MSG_RESULT($have_long_long)
1043 if test "$have_long_long" = yes ; then
1044 AC_CHECK_SIZEOF(long long, 8)
1047 AC_MSG_CHECKING(for uintptr_t support)
1049 AC_TRY_COMPILE([], [uintptr_t x; x = (uintptr_t)0;], [
1050 AC_DEFINE(HAVE_UINTPTR_T, 1, [Define this if you have the type uintptr_t.])
1053 AC_MSG_RESULT($have_uintptr_t)
1054 if test "$have_uintptr_t" = yes ; then
1055 AC_CHECK_SIZEOF(uintptr_t, 4)
1058 # Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1059 AC_MSG_CHECKING(size of off_t)
1060 AC_CACHE_VAL(ac_cv_sizeof_off_t,
1061 [AC_TRY_RUN([#include <stdio.h>
1062 #include <sys/types.h>
1065 FILE *f=fopen("conftestval", "w");
1067 fprintf(f, "%d\n", sizeof(off_t));
1070 ac_cv_sizeof_off_t=`cat conftestval`,
1071 ac_cv_sizeof_off_t=0,
1072 ac_cv_sizeof_off_t=4)
1074 AC_MSG_RESULT($ac_cv_sizeof_off_t)
1075 AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1076 [The number of bytes in an off_t.])
1078 AC_MSG_CHECKING(whether to enable large file support)
1079 if test "$have_long_long" = yes -a \
1080 "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1081 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
1082 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1083 [Defined to enable large file support when an off_t is bigger than a long
1084 and long long is available and at least as big as an off_t. You may need
1085 to add some flags for configuration and compilation to enable this mode.
1086 (For Solaris and Linux, the necessary defines are already defined.)])
1092 # AC_CHECK_SIZEOF() doesn't include <time.h>.
1093 AC_MSG_CHECKING(size of time_t)
1094 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1095 [AC_TRY_RUN([#include <stdio.h>
1099 FILE *f=fopen("conftestval", "w");
1101 fprintf(f, "%d\n", sizeof(time_t));
1104 ac_cv_sizeof_time_t=`cat conftestval`,
1105 ac_cv_sizeof_time_t=0,
1106 ac_cv_sizeof_time_t=4)
1108 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1109 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1110 [The number of bytes in a time_t.])
1113 # if have pthread_t then define SIZEOF_PTHREAD_T
1115 if test "$ac_cv_kpthread" = "yes"
1116 then CC="$CC -Kpthread"
1117 elif test "$ac_cv_kthread" = "yes"
1118 then CC="$CC -Kthread"
1119 elif test "$ac_cv_pthread" = "yes"
1120 then CC="$CC -pthread"
1122 AC_MSG_CHECKING(for pthread_t)
1124 AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
1125 AC_MSG_RESULT($have_pthread_t)
1126 if test "$have_pthread_t" = yes ; then
1127 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1128 AC_MSG_CHECKING(size of pthread_t)
1129 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1130 [AC_TRY_RUN([#include <stdio.h>
1131 #include <pthread.h>
1134 FILE *f=fopen("conftestval", "w");
1136 fprintf(f, "%d\n", sizeof(pthread_t));
1139 ac_cv_sizeof_pthread_t=`cat conftestval`,
1140 ac_cv_sizeof_pthread_t=0,
1141 ac_cv_sizeof_pthread_t=4)
1143 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
1144 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1145 [The number of bytes in a pthread_t.])
1149 AC_MSG_CHECKING(for --enable-toolbox-glue)
1150 AC_ARG_ENABLE(toolbox-glue,
1151 AC_HELP_STRING(--enable-toolbox-glue, disable/enable MacOSX glue code for extensions))
1153 if test -z "$enable_toolbox_glue"
1155 case $ac_sys_system/$ac_sys_release in
1157 enable_toolbox_glue="yes";;
1159 enable_toolbox_glue="no";;
1162 case "$enable_toolbox_glue" in
1164 extra_frameworks="-framework CoreServices -framework Foundation"
1165 extra_machdep_objs="Python/mactoolboxglue.o"
1166 extra_undefs="-u __dummy -u _PyMac_Error"
1167 AC_DEFINE(USE_TOOLBOX_OBJECT_GLUE, 1,
1168 [Define if you want to use MacPython modules on MacOSX in unix-Python.])
1172 extra_machdep_objs=""
1176 AC_MSG_RESULT($enable_toolbox_glue)
1178 AC_SUBST(LIBTOOL_CRUFT)
1179 case $ac_sys_system/$ac_sys_release in
1181 LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc"
1182 LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks"
1183 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/Python'
1184 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1186 LIBTOOL_CRUFT="-lcc_dynamic -arch_only ppc"
1187 LIBTOOL_CRUFT="$LIBTOOL_CRUFT $extra_frameworks"
1188 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/Python'
1189 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1192 AC_MSG_CHECKING(for --enable-framework)
1193 if test "$enable_framework"
1195 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
1196 # -F. is needed to allow linking to the framework while
1197 # in the build location.
1198 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1199 [Define if you want to produce an OpenStep/Rhapsody framework
1200 (shared library plus accessory files).])
1206 AC_MSG_CHECKING(for dyld)
1207 case $ac_sys_system/$ac_sys_release in
1209 AC_DEFINE(WITH_DYLD, 1,
1210 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1211 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1212 linker (rld). Dyld is necessary to support frameworks.])
1213 AC_MSG_RESULT(always on for Darwin)
1220 # Set info about shared libraries.
1225 AC_SUBST(LINKFORSHARED)
1226 # SO is the extension of shared libraries `(including the dot!)
1227 # -- usually .so, .sl on HP-UX, .dll on Cygwin
1231 case $ac_sys_system in
1237 # this might also be a termcap variable, see #610332
1239 echo '====================================================================='
1241 echo '+ WARNING: You have set SO in your environment. +'
1242 echo '+ Do you really mean to change the extension for shared libraries? +'
1243 echo '+ Continuing in 10 seconds to let you to ponder. +'
1245 echo '====================================================================='
1249 # LDSHARED is the ld *command* used to create shared library
1250 # -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
1251 # (Shared libraries in this instance are shared modules to be loaded into
1252 # Python, as opposed to building Python itself as a shared library.)
1253 AC_MSG_CHECKING(LDSHARED)
1254 if test -z "$LDSHARED"
1256 case $ac_sys_system/$ac_sys_release in
1258 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
1259 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
1262 BLDSHARED="\$(srcdir)/Modules/ld_so_beos $LDLIBRARY"
1263 LDSHARED="\$(BINLIBDEST)/config/ld_so_beos \$(LIBDIR)/$LDLIBRARY"
1265 IRIX/5*) LDSHARED="ld -shared";;
1266 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
1268 if test "$GCC" = "yes"
1269 then LDSHARED='$(CC) -shared'
1270 else LDSHARED='$(CC) -G';
1272 hp*|HP*) LDSHARED="ld -b";;
1273 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
1275 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1276 if test "$enable_framework" ; then
1277 # Link against the framework. All externals should be defined.
1278 BLDSHARED="$LDSHARED "'-Wl,-F. -framework $(PYTHONFRAMEWORK)'
1279 LDSHARED="$LDSHARED "'-Wl,-F$(PYTHONFRAMEWORKPREFIX) -framework $(PYTHONFRAMEWORK)'
1281 # No framework. Ignore undefined symbols, assuming they come from Python
1282 LDSHARED="$LDSHARED -undefined suppress"
1284 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
1285 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1286 if test "$enable_framework" ; then
1287 # Link against the framework. All externals should be defined.
1288 BLDSHARED="$LDSHARED "'-Wl,-F. -framework $(PYTHONFRAMEWORK)'
1289 LDSHARED="$LDSHARED "'-Wl,-F$(PYTHONFRAMEWORKPREFIX) -framework $(PYTHONFRAMEWORK)'
1291 # No framework, use the Python app as bundle-loader
1292 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1293 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1296 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1297 # This allows an extension to be used in any Python
1298 if test ${MACOSX_DEPLOYMENT_TARGET-10.1} '>' 10.2
1300 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1301 BLDSHARED="$LDSHARED"
1302 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET
1304 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1305 if test "$enable_framework" ; then
1306 # Link against the framework. All externals should be defined.
1307 BLDSHARED="$LDSHARED "'-Wl,-F. -framework $(PYTHONFRAMEWORK)'
1308 LDSHARED="$LDSHARED "'-Wl,-F$(PYTHONFRAMEWORKPREFIX) -framework $(PYTHONFRAMEWORK)'
1310 # No framework, use the Python app as bundle-loader
1311 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1312 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1316 Linux*|GNU*) LDSHARED='$(CC) -shared';;
1317 BSD/OS*/4*) LDSHARED="gcc -shared";;
1319 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1321 LDSHARED="cc -shared ${LDFLAGS}"
1323 LDSHARED="ld -Bshareable ${LDFLAGS}"
1325 NetBSD*) LDSHARED="cc -shared ${LDFLAGS}";;
1326 OpenUNIX*|UnixWare*)
1327 if test "$GCC" = "yes"
1328 then LDSHARED='$(CC) -shared'
1329 else LDSHARED='$(CC) -G'
1331 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
1332 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
1333 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
1334 atheos*) LDSHARED="gcc -shared";;
1338 AC_MSG_RESULT($LDSHARED)
1339 BLDSHARED=${BLDSHARED-$LDSHARED}
1340 # CCSHARED are the C *flags* used to create objects to go into a shared
1341 # library (module) -- this is only needed for a few systems
1342 AC_MSG_CHECKING(CCSHARED)
1343 if test -z "$CCSHARED"
1345 case $ac_sys_system/$ac_sys_release in
1346 SunOS*) if test "$GCC" = yes;
1347 then CCSHARED="-fPIC";
1349 hp*|HP*) if test "$GCC" = yes;
1350 then CCSHARED="-fPIC";
1353 Linux*|GNU*) CCSHARED="-fPIC";;
1354 BSD/OS*/4*) CCSHARED="-fpic";;
1355 FreeBSD*|NetBSD*|OpenBSD*) CCSHARED="-fPIC";;
1356 OpenUNIX*|UnixWare*)
1357 if test "$GCC" = "yes"
1358 then CCSHARED="-fPIC"
1359 else CCSHARED="-KPIC"
1362 if test "$GCC" = "yes"
1363 then CCSHARED="-fPIC"
1364 else CCSHARED="-Kpic -belf"
1366 Monterey*) CCSHARED="-G";;
1367 IRIX*/6*) case $CC in
1368 *gcc*) CCSHARED="-shared";;
1371 atheos*) CCSHARED="-fPIC";;
1374 AC_MSG_RESULT($CCSHARED)
1375 # LINKFORSHARED are the flags passed to the $(CC) command that links
1376 # the python executable -- this is only needed for a few systems
1377 AC_MSG_CHECKING(LINKFORSHARED)
1378 if test -z "$LINKFORSHARED"
1380 case $ac_sys_system/$ac_sys_release in
1381 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
1383 LINKFORSHARED="-Wl,-E -Wl,+s";;
1384 # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
1385 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
1386 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
1387 # -u libsys_s pulls in all symbols in libsys
1389 # -u __dummy makes the linker aware of the objc runtime
1390 # in System.framework; otherwise, __objcInit (referenced in
1391 # crt1.o) gets erroneously defined as common, which breaks dynamic
1392 # loading of any modules which reference it in System.framework.
1393 # -u _PyMac_Error is needed to pull in the mac toolbox glue, which is
1394 # not used by the core itself but which needs to be in the core so
1395 # that dynamically loaded extension modules have access to it.
1396 # -prebind is no longer used, because it actually seems to give a
1397 # slowdown in stead of a speedup, maybe due to the large number of
1398 # dynamic loads Python does.
1399 LINKFORSHARED="$extra_undefs -framework System"
1400 if test "$enable_framework"
1402 LINKFORSHARED="$LINKFORSHARED -Wl,-F. -framework Python"
1404 LINKFORSHARED="$LINKFORSHARED $extra_frameworks";;
1405 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
1406 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
1407 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
1408 FreeBSD*|NetBSD*|OpenBSD*)
1409 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1411 LINKFORSHARED="-Wl,--export-dynamic"
1413 SunOS/5*) case $CC in
1415 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
1417 LINKFORSHARED="-Xlinker --export-dynamic"
1421 if test $enable_shared = "no"
1423 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1427 AC_MSG_RESULT($LINKFORSHARED)
1429 AC_SUBST(CFLAGSFORSHARED)
1430 AC_MSG_CHECKING(CFLAGSFORSHARED)
1431 if test ! "$LIBRARY" = "$LDLIBRARY"
1433 case $ac_sys_system in
1435 # Cygwin needs CCSHARED when building extension DLLs
1436 # but not when building the interpreter DLL.
1437 CFLAGSFORSHARED='';;
1439 CFLAGSFORSHARED='$(CCSHARED)'
1442 AC_MSG_RESULT($CFLAGSFORSHARED)
1444 # SHLIBS are libraries (except -lc and -lm) to link to the python shared
1445 # library (with --enable-shared).
1446 # For platforms on which shared libraries are not allowed to have unresolved
1447 # symbols, this must be set to $(LIBS) (expanded by make). We do this even
1448 # if it is not required, since it creates a dependency of the shared library
1449 # to LIBS. This, in turn, means that applications linking the shared libpython
1450 # don't need to link LIBS explicitly. The default should be only changed
1451 # on systems where this approach causes problems.
1453 AC_MSG_CHECKING(SHLIBS)
1454 case "$ac_sys_system" in
1458 AC_MSG_RESULT($SHLIBS)
1461 # checks for libraries
1462 AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1463 AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
1465 # only check for sem_ini if thread support is requested
1466 if test "$with_threads" = "yes" -o -z "$with_threads"; then
1467 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1468 # posix4 on Solaris 2.6
1469 # pthread (first!) on Linux
1472 # check if we need libintl for locale functions
1473 AC_CHECK_LIB(intl, textdomain,
1474 AC_DEFINE(WITH_LIBINTL, 1,
1475 [Define to 1 if libintl is needed for locale functions.]))
1477 # checks for system dependent C++ extensions support
1478 case "$ac_sys_system" in
1479 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1480 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1481 [loadAndInit("", 0, "")],
1482 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1483 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1484 and you want support for AIX C++ shared extension modules.])
1485 AC_MSG_RESULT(yes)],
1486 [AC_MSG_RESULT(no)]);;
1490 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
1491 # BeOS' sockets are stashed in libnet.
1492 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
1493 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
1495 case "$ac_sys_system" in
1497 AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
1501 AC_MSG_CHECKING(for --with-libs)
1503 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1505 AC_MSG_RESULT($withval)
1506 LIBS="$withval $LIBS"
1508 [AC_MSG_RESULT(no)])
1510 # Determine if signalmodule should be used.
1511 AC_SUBST(USE_SIGNAL_MODULE)
1512 AC_SUBST(SIGNAL_OBJS)
1513 AC_MSG_CHECKING(for --with-signal-module)
1514 AC_ARG_WITH(signal-module,
1515 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
1517 if test -z "$with_signal_module"
1518 then with_signal_module="yes"
1520 AC_MSG_RESULT($with_signal_module)
1522 if test "${with_signal_module}" = "yes"; then
1523 USE_SIGNAL_MODULE=""
1526 USE_SIGNAL_MODULE="#"
1527 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1530 # This is used to generate Setup.config
1531 AC_SUBST(USE_THREAD_MODULE)
1532 USE_THREAD_MODULE=""
1534 AC_MSG_CHECKING(for --with-dec-threads)
1536 AC_ARG_WITH(dec-threads,
1537 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1539 AC_MSG_RESULT($withval)
1541 if test "${with_thread+set}" != set; then
1542 with_thread="$withval";
1544 [AC_MSG_RESULT(no)])
1546 # Templates for things AC_DEFINEd more than once.
1547 # For a single AC_DEFINE, no template is needed.
1548 AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1549 AH_TEMPLATE(_REENTRANT,
1550 [Define to force use of thread-safe errno, h_errno, and other functions])
1551 AH_TEMPLATE(WITH_THREAD,
1552 [Define if you want to compile in rudimentary thread support])
1554 AC_MSG_CHECKING(for --with-threads)
1555 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1556 AC_ARG_WITH(threads,
1557 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
1559 # --with-thread is deprecated, but check for it anyway
1560 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1562 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1563 [with_threads=$with_thread])
1565 if test -z "$with_threads"
1566 then with_threads="yes"
1568 AC_MSG_RESULT($with_threads)
1571 if test "$with_threads" = "no"
1573 USE_THREAD_MODULE="#"
1574 elif test "$ac_cv_pthread_is_default" = yes
1576 AC_DEFINE(WITH_THREAD)
1577 # Defining _REENTRANT on system with POSIX threads should not hurt.
1578 AC_DEFINE(_REENTRANT)
1580 THREADOBJ="Python/thread.o"
1581 elif test "$ac_cv_kpthread" = "yes"
1584 if test "$ac_cv_cxx_thread" = "yes"; then
1585 CXX="$CXX -Kpthread"
1587 AC_DEFINE(WITH_THREAD)
1589 THREADOBJ="Python/thread.o"
1590 elif test "$ac_cv_kthread" = "yes"
1593 if test "$ac_cv_cxx_thread" = "yes"; then
1596 AC_DEFINE(WITH_THREAD)
1598 THREADOBJ="Python/thread.o"
1599 elif test "$ac_cv_pthread" = "yes"
1602 if test "$ac_cv_cxx_thread" = "yes"; then
1605 AC_DEFINE(WITH_THREAD)
1607 THREADOBJ="Python/thread.o"
1609 if test ! -z "$with_threads" -a -d "$with_threads"
1610 then LDFLAGS="$LDFLAGS -L$with_threads"
1612 if test ! -z "$withval" -a -d "$withval"
1613 then LDFLAGS="$LDFLAGS -L$withval"
1616 # According to the POSIX spec, a pthreads implementation must
1617 # define _POSIX_THREADS in unistd.h. Some apparently don't (which ones?)
1618 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
1622 #ifdef _POSIX_THREADS
1625 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
1626 AC_MSG_RESULT($unistd_defines_pthreads)
1628 AC_DEFINE(_REENTRANT)
1629 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
1630 AC_DEFINE(C_THREADS)
1631 AC_DEFINE(HURD_C_THREADS, 1,
1632 [Define if you are using Mach cthreads directly under /include])
1633 LIBS="$LIBS -lthreads"
1634 THREADOBJ="Python/thread.o"],[
1635 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
1636 AC_DEFINE(C_THREADS)
1637 AC_DEFINE(MACH_C_THREADS, 1,
1638 [Define if you are using Mach cthreads under mach /])
1639 THREADOBJ="Python/thread.o"],[
1640 AC_MSG_CHECKING(for --with-pth)
1642 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
1643 [AC_MSG_RESULT($withval)
1644 AC_DEFINE([WITH_THREAD])
1645 AC_DEFINE([HAVE_PTH], 1,
1646 [Define if you have GNU PTH threads.])
1648 THREADOBJ="Python/thread.o"],
1651 # Just looking for pthread_create in libpthread is not enough:
1652 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
1653 # So we really have to include pthread.h, and then link.
1655 LIBS="$LIBS -lpthread"
1656 AC_MSG_CHECKING([for pthread_create in -lpthread])
1657 AC_TRY_LINK([#include <pthread.h>
1659 void * start_routine (void *arg) { exit (0); }], [
1660 pthread_create (NULL, NULL, start_routine, NULL)], [
1662 AC_DEFINE(WITH_THREAD)
1664 THREADOBJ="Python/thread.o"],[
1666 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
1668 THREADOBJ="Python/thread.o"],[
1669 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
1670 AC_DEFINE(ATHEOS_THREADS, 1,
1671 [Define this if you have AtheOS threads.])
1672 THREADOBJ="Python/thread.o"],[
1673 AC_CHECK_HEADER(kernel/OS.h, [AC_DEFINE(WITH_THREAD)
1674 AC_DEFINE(BEOS_THREADS, 1,
1675 [Define this if you have BeOS threads.])
1676 THREADOBJ="Python/thread.o"],[
1677 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
1679 LIBS="$LIBS -lpthreads"
1680 THREADOBJ="Python/thread.o"], [
1681 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
1684 THREADOBJ="Python/thread.o"], [
1685 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
1687 LIBS="$LIBS -lpthread"
1688 THREADOBJ="Python/thread.o"], [
1689 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
1692 THREADOBJ="Python/thread.o"],[
1693 USE_THREAD_MODULE="#"])
1694 ])])])])])])])])])])
1696 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
1698 THREADOBJ="Python/thread.o"
1699 USE_THREAD_MODULE=""])
1701 if test "$posix_threads" != "yes"; then
1702 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
1703 LIBS="$LIBS -lthread"
1704 THREADOBJ="Python/thread.o"
1705 USE_THREAD_MODULE=""])
1708 if test "$USE_THREAD_MODULE" != "#"
1710 # If the above checks didn't disable threads, (at least) OSF1
1711 # needs this '-threads' argument during linking.
1712 case $ac_sys_system in
1713 OSF1) LDLAST=-threads;;
1718 if test "$posix_threads" = "yes"; then
1719 if test "$unistd_defines_pthreads" = "no"; then
1720 AC_DEFINE(_POSIX_THREADS, 1,
1721 [Define if you have POSIX threads,
1722 and your system does not define that.])
1725 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
1726 case $ac_sys_system/$ac_sys_release in
1727 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
1728 Defined for Solaris 2.6 bug in pthread header.)
1730 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
1731 Define if the Posix semaphores do not work on your system)
1735 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
1736 AC_CACHE_VAL(ac_cv_pthread_system_supported,
1737 [AC_TRY_RUN([#include <pthread.h>
1738 void *foo(void *parm) {
1742 pthread_attr_t attr;
1744 if (pthread_attr_init(&attr)) exit(-1);
1745 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
1746 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
1749 ac_cv_pthread_system_supported=yes,
1750 ac_cv_pthread_system_supported=no,
1751 ac_cv_pthread_system_supported=no)
1753 AC_MSG_RESULT($ac_cv_pthread_system_supported)
1754 if test "$ac_cv_pthread_system_supported" = "yes"; then
1755 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
1757 AC_CHECK_FUNCS(pthread_sigmask,
1758 [case $ac_sys_system in
1760 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
1761 [Define if pthread_sigmask() does not work on your system.])
1767 # Check for enable-ipv6
1768 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
1769 AC_MSG_CHECKING([if --enable-ipv6 is specified])
1771 [ --enable-ipv6 Enable ipv6 (with ipv4) support
1772 --disable-ipv6 Disable ipv6 support],
1773 [ case "$enableval" in
1778 *) AC_MSG_RESULT(yes)
1779 AC_DEFINE(ENABLE_IPV6)
1785 dnl the check does not work on cross compilation case...
1786 AC_TRY_RUN([ /* AF_INET6 available check */
1787 #include <sys/types.h>
1788 #include <sys/socket.h>
1791 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
1805 if test "$ipv6" = "yes"; then
1806 AC_MSG_CHECKING(if RFC2553 API is available)
1807 AC_TRY_COMPILE([#include <sys/types.h>
1808 #include <netinet/in.h>],
1809 [struct sockaddr_in6 x;
1813 AC_MSG_RESULT(no, IPv6 disabled)
1817 if test "$ipv6" = "yes"; then
1818 AC_DEFINE(ENABLE_IPV6)
1826 if test "$ipv6" = "yes"; then
1827 AC_MSG_CHECKING([ipv6 stack type])
1828 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
1832 dnl http://www.kame.net/
1834 #include <netinet/in.h>
1835 #ifdef IPV6_INRIA_VERSION
1841 dnl http://www.kame.net/
1843 #include <netinet/in.h>
1849 ipv6libdir=/usr/local/v6/lib
1853 dnl http://www.v6.linux.or.jp/
1855 #include <features.h>
1856 #if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
1863 dnl http://www.v6.linux.or.jp/
1864 if test -d /usr/inet6; then
1867 ipv6libdir=/usr/inet6/lib
1868 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
1872 if test -f /etc/netconfig; then
1873 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
1881 #include <sys/param.h>
1882 #ifdef _TOSHIBA_INET6
1887 ipv6libdir=/usr/local/v6/lib])
1891 #include </usr/local/v6/include/sys/v6config.h>
1897 ipv6libdir=/usr/local/v6/lib;
1898 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
1902 #include <sys/param.h>
1903 #ifdef _ZETA_MINAMI_INET6
1908 ipv6libdir=/usr/local/v6/lib])
1911 if test "$ipv6type" != "unknown"; then
1915 AC_MSG_RESULT($ipv6type)
1918 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
1919 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
1920 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
1921 echo "using lib$ipv6lib"
1923 if test $ipv6trylibc = "yes"; then
1926 echo 'Fatal: no $ipv6lib library found. cannot continue.'
1927 echo "You need to fetch lib$ipv6lib.a from appropriate"
1928 echo 'ipv6 kit and compile beforehand.'
1934 # Check for --with-doc-strings
1935 AC_MSG_CHECKING(for --with-doc-strings)
1936 AC_ARG_WITH(doc-strings,
1937 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
1939 if test -z "$with_doc_strings"
1940 then with_doc_strings="yes"
1942 if test "$with_doc_strings" != "no"
1944 AC_DEFINE(WITH_DOC_STRINGS, 1,
1945 [Define if you want documentation strings in extension modules])
1947 AC_MSG_RESULT($with_doc_strings)
1949 # Check for Python-specific malloc support
1950 AC_MSG_CHECKING(for --with-tsc)
1952 [ --with(out)-tsc enable/disable timestamp counter profile], [
1953 if test "$withval" != no
1955 AC_DEFINE(WITH_TSC, 1,
1956 [Define to profile with the Pentium timestamp counter])
1958 else AC_MSG_RESULT(no)
1960 [AC_MSG_RESULT(no)])
1962 # Check for Python-specific malloc support
1963 AC_MSG_CHECKING(for --with-pymalloc)
1964 AC_ARG_WITH(pymalloc,
1965 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
1967 if test -z "$with_pymalloc"
1968 then with_pymalloc="yes"
1970 if test "$with_pymalloc" != "no"
1972 AC_DEFINE(WITH_PYMALLOC, 1,
1973 [Define if you want to compile in Python-specific mallocs])
1975 AC_MSG_RESULT($with_pymalloc)
1977 # Check for --with-wctype-functions
1978 AC_MSG_CHECKING(for --with-wctype-functions)
1979 AC_ARG_WITH(wctype-functions,
1980 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
1982 if test "$withval" != no
1984 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
1985 [Define if you want wctype.h functions to be used instead of the
1986 one supplied by Python itself. (see Include/unicodectype.h).])
1988 else AC_MSG_RESULT(no)
1990 [AC_MSG_RESULT(no)])
1992 # -I${DLINCLDIR} is added to the compile rule for importdl.o
1996 # the dlopen() function means we might want to use dynload_shlib.o. some
1997 # platforms, such as AIX, have dlopen(), but don't want to use it.
1998 AC_CHECK_FUNCS(dlopen)
2000 # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2001 # loading of modules.
2002 AC_SUBST(DYNLOADFILE)
2003 AC_MSG_CHECKING(DYNLOADFILE)
2004 if test -z "$DYNLOADFILE"
2006 case $ac_sys_system/$ac_sys_release in
2007 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2008 if test "$ac_cv_func_dlopen" = yes
2009 then DYNLOADFILE="dynload_shlib.o"
2010 else DYNLOADFILE="dynload_aix.o"
2013 BeOS*) DYNLOADFILE="dynload_beos.o";;
2014 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
2015 Darwin/*) DYNLOADFILE="dynload_next.o";;
2016 atheos*) DYNLOADFILE="dynload_atheos.o";;
2018 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2019 # out any dynamic loading
2020 if test "$ac_cv_func_dlopen" = yes
2021 then DYNLOADFILE="dynload_shlib.o"
2022 else DYNLOADFILE="dynload_stub.o"
2027 AC_MSG_RESULT($DYNLOADFILE)
2028 if test "$DYNLOADFILE" != "dynload_stub.o"
2030 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2031 [Defined when any dynamic module loading is enabled.])
2034 # MACHDEP_OBJS can be set to platform-specific object files needed by Python
2036 AC_SUBST(MACHDEP_OBJS)
2037 AC_MSG_CHECKING(MACHDEP_OBJS)
2038 if test -z "$MACHDEP_OBJS"
2040 MACHDEP_OBJS=$extra_machdep_objs
2042 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
2044 AC_MSG_RESULT(MACHDEP_OBJS)
2046 # checks for library functions
2047 AC_CHECK_FUNCS(alarm chown clock confstr ctermid execv \
2048 fork fpathconf ftime ftruncate \
2049 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
2050 getpriority getpwent getsid getwd \
2051 kill killpg lchown lstat mkfifo mknod mktime \
2052 mremap nice pathconf pause plock poll pthread_init \
2053 putenv readlink realpath \
2054 select setegid seteuid setgid \
2055 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
2056 sigaction siginterrupt sigrelse strftime \
2057 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
2058 truncate uname unsetenv utimes waitpid wcscoll _getpty)
2060 # For some functions, having a definition is not sufficient, since
2061 # we want to take their address.
2062 AC_MSG_CHECKING(for chroot)
2063 AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2064 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2068 AC_MSG_CHECKING(for link)
2069 AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2070 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2074 AC_MSG_CHECKING(for symlink)
2075 AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2076 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2080 AC_MSG_CHECKING(for fchdir)
2081 AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2082 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2086 AC_MSG_CHECKING(for fsync)
2087 AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
2088 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
2092 AC_MSG_CHECKING(for fdatasync)
2093 AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2094 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2099 # On some systems (eg. FreeBSD 5), we would find a definition of the
2100 # functions ctermid_r, setgroups in the library, but no prototype
2101 # (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2102 # address to avoid compiler warnings and potential miscompilations
2103 # because of the missing prototypes.
2105 AC_MSG_CHECKING(for ctermid_r)
2107 #include "confdefs.h"
2109 ], void* p = ctermid_r,
2110 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2115 AC_MSG_CHECKING(for flock)
2117 #include "confdefs.h"
2118 #include <sys/file.h>
2120 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2125 AC_MSG_CHECKING(for getpagesize)
2127 #include "confdefs.h"
2129 ], void* p = getpagesize,
2130 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2136 AC_CHECK_PROGS(TRUE, true, /bin/true)
2138 dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2139 dnl On others, they are in the C library, so we to take no action
2140 AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
2141 AC_CHECK_LIB(resolv, inet_aton)
2144 AC_MSG_CHECKING(for hstrerror)
2146 #include "confdefs.h"
2148 ], void* p = hstrerror; hstrerror(0),
2149 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2154 AC_MSG_CHECKING(for inet_aton)
2156 #include "confdefs.h"
2157 #include <sys/socket.h>
2158 #include <netinet/in.h>
2159 #include <arpa/inet.h>
2160 ], void* p = inet_aton;inet_aton(0,0),
2161 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2166 AC_MSG_CHECKING(for inet_pton)
2168 #include "confdefs.h"
2169 #include <sys/types.h>
2170 #include <sys/socket.h>
2171 #include <netinet/in.h>
2172 #include <arpa/inet.h>
2173 ], void* p = inet_pton,
2174 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2179 # On some systems, setgroups is in unistd.h, on others, in grp.h
2180 AC_MSG_CHECKING(for setgroups)
2182 #include "confdefs.h"
2188 void* p = setgroups,
2189 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2194 # check for openpty and forkpty
2196 AC_CHECK_FUNCS(openpty,, AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"]))
2197 AC_CHECK_FUNCS(forkpty,, AC_CHECK_LIB(util,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"]))
2199 # check for long file support functions
2200 AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2202 AC_REPLACE_FUNCS(dup2 getcwd strdup strerror memmove)
2203 AC_CHECK_FUNCS(getpgrp,
2204 AC_TRY_COMPILE([#include <unistd.h>],
2206 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2207 [Define if getpgrp() must be called as getpgrp(0).])
2210 AC_CHECK_FUNCS(setpgrp,
2211 AC_TRY_COMPILE([#include <unistd.h>],
2213 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2214 [Define if setpgrp() must be called as setpgrp(0, 0).])
2217 AC_CHECK_FUNCS(gettimeofday,
2218 AC_TRY_COMPILE([#include <sys/time.h>],
2219 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2220 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2221 [Define if gettimeofday() does not have second (timezone) argument
2222 This is the case on Motorola V4 (R40V4.2)])
2226 AC_MSG_CHECKING(for major, minor, and makedev)
2228 #if defined(MAJOR_IN_MKDEV)
2229 #include <sys/mkdev.h>
2230 #elif defined(MAJOR_IN_SYSMACROS)
2231 #include <sys/sysmacros.h>
2233 #include <sys/types.h>
2236 makedev(major(0),minor(0));
2238 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2239 [Define to 1 if you have the device macros.])
2245 # On OSF/1 V5.1, getaddrinfo is available, but a define
2246 # for [no]getaddrinfo in netdb.h.
2247 AC_MSG_CHECKING(for getaddrinfo)
2249 #include <sys/types.h>
2250 #include <sys/socket.h>
2254 getaddrinfo(NULL, NULL, NULL, NULL);
2257 AC_MSG_CHECKING(getaddrinfo bug)
2259 #include <sys/types.h>
2262 #include <sys/socket.h>
2263 #include <netinet/in.h>
2267 int passive, gaierr, inet4 = 0, inet6 = 0;
2268 struct addrinfo hints, *ai, *aitop;
2269 char straddr[INET6_ADDRSTRLEN], strport[16];
2271 for (passive = 0; passive <= 1; passive++) {
2272 memset(&hints, 0, sizeof(hints));
2273 hints.ai_family = AF_UNSPEC;
2274 hints.ai_flags = passive ? AI_PASSIVE : 0;
2275 hints.ai_socktype = SOCK_STREAM;
2276 hints.ai_protocol = IPPROTO_TCP;
2277 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2278 (void)gai_strerror(gaierr);
2281 for (ai = aitop; ai; ai = ai->ai_next) {
2282 if (ai->ai_addr == NULL ||
2283 ai->ai_addrlen == 0 ||
2284 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2285 straddr, sizeof(straddr), strport, sizeof(strport),
2286 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2289 switch (ai->ai_family) {
2291 if (strcmp(strport, "54321") != 0) {
2295 if (strcmp(straddr, "0.0.0.0") != 0) {
2299 if (strcmp(straddr, "127.0.0.1") != 0) {
2306 if (strcmp(strport, "54321") != 0) {
2310 if (strcmp(straddr, "::") != 0) {
2314 if (strcmp(straddr, "::1") != 0) {
2324 /* another family support? */
2330 if (!(inet4 == 0 || inet4 == 2))
2332 if (!(inet6 == 0 || inet6 == 2))
2336 freeaddrinfo(aitop);
2341 freeaddrinfo(aitop);
2346 buggygetaddrinfo=no,
2347 AC_MSG_RESULT(buggy)
2348 buggygetaddrinfo=yes,
2349 AC_MSG_RESULT(buggy)
2350 buggygetaddrinfo=yes)], [
2352 buggygetaddrinfo=yes
2355 if test "$buggygetaddrinfo" = "yes"; then
2356 if test "$ipv6" = "yes"; then
2357 echo 'Fatal: You must get working getaddrinfo() function.'
2358 echo ' or you can specify "--disable-ipv6"'.
2362 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
2364 AC_CHECK_FUNCS(getnameinfo)
2366 # checks for structures
2370 AC_CHECK_MEMBERS([struct stat.st_rdev])
2371 AC_CHECK_MEMBERS([struct stat.st_blksize])
2374 AC_MSG_CHECKING(for time.h that defines altzone)
2375 AC_CACHE_VAL(ac_cv_header_time_altzone,
2376 [AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2377 ac_cv_header_time_altzone=yes,
2378 ac_cv_header_time_altzone=no)])
2379 AC_MSG_RESULT($ac_cv_header_time_altzone)
2380 if test $ac_cv_header_time_altzone = yes; then
2381 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
2385 AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
2387 #include <sys/types.h>
2388 #include <sys/select.h>
2389 #include <sys/time.h>
2391 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2392 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2393 (which you can't on SCO ODT 3.0).])
2396 AC_MSG_RESULT($was_it_defined)
2398 AC_MSG_CHECKING(for addrinfo)
2399 AC_CACHE_VAL(ac_cv_struct_addrinfo,
2401 # include <netdb.h>],
2402 [struct addrinfo a],
2403 ac_cv_struct_addrinfo=yes,
2404 ac_cv_struct_addrinfo=no))
2405 AC_MSG_RESULT($ac_cv_struct_addrinfo)
2406 if test $ac_cv_struct_addrinfo = yes; then
2407 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
2410 AC_MSG_CHECKING(for sockaddr_storage)
2411 AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2413 # include <sys/types.h>
2414 # include <sys/socket.h>],
2415 [struct sockaddr_storage s],
2416 ac_cv_struct_sockaddr_storage=yes,
2417 ac_cv_struct_sockaddr_storage=no))
2418 AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2419 if test $ac_cv_struct_sockaddr_storage = yes; then
2420 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
2423 # checks for compiler characteristics
2429 AC_MSG_CHECKING(for working volatile)
2430 AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2431 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2433 AC_MSG_RESULT($works)
2436 AC_MSG_CHECKING(for working signed char)
2437 AC_TRY_COMPILE([], [signed char c;], works=yes,
2438 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2440 AC_MSG_RESULT($works)
2443 AC_MSG_CHECKING(for prototypes)
2444 AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2445 AC_DEFINE(HAVE_PROTOTYPES, 1,
2446 [Define if your compiler supports function prototype])
2449 AC_MSG_RESULT($have_prototypes)
2452 AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
2455 int foo(int x, ...) {
2463 ], [return foo(10, "", 3.14);], [
2464 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2465 [Define if your compiler supports variable length function prototypes
2466 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2469 AC_MSG_RESULT($works)
2471 # check if sockaddr has sa_len member
2472 AC_MSG_CHECKING(if sockaddr has sa_len member)
2473 AC_TRY_COMPILE([#include <sys/types.h>
2474 #include <sys/socket.h>],
2478 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
2482 AC_MSG_CHECKING(whether va_list is an array)
2484 #ifdef HAVE_STDARG_PROTOTYPES
2487 #include <varargs.h>
2489 ], [va_list list1, list2; list1 = list2;], , [
2490 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
2491 va_list_is_array=yes
2493 AC_MSG_RESULT($va_list_is_array)
2495 # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
2496 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
2497 [Define this if you have some version of gethostbyname_r()])
2499 AC_CHECK_FUNC(gethostbyname_r, [
2500 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2501 AC_MSG_CHECKING([gethostbyname_r with 6 args])
2503 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
2508 struct hostent *he, *res;
2513 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
2515 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2516 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
2517 [Define this if you have the 6-arg version of gethostbyname_r().])
2521 AC_MSG_CHECKING([gethostbyname_r with 5 args])
2531 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
2533 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2534 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
2535 [Define this if you have the 5-arg version of gethostbyname_r().])
2539 AC_MSG_CHECKING([gethostbyname_r with 3 args])
2545 struct hostent_data data;
2547 (void) gethostbyname_r(name, he, &data);
2549 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2550 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
2551 [Define this if you have the 3-arg version of gethostbyname_r().])
2560 AC_CHECK_FUNCS(gethostbyname)
2562 AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
2563 AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
2564 AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
2565 AC_SUBST(HAVE_GETHOSTBYNAME_R)
2566 AC_SUBST(HAVE_GETHOSTBYNAME)
2568 # checks for system services
2571 # Linux requires this for correct f.p. operations
2572 AC_CHECK_FUNC(__fpu_control,
2574 [AC_CHECK_LIB(ieee, __fpu_control)
2577 # Check for --with-fpectl
2578 AC_MSG_CHECKING(for --with-fpectl)
2580 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
2582 if test "$withval" != no
2584 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
2585 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
2587 else AC_MSG_RESULT(no)
2589 [AC_MSG_RESULT(no)])
2591 # check for --with-libm=...
2593 case $ac_sys_system in
2598 AC_MSG_CHECKING(for --with-libm=STRING)
2600 AC_HELP_STRING(--with-libm=STRING, math library),
2602 if test "$withval" = no
2604 AC_MSG_RESULT(force LIBM empty)
2605 elif test "$withval" != yes
2607 AC_MSG_RESULT(set LIBM="$withval")
2608 else AC_MSG_ERROR([proper usage is --with-libm=STRING])
2610 [AC_MSG_RESULT(default LIBM="$LIBM")])
2612 # check for --with-libc=...
2614 AC_MSG_CHECKING(for --with-libc=STRING)
2616 AC_HELP_STRING(--with-libc=STRING, C library),
2618 if test "$withval" = no
2620 AC_MSG_RESULT(force LIBC empty)
2621 elif test "$withval" != yes
2623 AC_MSG_RESULT(set LIBC="$withval")
2624 else AC_MSG_ERROR([proper usage is --with-libc=STRING])
2626 [AC_MSG_RESULT(default LIBC="$LIBC")])
2628 # check for hypot() in math library
2631 AC_REPLACE_FUNCS(hypot)
2635 AC_CHECK_HEADER(wchar.h, [
2636 AC_DEFINE(HAVE_WCHAR_H, 1,
2637 [Define if the compiler provides a wchar.h header file.])
2643 # determine wchar_t size
2644 if test "$wchar_h" = yes
2646 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
2649 AC_MSG_CHECKING(for UCS-4 tcl)
2653 #if TCL_UTF_MAX != 6
2654 # error "NOT UCS4_TCL"
2656 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
2659 AC_MSG_RESULT($have_ucs4_tcl)
2661 # check whether wchar_t is signed or not
2662 if test "$wchar_h" = yes
2664 # check whether wchar_t is signed or not
2665 AC_MSG_CHECKING(whether wchar_t is signed)
2666 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
2671 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 1 : 0);
2674 ac_cv_wchar_t_signed=yes,
2675 ac_cv_wchar_t_signed=no,
2676 ac_cv_wchar_t_signed=yes)])
2677 AC_MSG_RESULT($ac_cv_wchar_t_signed)
2680 AC_MSG_CHECKING(what type to use for unicode)
2681 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
2682 AC_ARG_ENABLE(unicode,
2683 AC_HELP_STRING(--enable-unicode@<:@=ucs@<:@24@:>@@:>@, Enable Unicode strings (default is yes)),
2685 [enable_unicode=yes])
2687 if test $enable_unicode = yes
2689 # Without any arguments, Py_UNICODE defaults to two-byte mode
2690 case "$have_ucs4_tcl" in
2691 yes) enable_unicode="ucs4"
2693 *) enable_unicode="ucs2"
2698 AH_TEMPLATE(Py_UNICODE_SIZE,
2699 [Define as the size of the unicode type.])
2700 case "$enable_unicode" in
2701 ucs2) unicode_size="2"
2702 AC_DEFINE(Py_UNICODE_SIZE,2)
2704 ucs4) unicode_size="4"
2705 AC_DEFINE(Py_UNICODE_SIZE,4)
2709 AH_TEMPLATE(PY_UNICODE_TYPE,
2710 [Define as the integral type used for Unicode representation.])
2712 AC_SUBST(UNICODE_OBJS)
2713 if test "$enable_unicode" = "no"
2716 AC_MSG_RESULT(not used)
2718 UNICODE_OBJS="Objects/unicodeobject.o Objects/unicodectype.o"
2719 AC_DEFINE(Py_USING_UNICODE, 1,
2720 [Define if you want to have a Unicode type.])
2722 # wchar_t is only usable if it maps to an unsigned type
2723 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
2724 -a "$ac_cv_wchar_t_signed" == "no"
2726 PY_UNICODE_TYPE="wchar_t"
2727 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
2728 [Define if you have a useable wchar_t type defined in wchar.h; useable
2729 means wchar_t must be an unsigned type with at least 16 bits. (see
2730 Include/unicodeobject.h).])
2731 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
2732 elif test "$ac_cv_sizeof_short" = "$unicode_size"
2734 PY_UNICODE_TYPE="unsigned short"
2735 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
2736 elif test "$ac_cv_sizeof_long" = "$unicode_size"
2738 PY_UNICODE_TYPE="unsigned long"
2739 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
2741 PY_UNICODE_TYPE="no type found"
2743 AC_MSG_RESULT($PY_UNICODE_TYPE)
2746 # check for endianness
2749 # Check whether right shifting a negative integer extends the sign bit
2750 # or fills with zeros (like the Cray J90, according to Tim Peters).
2751 AC_MSG_CHECKING(whether right shift extends the sign bit)
2752 AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
2756 exit(((-1)>>3 == -1) ? 0 : 1);
2759 ac_cv_rshift_extends_sign=yes,
2760 ac_cv_rshift_extends_sign=no,
2761 ac_cv_rshift_extends_sign=yes)])
2762 AC_MSG_RESULT($ac_cv_rshift_extends_sign)
2763 if test "$ac_cv_rshift_extends_sign" = no
2765 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
2766 [Define if i>>j for signed int i does not extend the sign bit
2770 # check for getc_unlocked and related locking functions
2771 AC_MSG_CHECKING(for getc_unlocked() and friends)
2772 AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
2773 AC_TRY_LINK([#include <stdio.h>],[
2774 FILE *f = fopen("/dev/null", "r");
2778 ], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
2779 AC_MSG_RESULT($ac_cv_have_getc_unlocked)
2780 if test "$ac_cv_have_getc_unlocked" = yes
2782 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
2783 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
2786 # check for readline 2.1
2787 AC_CHECK_LIB(readline, rl_callback_handler_install,
2788 AC_DEFINE(HAVE_RL_CALLBACK, 1,
2789 [Define if you have readline 2.1]), , -ltermcap)
2791 # check for readline 2.2
2792 AC_TRY_CPP([#include <readline/readline.h>],
2793 have_readline=yes, have_readline=no)
2794 if test $have_readline = yes
2796 AC_EGREP_HEADER([extern int rl_completion_append_character;],
2797 [readline/readline.h],
2798 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
2799 [Define if you have readline 2.2]), )
2802 # check for readline 4.0
2803 AC_CHECK_LIB(readline, rl_pre_input_hook,
2804 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
2805 [Define if you have readline 4.0]), , -ltermcap)
2807 # check for readline 4.2
2808 AC_CHECK_LIB(readline, rl_completion_matches,
2809 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
2810 [Define if you have readline 4.2]), , -ltermcap)
2812 # also in readline 4.2
2813 AC_TRY_CPP([#include <readline/readline.h>],
2814 have_readline=yes, have_readline=no)
2815 if test $have_readline = yes
2817 AC_EGREP_HEADER([extern int rl_catch_signals;],
2818 [readline/readline.h],
2819 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
2820 [Define if you can turn off readline's signal handling.]), )
2823 AC_MSG_CHECKING(for broken nice())
2824 AC_CACHE_VAL(ac_cv_broken_nice, [
2829 if (val1 != -1 && val1 == nice(2))
2834 ac_cv_broken_nice=yes,
2835 ac_cv_broken_nice=no,
2836 ac_cv_broken_nice=no)])
2837 AC_MSG_RESULT($ac_cv_broken_nice)
2838 if test "$ac_cv_broken_nice" = yes
2840 AC_DEFINE(HAVE_BROKEN_NICE, 1,
2841 [Define if nice() returns success/failure instead of the new priority.])
2844 AC_MSG_CHECKING(for broken poll())
2850 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
2854 int poll_test = poll (&poll_struct, 1, 0);
2860 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
2870 ac_cv_broken_poll=yes,
2871 ac_cv_broken_poll=no,
2872 ac_cv_broken_poll=no)
2873 AC_MSG_RESULT($ac_cv_broken_poll)
2874 if test "$ac_cv_broken_poll" = yes
2876 AC_DEFINE(HAVE_BROKEN_POLL, 1,
2877 [Define if poll() sets errno on invalid file descriptors.])
2881 # tzset(3) exists and works like we expect it to
2882 AC_MSG_CHECKING(for working tzset())
2883 AC_CACHE_VAL(ac_cv_working_tzset, [
2890 /* Note that we need to ensure that not only does tzset(3)
2891 do 'something' with localtime, but it works as documented
2892 in the library reference and as expected by the test suite.
2894 Red Hat 6.2 doesn't understand the southern hemisphere
2895 after New Year's Day; it thinks swaps on that day.
2898 time_t groundhogday = 1044144000; /* GMT-based; well, it's a colony */
2899 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
2903 if (localtime(&groundhogday)->tm_hour != 0)
2906 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
2908 if (localtime(&groundhogday)->tm_hour != 19)
2911 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
2913 if (localtime(&groundhogday)->tm_hour != 11)
2915 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
2917 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
2923 ac_cv_working_tzset=yes,
2924 ac_cv_working_tzset=no,
2925 ac_cv_working_tzset=no)])
2926 AC_MSG_RESULT($ac_cv_working_tzset)
2927 if test "$ac_cv_working_tzset" = yes
2929 AC_DEFINE(HAVE_WORKING_TZSET, 1,
2930 [Define if tzset() actually switches the local timezone in a meaningful way.])
2933 # Look for subsecond timestamps in struct stat
2934 AC_MSG_CHECKING(for tv_nsec in struct stat)
2935 AC_CACHE_VAL(ac_cv_stat_tv_nsec,
2936 AC_TRY_COMPILE([#include <sys/stat.h>], [
2938 st.st_mtim.tv_nsec = 1;
2940 ac_cv_stat_tv_nsec=yes,
2941 ac_cv_stat_tv_nsec=no,
2942 ac_cv_stat_tv_nsec=no))
2943 AC_MSG_RESULT($ac_cv_stat_tv_nsec)
2944 if test "$ac_cv_stat_tv_nsec" = yes
2946 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
2947 [Define if you have struct stat.st_mtim.tv_nsec])
2950 # On HP/UX 11.0, mvwdelch is a block with a return statement
2951 AC_MSG_CHECKING(whether mvwdelch is an expression)
2952 AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
2953 AC_TRY_COMPILE([#include <curses.h>], [
2955 rtn = mvwdelch(0,0,0);
2956 ], ac_cv_mvwdelch_is_expression=yes,
2957 ac_cv_mvwdelch_is_expression=no,
2958 ac_cv_mvwdelch_is_expression=yes))
2959 AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
2961 if test "$ac_cv_mvwdelch_is_expression" = yes
2963 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
2964 [Define if mvwdelch in curses.h is an expression.])
2967 AC_MSG_CHECKING(whether WINDOW has _flags)
2968 AC_CACHE_VAL(ac_cv_window_has_flags,
2969 AC_TRY_COMPILE([#include <curses.h>], [
2972 ], ac_cv_window_has_flags=yes,
2973 ac_cv_window_has_flags=no,
2974 ac_cv_window_has_flags=no))
2975 AC_MSG_RESULT($ac_cv_window_has_flags)
2978 if test "$ac_cv_window_has_flags" = yes
2980 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
2981 [Define if WINDOW in curses.h offers a field _flags.])
2984 AC_MSG_CHECKING(for /dev/ptmx)
2986 if test -e /dev/ptmx
2989 AC_DEFINE(HAVE_DEV_PTMX, 1,
2990 [Define if we have /dev/ptmx.])
2995 AC_MSG_CHECKING(for /dev/ptc)
3000 AC_DEFINE(HAVE_DEV_PTC, 1,
3001 [Define if we have /dev/ptc.])
3006 AC_CHECK_TYPE(socklen_t,,
3007 AC_DEFINE(socklen_t,int,
3008 Define to `int' if <sys/socket.h> does not define.),[
3009 #ifdef HAVE_SYS_TYPES_H
3010 #include <sys/types.h>
3012 #ifdef HAVE_SYS_SOCKET_H
3013 #include <sys/socket.h>
3017 AC_SUBST(THREADHEADERS)
3019 for h in `(cd $srcdir;echo Python/thread_*.h)`
3021 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3025 SRCDIRS="Parser Grammar Objects Python Modules Mac Mac/Python"
3026 AC_MSG_CHECKING(for build directories)
3027 for dir in $SRCDIRS; do
3028 if test ! -d $dir; then
3034 # generate output files
3035 AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
3038 echo "creating Setup"
3039 if test ! -f Modules/Setup
3041 cp $srcdir/Modules/Setup.dist Modules/Setup
3044 echo "creating Setup.local"
3045 if test ! -f Modules/Setup.local
3047 echo "# Edit this file for local setup changes" >Modules/Setup.local
3050 echo "creating Makefile"
3051 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3052 -s Modules Modules/Setup.config \
3053 Modules/Setup.local Modules/Setup