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.6)
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 AC_ARG_ENABLE(universalsdk,
64 AC_HELP_STRING(--enable-universalsdk@<:@SDKDIR@:>@, Build against Mac OS X 10.4u SDK (ppc/i386)),
68 enableval=/Developer/SDKs/MacOSX10.4u.sdk
77 UNIVERSALSDK=$enableval
84 AC_SUBST(UNIVERSALSDK)
86 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
87 AC_ARG_ENABLE(framework,
88 AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework),
92 enableval=/Library/Frameworks
97 PYTHONFRAMEWORKDIR=no-framework
98 PYTHONFRAMEWORKPREFIX=
99 PYTHONFRAMEWORKINSTALLDIR=
100 FRAMEWORKINSTALLFIRST=
101 FRAMEWORKINSTALLLAST=
102 FRAMEWORKALTINSTALLFIRST=
103 FRAMEWORKALTINSTALLLAST=
104 if test "x${prefix}" = "xNONE"; then
105 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
107 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
112 PYTHONFRAMEWORK=Python
113 PYTHONFRAMEWORKDIR=Python.framework
114 PYTHONFRAMEWORKPREFIX=$enableval
115 PYTHONFRAMEWORKINSTALLDIR=$PYTHONFRAMEWORKPREFIX/$PYTHONFRAMEWORKDIR
116 FRAMEWORKINSTALLFIRST="frameworkinstallstructure"
117 FRAMEWORKINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools"
118 FRAMEWORKALTINSTALLFIRST="${FRAMEWORKINSTALLFIRST} bininstall maninstall"
119 FRAMEWORKALTINSTALLLAST="frameworkinstallmaclib frameworkinstallapps frameworkaltinstallunixtools"
120 if test "x${prefix}" = "xNONE" ; then
121 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
123 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
125 prefix=$PYTHONFRAMEWORKINSTALLDIR/Versions/$VERSION
127 # Add makefiles for Mac specific code to the list of output
129 AC_CONFIG_FILES(Mac/Makefile)
130 AC_CONFIG_FILES(Mac/PythonLauncher/Makefile)
131 AC_CONFIG_FILES(Mac/IDLE/Makefile)
135 PYTHONFRAMEWORKDIR=no-framework
136 PYTHONFRAMEWORKPREFIX=
137 PYTHONFRAMEWORKINSTALLDIR=
138 FRAMEWORKINSTALLFIRST=
139 FRAMEWORKINSTALLLAST=
140 FRAMEWORKALTINSTALLFIRST=
141 FRAMEWORKALTINSTALLLAST=
142 if test "x${prefix}" = "xNONE" ; then
143 FRAMEWORKUNIXTOOLSPREFIX="${ac_default_prefix}"
145 FRAMEWORKUNIXTOOLSPREFIX="${prefix}"
149 AC_SUBST(PYTHONFRAMEWORK)
150 AC_SUBST(PYTHONFRAMEWORKDIR)
151 AC_SUBST(PYTHONFRAMEWORKPREFIX)
152 AC_SUBST(PYTHONFRAMEWORKINSTALLDIR)
153 AC_SUBST(FRAMEWORKINSTALLFIRST)
154 AC_SUBST(FRAMEWORKINSTALLLAST)
155 AC_SUBST(FRAMEWORKALTINSTALLFIRST)
156 AC_SUBST(FRAMEWORKALTINSTALLLAST)
157 AC_SUBST(FRAMEWORKUNIXTOOLSPREFIX)
160 ## AC_HELP_STRING(--with-dyld,
161 ## Use (OpenStep|Rhapsody) dynamic linker))
163 # Set name for machine-dependent library files
165 AC_MSG_CHECKING(MACHDEP)
166 if test -z "$MACHDEP"
168 ac_sys_system=`uname -s`
169 if test "$ac_sys_system" = "AIX" -o "$ac_sys_system" = "Monterey64" \
170 -o "$ac_sys_system" = "UnixWare" -o "$ac_sys_system" = "OpenUNIX"; then
171 ac_sys_release=`uname -v`
173 ac_sys_release=`uname -r`
175 ac_md_system=`echo $ac_sys_system |
176 tr -d '[/ ]' | tr '[[A-Z]]' '[[a-z]]'`
177 ac_md_release=`echo $ac_sys_release |
178 tr -d '[/ ]' | sed 's/^[[A-Z]]\.//' | sed 's/\..*//'`
179 MACHDEP="$ac_md_system$ac_md_release"
182 cygwin*) MACHDEP="cygwin";;
183 darwin*) MACHDEP="darwin";;
184 atheos*) MACHDEP="atheos";;
185 irix646) MACHDEP="irix6";;
186 '') MACHDEP="unknown";;
190 # Some systems cannot stand _XOPEN_SOURCE being defined at all; they
191 # disable features if it is defined, without any means to access these
192 # features as extensions. For these systems, we skip the definition of
193 # _XOPEN_SOURCE. Before adding a system to the list to gain access to
194 # some feature, make sure there is no alternative way to access this
195 # feature. Also, when using wildcards, make sure you have verified the
196 # need for not defining _XOPEN_SOURCE on all systems matching the
197 # wildcard, and that the wildcard does not include future systems
198 # (which may remove their limitations).
199 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
200 case $ac_sys_system/$ac_sys_release in
201 # On OpenBSD, select(2) is not available if _XOPEN_SOURCE is defined,
202 # even though select is a POSIX function. Reported by J. Ribbens.
203 # Reconfirmed for OpenBSD 3.3 by Zachary Hamm, for 3.4 by Jason Ish.
204 OpenBSD/2.* | OpenBSD/3.@<:@0123456789@:>@ | OpenBSD/4.@<:@0@:>@)
205 define_xopen_source=no
206 # OpenBSD undoes our definition of __BSD_VISIBLE if _XOPEN_SOURCE is
207 # also defined. This can be overridden by defining _BSD_SOURCE
208 # As this has a different meaning on Linux, only define it on OpenBSD
209 AC_DEFINE(_BSD_SOURCE, 1, [Define on OpenBSD to activate all library features])
211 # Defining _XOPEN_SOURCE on NetBSD version prior to the introduction of
212 # _NETBSD_SOURCE disables certain features (eg. setgroups). Reported by
214 NetBSD/1.5 | NetBSD/1.5.* | NetBSD/1.6 | NetBSD/1.6.* | NetBSD/1.6[A-S])
215 define_xopen_source=no;;
216 # On Solaris 2.6, sys/wait.h is inconsistent in the usage
217 # of union __?sigval. Reported by Stuart Bishop.
219 define_xopen_source=no;;
220 # On UnixWare 7, u_long is never defined with _XOPEN_SOURCE,
221 # but used in /usr/include/netinet/tcp.h. Reported by Tim Rice.
222 # Reconfirmed for 7.1.4 by Martin v. Loewis.
223 OpenUNIX/8.0.0| UnixWare/7.1.@<:@0-4@:>@)
224 define_xopen_source=no;;
225 # On OpenServer 5, u_short is never defined with _XOPEN_SOURCE,
226 # but used in struct sockaddr.sa_family. Reported by Tim Rice.
228 define_xopen_source=no;;
229 # On FreeBSD 4.8 and MacOS X 10.2, a bug in ncurses.h means that
230 # it craps out if _XOPEN_EXTENDED_SOURCE is defined. Apparently,
231 # this is fixed in 10.3, which identifies itself as Darwin/7.*
232 # This should hopefully be fixed in FreeBSD 4.9
233 FreeBSD/4.8* | Darwin/6* )
234 define_xopen_source=no;;
235 # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
236 # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
237 # or has another value. By not (re)defining it, the defaults come in place.
239 define_xopen_source=no;;
241 if test `uname -r` -eq 1; then
242 define_xopen_source=no
245 # On Mac OS X 10.4, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
246 # disables platform specific features beyond repair.
247 # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE
248 # has no effect, don't bother defining them
249 Darwin/@<:@789@:>@.*)
250 define_xopen_source=no
255 if test $define_xopen_source = yes
257 # On Solaris w/ g++ it appears that _XOPEN_SOURCE has to be
258 # defined precisely as g++ defines it
259 # Furthermore, on Solaris 10, XPG6 requires the use of a C99
261 case $ac_sys_system/$ac_sys_release in
262 SunOS/5.8|SunOS/5.9|SunOS/5.10)
263 AC_DEFINE(_XOPEN_SOURCE, 500,
264 Define to the level of X/Open that your system supports)
267 AC_DEFINE(_XOPEN_SOURCE, 600,
268 Define to the level of X/Open that your system supports)
272 # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires
273 # definition of _XOPEN_SOURCE_EXTENDED and _POSIX_C_SOURCE, or else
274 # several APIs are not declared. Since this is also needed in some
275 # cases for HP-UX, we define it globally.
276 # except for Solaris 10, where it must not be defined,
277 # as it implies XPG4.2
278 case $ac_sys_system/$ac_sys_release in
282 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1,
283 Define to activate Unix95-and-earlier features)
287 AC_DEFINE(_POSIX_C_SOURCE, 200112L, Define to activate features from IEEE Stds 1003.1-2001)
292 # SGI compilers allow the specification of the both the ABI and the
293 # ISA on the command line. Depending on the values of these switches,
294 # different and often incompatable code will be generated.
296 # The SGI_ABI variable can be used to modify the CC and LDFLAGS and
297 # thus supply support for various ABI/ISA combinations. The MACHDEP
298 # variable is also adjusted.
301 if test ! -z "$SGI_ABI"
304 LDFLAGS="$SGI_ABI $LDFLAGS"
305 MACHDEP=`echo "${MACHDEP}${SGI_ABI}" | sed 's/ *//g'`
307 AC_MSG_RESULT($MACHDEP)
309 # And add extra plat-mac for darwin
310 AC_SUBST(EXTRAPLATDIR)
311 AC_SUBST(EXTRAMACHDEPPATH)
312 AC_MSG_CHECKING(EXTRAPLATDIR)
313 if test -z "$EXTRAPLATDIR"
317 EXTRAPLATDIR="\$(PLATMACDIRS)"
318 EXTRAMACHDEPPATH="\$(PLATMACPATH)"
326 AC_MSG_RESULT($EXTRAPLATDIR)
328 # Record the configure-time value of MACOSX_DEPLOYMENT_TARGET,
329 # it may influence the way we can build extensions, so distutils
331 AC_SUBST(CONFIGURE_MACOSX_DEPLOYMENT_TARGET)
332 AC_SUBST(EXPORT_MACOSX_DEPLOYMENT_TARGET)
333 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
334 EXPORT_MACOSX_DEPLOYMENT_TARGET='#'
336 # checks for alternative programs
338 # compiler flags are generated in two sets, BASECFLAGS and OPT. OPT is just
339 # for debug/optimization stuff. BASECFLAGS is for flags that are required
340 # just to get things to compile and link. Users are free to override OPT
341 # when running configure or make. The build should not break if they do.
342 # BASECFLAGS should generally not be messed with, however.
344 # XXX shouldn't some/most/all of this code be merged with the stuff later
345 # on that fiddles with OPT and BASECFLAGS?
346 AC_MSG_CHECKING(for --without-gcc)
348 AC_HELP_STRING(--without-gcc,never use gcc),
356 without_gcc=$withval;;
358 case $ac_sys_system in
366 BASECFLAGS="$BASECFLAGS -export pragma"
368 LDFLAGS="$LDFLAGS -nodup"
376 AC_MSG_ERROR([Unknown BeOS platform "$BE_HOST_CPU"])
379 AR="\$(srcdir)/Modules/ar_beos"
387 AC_MSG_RESULT($without_gcc)
389 # If the user switches compilers, we can't believe the cache
390 if test ! -z "$ac_cv_prog_CC" -a ! -z "$CC" -a "$CC" != "$ac_cv_prog_CC"
392 AC_MSG_ERROR([cached CC is different -- throw away $cache_file
393 (it is also a good idea to do 'make clean' before compiling)])
400 AC_MSG_CHECKING(for --with-cxx-main=<compiler>)
401 AC_ARG_WITH(cxx_main,
402 AC_HELP_STRING([--with-cxx-main=<compiler>],
403 [compile main() and link python executable with C++ compiler]),
409 yes) with_cxx_main=yes
421 AC_MSG_RESULT($with_cxx_main)
427 gcc) AC_PATH_PROG(CXX, [g++], [g++], [notfound]) ;;
428 cc) AC_PATH_PROG(CXX, [c++], [c++], [notfound]) ;;
430 if test "$CXX" = "notfound"
437 AC_CHECK_PROGS(CXX, $CCC c++ g++ gcc CC cxx cc++ cl, notfound)
438 if test "$CXX" = "notfound"
443 if test "$preset_cxx" != "$CXX"
447 By default, distutils will build C++ extension modules with "$CXX".
448 If this is not intended, then set CXX on the configure command line.
453 # checks for UNIX variants that set C preprocessor variables
456 # Check for unsupported systems
457 case $ac_sys_system/$ac_sys_release in
459 echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
460 echo See README for details.
465 AC_MSG_CHECKING(for --with-suffix)
467 AC_HELP_STRING(--with-suffix=.exe, set executable suffix),
474 AC_MSG_RESULT($EXEEXT)
476 # Test whether we're running on a non-case-sensitive system, in which
477 # case we give a warning if no ext is given
478 AC_SUBST(BUILDEXEEXT)
479 AC_MSG_CHECKING(for case-insensitive build directory)
480 if test ! -d CaseSensitiveTestDir; then
481 mkdir CaseSensitiveTestDir
484 if test -d casesensitivetestdir
492 rmdir CaseSensitiveTestDir
497 gcc) CC="$CC -D_HAVE_BSDI";;
501 case $ac_sys_system in
504 cc|*/cc) CC="$CC -Ae";;
508 cc) CC="$CC -Wl,-Bexport";;
511 # Some functions have a prototype only with that define, e.g. confstr
512 AC_DEFINE(__EXTENSIONS__, 1, [Defined on Solaris to see additional function prototypes.])
518 AC_MSG_CHECKING(LIBRARY)
519 if test -z "$LIBRARY"
521 LIBRARY='libpython$(VERSION).a'
523 AC_MSG_RESULT($LIBRARY)
525 # LDLIBRARY is the name of the library to link against (as opposed to the
526 # name of the library into which to insert object files). BLDLIBRARY is also
527 # the library to link against, usually. On Mac OS X frameworks, BLDLIBRARY
528 # is blank as the main program is not linked directly against LDLIBRARY.
529 # LDLIBRARYDIR is the path to LDLIBRARY, which is made in a subdirectory. On
530 # systems without shared libraries, LDLIBRARY is the same as LIBRARY
531 # (defined in the Makefiles). On Cygwin LDLIBRARY is the import library,
532 # DLLLIBRARY is the shared (i.e., DLL) library.
534 # RUNSHARED is used to run shared python without installed libraries
536 # INSTSONAME is the name of the shared library that will be use to install
537 # on the system - some systems like version suffix, others don't
541 AC_SUBST(LDLIBRARYDIR)
545 BLDLIBRARY='$(LDLIBRARY)'
546 INSTSONAME='$(LDLIBRARY)'
551 # LINKCC is the command that links the python executable -- default is $(CC).
552 # If CXX is set, and if it is needed to link a main function that was
553 # compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable:
554 # python might then depend on the C++ runtime
555 # This is altered for AIX in order to build the export list before
558 AC_MSG_CHECKING(LINKCC)
561 LINKCC='$(PURIFY) $(MAINCC)'
562 case $ac_sys_system in
565 if test $ac_sys_release -ge 5 -o \
566 $ac_sys_release -eq 4 -a `uname -r` -ge 2 ; then
569 LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
571 LINKCC="$LINKCC -L/usr/lib/ia64l64";;
574 AC_MSG_RESULT($LINKCC)
576 AC_MSG_CHECKING(for --enable-shared)
577 AC_ARG_ENABLE(shared,
578 AC_HELP_STRING(--enable-shared, disable/enable building shared python library))
580 if test -z "$enable_shared"
582 case $ac_sys_system in
584 enable_shared="yes";;
589 AC_MSG_RESULT($enable_shared)
591 AC_MSG_CHECKING(for --enable-profiling)
592 AC_ARG_ENABLE(profiling,
593 AC_HELP_STRING(--enable-profiling, enable C-level code profiling),
596 AC_TRY_RUN([int main() { return 0; }],
597 ac_enable_profiling="yes",
598 ac_enable_profiling="no",
599 ac_enable_profiling="no")
601 AC_MSG_RESULT($ac_enable_profiling)
603 case "$ac_enable_profiling" in
605 BASECFLAGS="-pg $BASECFLAGS"
606 LDFLAGS="-pg $LDFLAGS"
610 AC_MSG_CHECKING(LDLIBRARY)
612 # MacOSX framework builds need more magic. LDLIBRARY is the dynamic
613 # library that we build, but we do not want to link against it (we
614 # will find it with a -framework option). For this reason there is an
615 # extra variable BLDLIBRARY against which Python and the extension
616 # modules are linked, BLDLIBRARY. This is normally the same as
617 # LDLIBRARY, but empty for MacOSX framework builds.
618 if test "$enable_framework"
620 LDLIBRARY='$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
621 RUNSHARED=DYLD_FRAMEWORK_PATH="`pwd`:$DYLD_FRAMEWORK_PATH"
624 BLDLIBRARY='$(LDLIBRARY)'
627 # Other platforms follow
628 if test $enable_shared = "yes"; then
629 AC_DEFINE(Py_ENABLE_SHARED, 1, [Defined if Python is built as a shared library.])
630 case $ac_sys_system in
632 LDLIBRARY='libpython$(VERSION).so'
635 LDLIBRARY='libpython$(VERSION).dll.a'
636 DLLLIBRARY='libpython$(VERSION).dll'
639 LDLIBRARY='libpython$(VERSION).so'
640 BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)'
641 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
642 INSTSONAME="$LDLIBRARY".$SOVERSION
644 Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*)
645 LDLIBRARY='libpython$(VERSION).so'
646 BLDLIBRARY='-L. -lpython$(VERSION)'
647 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
648 case $ac_sys_system in
650 SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
653 INSTSONAME="$LDLIBRARY".$SOVERSION
658 LDLIBRARY='libpython$(VERSION).so'
661 LDLIBRARY='libpython$(VERSION).sl'
664 BLDLIBRARY='-Wl,+b,$(LIBDIR) -L. -lpython$(VERSION)'
665 RUNSHARED=SHLIB_PATH=`pwd`:${SHLIB_PATH}
668 LDLIBRARY='libpython$(VERSION).so'
669 BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)'
670 RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
673 LDLIBRARY='libpython$(VERSION).so'
674 BLDLIBRARY='-L. -lpython$(VERSION)'
675 RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
678 else # shared is disabled
679 case $ac_sys_system in
681 BLDLIBRARY='$(LIBRARY)'
682 LDLIBRARY='libpython$(VERSION).dll.a'
687 AC_MSG_RESULT($LDLIBRARY)
691 AC_CHECK_PROGS(AR, ar aal, ar)
694 AC_CHECK_PROG(SVNVERSION, svnversion, found, not-found)
695 if test $SVNVERSION = found
697 SVNVERSION="svnversion \$(srcdir)"
699 SVNVERSION="echo exported"
704 # install -d does not work on BSDI or HP-UX
705 if test -z "$INSTALL"
707 INSTALL="${srcdir}/install-sh -c"
712 # Not every filesystem supports hard links
714 if test -z "$LN" ; then
715 case $ac_sys_system in
717 CYGWIN*) LN="ln -s";;
718 atheos*) LN="ln -s";;
723 # Check for --with-pydebug
724 AC_MSG_CHECKING(for --with-pydebug)
726 AC_HELP_STRING(--with-pydebug, build with Py_DEBUG defined),
728 if test "$withval" != no
730 AC_DEFINE(Py_DEBUG, 1,
731 [Define if you want to build an interpreter with many run-time checks.])
734 else AC_MSG_RESULT(no); Py_DEBUG='false'
738 # XXX Shouldn't the code above that fiddles with BASECFLAGS and OPT be
739 # merged with this chunk of code?
741 # Optimizer/debugger flags
742 # ------------------------
743 # (The following bit of code is complicated enough - please keep things
744 # indented properly. Just pretend you're editing Python code. ;-)
746 # There are two parallel sets of case statements below, one that checks to
747 # see if OPT was set and one that does BASECFLAGS setting based upon
748 # compiler and platform. BASECFLAGS tweaks need to be made even if the
751 # tweak OPT based on compiler and platform, only if the user didn't set
752 # it on the command line
758 if test "$CC" != 'g++' ; then
759 STRICT_PROTO="-Wstrict-prototypes"
761 # For gcc 4.x we need to use -fwrapv so lets check if its supported
762 if "$CC" -v --help 2>/dev/null |grep -- -fwrapv > /dev/null; then
765 case $ac_cv_prog_cc_g in
767 if test "$Py_DEBUG" = 'true' ; then
768 # Optimization messes up debuggers, so turn it off for
770 OPT="-g -Wall $STRICT_PROTO"
772 OPT="-g $WRAP -O3 -Wall $STRICT_PROTO"
776 OPT="-O3 -Wall $STRICT_PROTO"
779 case $ac_sys_system in
780 SCO_SV*) OPT="$OPT -m486 -DSCO5"
790 # The current (beta) Monterey compiler dies with optimizations
791 # XXX what is Monterey? Does it still die w/ -O? Can we get rid of this?
792 case $ac_sys_system in
801 # tweak BASECFLAGS based on compiler and platform
804 # Python violates C99 rules, by casting between incompatible
805 # pointer types. GCC may generate bad code as a result of that,
806 # so use -fno-strict-aliasing if supported.
807 AC_MSG_CHECKING(whether $CC accepts -fno-strict-aliasing)
809 CC="$CC -fno-strict-aliasing"
810 AC_TRY_RUN([int main() { return 0; }],
811 ac_cv_no_strict_aliasing_ok=yes,
812 ac_cv_no_strict_aliasing_ok=no,
813 ac_cv_no_strict_aliasing_ok=no)
815 AC_MSG_RESULT($ac_cv_no_strict_aliasing_ok)
816 if test $ac_cv_no_strict_aliasing_ok = yes
818 BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
820 case $ac_sys_system in
822 BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
824 # is there any other compiler on Darwin besides gcc?
826 BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd"
827 if test "${enable_universalsdk}"; then
828 BASECFLAGS="-arch ppc -arch i386 -isysroot ${UNIVERSALSDK} ${BASECFLAGS}"
833 BASECFLAGS="$BASECFLAGS -mieee"
839 case $ac_sys_system in
841 BASECFLAGS="$BASECFLAGS -K pentium,host,inline,loop_unroll,alloca "
844 BASECFLAGS="$BASECFLAGS -ieee -std"
847 BASECFLAGS="$BASECFLAGS -belf -Ki486 -DSCO5"
853 if test "$Py_DEBUG" = 'true'; then
859 if test "$ac_arch_flags"
861 BASECFLAGS="$BASECFLAGS $ac_arch_flags"
864 # disable check for icc since it seems to pass, but generates a warning
867 ac_cv_opt_olimit_ok=no
870 AC_MSG_CHECKING(whether $CC accepts -OPT:Olimit=0)
871 AC_CACHE_VAL(ac_cv_opt_olimit_ok,
873 CC="$CC -OPT:Olimit=0"
874 AC_TRY_RUN([int main() { return 0; }],
875 ac_cv_opt_olimit_ok=yes,
876 ac_cv_opt_olimit_ok=no,
877 ac_cv_opt_olimit_ok=no)
879 AC_MSG_RESULT($ac_cv_opt_olimit_ok)
880 if test $ac_cv_opt_olimit_ok = yes; then
881 case $ac_sys_system in
882 # XXX is this branch needed? On MacOSX 10.2.2 the result of the
883 # olimit_ok test is "no". Is it "yes" in some other Darwin-esque
888 BASECFLAGS="$BASECFLAGS -OPT:Olimit=0"
892 AC_MSG_CHECKING(whether $CC accepts -Olimit 1500)
893 AC_CACHE_VAL(ac_cv_olimit_ok,
895 CC="$CC -Olimit 1500"
896 AC_TRY_RUN([int main() { return 0; }],
901 AC_MSG_RESULT($ac_cv_olimit_ok)
902 if test $ac_cv_olimit_ok = yes; then
903 BASECFLAGS="$BASECFLAGS -Olimit 1500"
907 # Check whether GCC supports PyArg_ParseTuple format
908 if test "$GCC" = "yes"
910 AC_MSG_CHECKING(whether gcc supports ParseTuple __format__)
912 CFLAGS="$CFLAGS -Werror"
914 void f(char*,...)__attribute((format(PyArg_ParseTuple, 1, 2)));
916 AC_DEFINE(HAVE_ATTRIBUTE_FORMAT_PARSETUPLE, 1, [Define if GCC supports __attribute__((format(PyArg_ParseTuple, 2, 3)))])
923 # On some compilers, pthreads are available without further options
924 # (e.g. MacOS X). On some of these systems, the compiler will not
925 # complain if unaccepted options are passed (e.g. gcc on Mac OS X).
926 # So we have to see first whether pthreads are available without
927 # options before we can check whether -Kpthread improves anything.
928 AC_MSG_CHECKING(whether pthreads are available without options)
929 AC_CACHE_VAL(ac_cv_pthread_is_default,
933 void* routine(void* p){return NULL;}
937 if(pthread_create(&p,NULL,routine,NULL)!=0)
939 (void)pthread_detach(p);
944 ac_cv_pthread_is_default=yes
948 ac_cv_pthread_is_default=no,
949 ac_cv_pthread_is_default=no)
951 AC_MSG_RESULT($ac_cv_pthread_is_default)
954 if test $ac_cv_pthread_is_default = yes
958 # -Kpthread, if available, provides the right #defines
959 # and linker options to make pthread_create available
960 # Some compilers won't report that they do not support -Kpthread,
961 # so we need to run a program to see whether it really made the
962 # function available.
963 AC_MSG_CHECKING(whether $CC accepts -Kpthread)
964 AC_CACHE_VAL(ac_cv_kpthread,
970 void* routine(void* p){return NULL;}
974 if(pthread_create(&p,NULL,routine,NULL)!=0)
976 (void)pthread_detach(p);
984 AC_MSG_RESULT($ac_cv_kpthread)
987 if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no
989 # -Kthread, if available, provides the right #defines
990 # and linker options to make pthread_create available
991 # Some compilers won't report that they do not support -Kthread,
992 # so we need to run a program to see whether it really made the
993 # function available.
994 AC_MSG_CHECKING(whether $CC accepts -Kthread)
995 AC_CACHE_VAL(ac_cv_kthread,
1001 void* routine(void* p){return NULL;}
1005 if(pthread_create(&p,NULL,routine,NULL)!=0)
1007 (void)pthread_detach(p);
1015 AC_MSG_RESULT($ac_cv_kthread)
1018 if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no
1020 # -pthread, if available, provides the right #defines
1021 # and linker options to make pthread_create available
1022 # Some compilers won't report that they do not support -pthread,
1023 # so we need to run a program to see whether it really made the
1024 # function available.
1025 AC_MSG_CHECKING(whether $CC accepts -pthread)
1026 AC_CACHE_VAL(ac_cv_thread,
1030 #include <pthread.h>
1032 void* routine(void* p){return NULL;}
1036 if(pthread_create(&p,NULL,routine,NULL)!=0)
1038 (void)pthread_detach(p);
1046 AC_MSG_RESULT($ac_cv_pthread)
1049 # If we have set a CC compiler flag for thread support then
1050 # check if it works for CXX, too.
1054 AC_MSG_CHECKING(whether $CXX also accepts flags for thread support)
1057 if test "$ac_cv_kpthread" = "yes"
1059 CXX="$CXX -Kpthread"
1060 ac_cv_cxx_thread=yes
1061 elif test "$ac_cv_kthread" = "yes"
1064 ac_cv_cxx_thread=yes
1065 elif test "$ac_cv_pthread" = "yes"
1068 ac_cv_cxx_thread=yes
1071 if test $ac_cv_cxx_thread = yes
1073 echo 'void foo();int main(){foo();}void foo(){}' > conftest.$ac_ext
1074 $CXX -c conftest.$ac_ext 2>&5
1075 if $CXX -o conftest$ac_exeext conftest.$ac_objext 2>&5 \
1076 && test -s conftest$ac_exeext && ./conftest$ac_exeext
1078 ac_cv_cxx_thread=yes
1084 AC_MSG_RESULT($ac_cv_cxx_thread)
1088 dnl # check for ANSI or K&R ("traditional") preprocessor
1089 dnl AC_MSG_CHECKING(for C preprocessor type)
1090 dnl AC_TRY_COMPILE([
1091 dnl #define spam(name, doc) {#name, &name, #name "() -- " doc}
1093 dnl struct {char *name; int *addr; char *doc;} desc = spam(foo, "something");
1094 dnl ], [;], cpp_type=ansi, AC_DEFINE(HAVE_OLD_CPP) cpp_type=traditional)
1095 dnl AC_MSG_RESULT($cpp_type)
1097 # checks for header files
1099 AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
1101 io.h langinfo.h libintl.h ncurses.h poll.h process.h pthread.h \
1102 shadow.h signal.h stdint.h stropts.h termios.h thread.h \
1104 sys/audioio.h sys/bsdtty.h sys/file.h sys/loadavg.h sys/lock.h sys/mkdev.h \
1106 sys/param.h sys/poll.h sys/select.h sys/socket.h sys/statvfs.h sys/stat.h \
1108 sys/times.h sys/types.h sys/un.h sys/utsname.h sys/wait.h pty.h libutil.h \
1109 sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
1110 bluetooth/bluetooth.h linux/tipc.h)
1114 # On Solaris, term.h requires curses.h
1115 AC_CHECK_HEADERS(term.h,,,[
1116 #ifdef HAVE_CURSES_H
1121 # On Linux, netlink.h requires asm/types.h
1122 AC_CHECK_HEADERS(linux/netlink.h,,,[
1123 #ifdef HAVE_ASM_TYPES_H
1124 #include <asm/types.h>
1126 #ifdef HAVE_SYS_SOCKET_H
1127 #include <sys/socket.h>
1131 # checks for typedefs
1133 AC_MSG_CHECKING(for clock_t in time.h)
1134 AC_EGREP_HEADER(clock_t, time.h, was_it_defined=yes, [
1135 AC_DEFINE(clock_t, long, [Define to 'long' if <time.h> doesn't define.])
1137 AC_MSG_RESULT($was_it_defined)
1139 # Check whether using makedev requires defining _OSF_SOURCE
1140 AC_MSG_CHECKING(for makedev)
1141 AC_TRY_LINK([#include <sys/types.h> ],
1143 ac_cv_has_makedev=yes,
1144 ac_cv_has_makedev=no)
1145 if test "$ac_cv_has_makedev" = "no"; then
1146 # we didn't link, try if _OSF_SOURCE will allow us to link
1148 #define _OSF_SOURCE 1
1149 #include <sys/types.h>
1152 ac_cv_has_makedev=yes,
1153 ac_cv_has_makedev=no)
1154 if test "$ac_cv_has_makedev" = "yes"; then
1155 AC_DEFINE(_OSF_SOURCE, 1, [Define _OSF_SOURCE to get the makedev macro.])
1158 AC_MSG_RESULT($ac_cv_has_makedev)
1159 if test "$ac_cv_has_makedev" = "yes"; then
1160 AC_DEFINE(HAVE_MAKEDEV, 1, [Define this if you have the makedev macro.])
1163 # Enabling LFS on Solaris (2.6 to 9) with gcc 2.95 triggers a bug in
1164 # the system headers: If _XOPEN_SOURCE and _LARGEFILE_SOURCE are
1165 # defined, but the compiler does not support pragma redefine_extname,
1166 # and _LARGEFILE64_SOURCE is not defined, the headers refer to 64-bit
1167 # structures (such as rlimit64) without declaring them. As a
1168 # work-around, disable LFS on such configurations
1171 AC_MSG_CHECKING(Solaris LFS bug)
1173 #define _LARGEFILE_SOURCE 1
1174 #define _FILE_OFFSET_BITS 64
1175 #include <sys/resource.h>
1176 ],struct rlimit foo;,sol_lfs_bug=no,sol_lfs_bug=yes)
1177 AC_MSG_RESULT($sol_lfs_bug)
1178 if test "$sol_lfs_bug" = "yes"; then
1182 if test "$use_lfs" = "yes"; then
1183 # Two defines needed to enable largefile support on various platforms
1184 # These may affect some typedefs
1185 AC_DEFINE(_LARGEFILE_SOURCE, 1,
1186 [This must be defined on some systems to enable large file support.])
1187 AC_DEFINE(_FILE_OFFSET_BITS, 64,
1188 [This must be set to 64 on some systems to enable large file support.])
1191 # Add some code to confdefs.h so that the test for off_t works on SCO
1192 cat >> confdefs.h <<\EOF
1198 # Type availability checks
1205 AC_CHECK_TYPE(ssize_t,
1206 AC_DEFINE(HAVE_SSIZE_T, 1, Define if your compiler provides ssize_t),,)
1208 # Sizes of various common basic types
1209 # ANSI C requires sizeof(char) == 1, so no need to check it
1210 AC_CHECK_SIZEOF(int, 4)
1211 AC_CHECK_SIZEOF(long, 4)
1212 AC_CHECK_SIZEOF(void *, 4)
1213 AC_CHECK_SIZEOF(short, 2)
1214 AC_CHECK_SIZEOF(float, 4)
1215 AC_CHECK_SIZEOF(double, 8)
1216 AC_CHECK_SIZEOF(fpos_t, 4)
1217 AC_CHECK_SIZEOF(size_t, 4)
1218 AC_CHECK_SIZEOF(pid_t, 4)
1220 AC_MSG_CHECKING(for long long support)
1222 AC_TRY_COMPILE([], [long long x; x = (long long)0;], [
1223 AC_DEFINE(HAVE_LONG_LONG, 1, [Define this if you have the type long long.])
1226 AC_MSG_RESULT($have_long_long)
1227 if test "$have_long_long" = yes ; then
1228 AC_CHECK_SIZEOF(long long, 8)
1231 AC_MSG_CHECKING(for _Bool support)
1233 AC_TRY_COMPILE([], [_Bool x; x = (_Bool)0;], [
1234 AC_DEFINE(HAVE_C99_BOOL, 1, [Define this if you have the type _Bool.])
1237 AC_MSG_RESULT($have_c99_bool)
1238 if test "$have_c99_bool" = yes ; then
1239 AC_CHECK_SIZEOF(_Bool, 1)
1242 AC_CHECK_TYPES(uintptr_t,
1243 [AC_CHECK_SIZEOF(uintptr_t, 4)],
1244 [], [#ifdef HAVE_STDINT_H
1249 # Hmph. AC_CHECK_SIZEOF() doesn't include <sys/types.h>.
1250 AC_MSG_CHECKING(size of off_t)
1251 AC_CACHE_VAL(ac_cv_sizeof_off_t,
1252 [AC_TRY_RUN([#include <stdio.h>
1253 #include <sys/types.h>
1256 FILE *f=fopen("conftestval", "w");
1258 fprintf(f, "%d\n", sizeof(off_t));
1261 ac_cv_sizeof_off_t=`cat conftestval`,
1262 ac_cv_sizeof_off_t=0,
1263 ac_cv_sizeof_off_t=4)
1265 AC_MSG_RESULT($ac_cv_sizeof_off_t)
1266 AC_DEFINE_UNQUOTED(SIZEOF_OFF_T, $ac_cv_sizeof_off_t,
1267 [The number of bytes in an off_t.])
1269 AC_MSG_CHECKING(whether to enable large file support)
1270 if test "$have_long_long" = yes -a \
1271 "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \
1272 "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then
1273 AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1,
1274 [Defined to enable large file support when an off_t is bigger than a long
1275 and long long is available and at least as big as an off_t. You may need
1276 to add some flags for configuration and compilation to enable this mode.
1277 (For Solaris and Linux, the necessary defines are already defined.)])
1283 # AC_CHECK_SIZEOF() doesn't include <time.h>.
1284 AC_MSG_CHECKING(size of time_t)
1285 AC_CACHE_VAL(ac_cv_sizeof_time_t,
1286 [AC_TRY_RUN([#include <stdio.h>
1290 FILE *f=fopen("conftestval", "w");
1292 fprintf(f, "%d\n", sizeof(time_t));
1295 ac_cv_sizeof_time_t=`cat conftestval`,
1296 ac_cv_sizeof_time_t=0,
1297 ac_cv_sizeof_time_t=4)
1299 AC_MSG_RESULT($ac_cv_sizeof_time_t)
1300 AC_DEFINE_UNQUOTED(SIZEOF_TIME_T, $ac_cv_sizeof_time_t,
1301 [The number of bytes in a time_t.])
1304 # if have pthread_t then define SIZEOF_PTHREAD_T
1306 if test "$ac_cv_kpthread" = "yes"
1307 then CC="$CC -Kpthread"
1308 elif test "$ac_cv_kthread" = "yes"
1309 then CC="$CC -Kthread"
1310 elif test "$ac_cv_pthread" = "yes"
1311 then CC="$CC -pthread"
1313 AC_MSG_CHECKING(for pthread_t)
1315 AC_TRY_COMPILE([#include <pthread.h>], [pthread_t x; x = *(pthread_t*)0;], have_pthread_t=yes)
1316 AC_MSG_RESULT($have_pthread_t)
1317 if test "$have_pthread_t" = yes ; then
1318 # AC_CHECK_SIZEOF() doesn't include <pthread.h>.
1319 AC_MSG_CHECKING(size of pthread_t)
1320 AC_CACHE_VAL(ac_cv_sizeof_pthread_t,
1321 [AC_TRY_RUN([#include <stdio.h>
1322 #include <pthread.h>
1325 FILE *f=fopen("conftestval", "w");
1327 fprintf(f, "%d\n", sizeof(pthread_t));
1330 ac_cv_sizeof_pthread_t=`cat conftestval`,
1331 ac_cv_sizeof_pthread_t=0,
1332 ac_cv_sizeof_pthread_t=4)
1334 AC_MSG_RESULT($ac_cv_sizeof_pthread_t)
1335 AC_DEFINE_UNQUOTED(SIZEOF_PTHREAD_T, $ac_cv_sizeof_pthread_t,
1336 [The number of bytes in a pthread_t.])
1340 AC_MSG_CHECKING(for --enable-toolbox-glue)
1341 AC_ARG_ENABLE(toolbox-glue,
1342 AC_HELP_STRING(--enable-toolbox-glue, disable/enable MacOSX glue code for extensions))
1344 if test -z "$enable_toolbox_glue"
1346 case $ac_sys_system/$ac_sys_release in
1348 enable_toolbox_glue="yes";;
1350 enable_toolbox_glue="no";;
1353 case "$enable_toolbox_glue" in
1355 extra_machdep_objs="Python/mactoolboxglue.o"
1356 extra_undefs="-u _PyMac_Error"
1357 AC_DEFINE(USE_TOOLBOX_OBJECT_GLUE, 1,
1358 [Define if you want to use MacPython modules on MacOSX in unix-Python.])
1361 extra_machdep_objs=""
1365 AC_MSG_RESULT($enable_toolbox_glue)
1367 AC_SUBST(OTHER_LIBTOOL_OPT)
1368 case $ac_sys_system/$ac_sys_release in
1369 Darwin/@<:@01567@:>@\..*)
1370 OTHER_LIBTOOL_OPT="-prebind -seg1addr 0x10000000"
1373 OTHER_LIBTOOL_OPT=""
1377 AC_SUBST(LIBTOOL_CRUFT)
1378 case $ac_sys_system/$ac_sys_release in
1379 Darwin/@<:@01567@:>@\..*)
1380 LIBTOOL_CRUFT="-framework System -lcc_dynamic"
1381 if test "${enable_universalsdk}"; then
1384 LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only `arch`"
1386 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1387 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1389 gcc_version=`gcc -v 2>&1 | grep version | cut -d\ -f3`
1390 if test ${gcc_version} '<' 4.0
1392 LIBTOOL_CRUFT="-lcc_dynamic"
1396 LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only `arch`"
1397 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1398 LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
1401 AC_MSG_CHECKING(for --enable-framework)
1402 if test "$enable_framework"
1404 BASECFLAGS="$BASECFLAGS -fno-common -dynamic"
1405 # -F. is needed to allow linking to the framework while
1406 # in the build location.
1407 AC_DEFINE(WITH_NEXT_FRAMEWORK, 1,
1408 [Define if you want to produce an OpenStep/Rhapsody framework
1409 (shared library plus accessory files).])
1415 AC_MSG_CHECKING(for dyld)
1416 case $ac_sys_system/$ac_sys_release in
1418 AC_DEFINE(WITH_DYLD, 1,
1419 [Define if you want to use the new-style (Openstep, Rhapsody, MacOS)
1420 dynamic linker (dyld) instead of the old-style (NextStep) dynamic
1421 linker (rld). Dyld is necessary to support frameworks.])
1422 AC_MSG_RESULT(always on for Darwin)
1429 # Set info about shared libraries.
1434 AC_SUBST(LINKFORSHARED)
1435 # SO is the extension of shared libraries `(including the dot!)
1436 # -- usually .so, .sl on HP-UX, .dll on Cygwin
1440 case $ac_sys_system in
1451 # this might also be a termcap variable, see #610332
1453 echo '====================================================================='
1455 echo '+ WARNING: You have set SO in your environment. +'
1456 echo '+ Do you really mean to change the extension for shared libraries? +'
1457 echo '+ Continuing in 10 seconds to let you to ponder. +'
1459 echo '====================================================================='
1463 AC_DEFINE_UNQUOTED(SHLIB_EXT, "$SO", [Define this to be extension of shared libraries (including the dot!).])
1464 # LDSHARED is the ld *command* used to create shared library
1465 # -- "cc -G" on SunOS 5.x, "ld -shared" on IRIX 5
1466 # (Shared libraries in this instance are shared modules to be loaded into
1467 # Python, as opposed to building Python itself as a shared library.)
1468 AC_MSG_CHECKING(LDSHARED)
1469 if test -z "$LDSHARED"
1471 case $ac_sys_system/$ac_sys_release in
1473 BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:Modules/python.exp"
1474 LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
1477 BLDSHARED="\$(srcdir)/Modules/ld_so_beos $LDLIBRARY"
1478 LDSHARED="\$(BINLIBDEST)/config/ld_so_beos \$(LIBDIR)/$LDLIBRARY"
1480 IRIX/5*) LDSHARED="ld -shared";;
1481 IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
1483 if test "$GCC" = "yes"
1484 then LDSHARED='$(CC) -shared'
1485 else LDSHARED='$(CC) -G';
1487 hp*|HP*) LDSHARED="ld -b";;
1488 OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
1490 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1491 if test "$enable_framework" ; then
1492 # Link against the framework. All externals should be defined.
1493 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1494 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1496 # No framework. Ignore undefined symbols, assuming they come from Python
1497 LDSHARED="$LDSHARED -undefined suppress"
1499 Darwin/1.4*|Darwin/5.*|Darwin/6.*)
1500 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1501 if test "$enable_framework" ; then
1502 # Link against the framework. All externals should be defined.
1503 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1504 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1506 # No framework, use the Python app as bundle-loader
1507 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1508 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1511 # Use -undefined dynamic_lookup whenever possible (10.3 and later).
1512 # This allows an extension to be used in any Python
1513 cur_target=`sw_vers -productVersion | sed 's/\(10\.[[0-9]]*\).*/\1/'`
1514 if test ${cur_target} '>' 10.2; then
1517 CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
1519 # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
1520 # environment with a value that is the same as what we'll use
1521 # in the Makefile to ensure that we'll get the same compiler
1522 # environment during configure and build time.
1523 MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
1524 export MACOSX_DEPLOYMENT_TARGET
1526 EXPORT_MACOSX_DEPLOYMENT_TARGET=''
1527 if test ${MACOSX_DEPLOYMENT_TARGET-${cur_target}} '>' 10.2
1529 if test "${enable_universalsdk}"; then
1530 LDFLAGS="-arch i386 -arch ppc -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
1532 LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined dynamic_lookup'
1533 BLDSHARED="$LDSHARED"
1535 LDSHARED='$(CC) $(LDFLAGS) -bundle'
1536 if test "$enable_framework" ; then
1537 # Link against the framework. All externals should be defined.
1538 BLDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1539 LDSHARED="$LDSHARED "'$(PYTHONFRAMEWORKPREFIX)/$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1541 # No framework, use the Python app as bundle-loader
1542 BLDSHARED="$LDSHARED "'-bundle_loader $(BUILDPYTHON)'
1543 LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
1547 Linux*|GNU*) LDSHARED='$(CC) -shared';;
1548 BSD/OS*/4*) LDSHARED="gcc -shared";;
1550 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1552 LDSHARED="$CC -shared ${LDFLAGS}"
1554 LDSHARED="ld -Bshareable ${LDFLAGS}"
1557 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1559 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1562 [[01]].* | 2.[[0-7]] | 2.[[0-7]].*)
1563 LDSHARED="ld -Bshareable ${LDFLAGS}"
1566 LDSHARED='$(CC) -shared $(CCSHARED) ${LDFLAGS}'
1570 NetBSD*|DragonFly*) LDSHARED="cc -shared ${LDFLAGS}";;
1571 OpenUNIX*|UnixWare*)
1572 if test "$GCC" = "yes"
1573 then LDSHARED='$(CC) -shared'
1574 else LDSHARED='$(CC) -G'
1576 SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';;
1577 Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
1578 CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
1579 atheos*) LDSHARED="gcc -shared";;
1583 AC_MSG_RESULT($LDSHARED)
1584 BLDSHARED=${BLDSHARED-$LDSHARED}
1585 # CCSHARED are the C *flags* used to create objects to go into a shared
1586 # library (module) -- this is only needed for a few systems
1587 AC_MSG_CHECKING(CCSHARED)
1588 if test -z "$CCSHARED"
1590 case $ac_sys_system/$ac_sys_release in
1591 SunOS*) if test "$GCC" = yes;
1592 then CCSHARED="-fPIC";
1593 elif test `uname -p` = sparc;
1594 then CCSHARED="-xcode=pic32";
1595 else CCSHARED="-Kpic";
1597 hp*|HP*) if test "$GCC" = yes;
1598 then CCSHARED="-fPIC";
1601 Linux*|GNU*) CCSHARED="-fPIC";;
1602 BSD/OS*/4*) CCSHARED="-fpic";;
1603 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*) CCSHARED="-fPIC";;
1604 OpenUNIX*|UnixWare*)
1605 if test "$GCC" = "yes"
1606 then CCSHARED="-fPIC"
1607 else CCSHARED="-KPIC"
1610 if test "$GCC" = "yes"
1611 then CCSHARED="-fPIC"
1612 else CCSHARED="-Kpic -belf"
1614 Monterey*) CCSHARED="-G";;
1615 IRIX*/6*) case $CC in
1616 *gcc*) CCSHARED="-shared";;
1619 atheos*) CCSHARED="-fPIC";;
1622 AC_MSG_RESULT($CCSHARED)
1623 # LINKFORSHARED are the flags passed to the $(CC) command that links
1624 # the python executable -- this is only needed for a few systems
1625 AC_MSG_CHECKING(LINKFORSHARED)
1626 if test -z "$LINKFORSHARED"
1628 case $ac_sys_system/$ac_sys_release in
1629 AIX*) LINKFORSHARED='-Wl,-bE:Modules/python.exp -lld';;
1631 LINKFORSHARED="-Wl,-E -Wl,+s";;
1632 # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";;
1633 BSD/OS/4*) LINKFORSHARED="-Xlinker -export-dynamic";;
1634 Linux*|GNU*) LINKFORSHARED="-Xlinker -export-dynamic";;
1635 # -u libsys_s pulls in all symbols in libsys
1637 # -u _PyMac_Error is needed to pull in the mac toolbox glue,
1639 # not used by the core itself but which needs to be in the core so
1640 # that dynamically loaded extension modules have access to it.
1641 # -prebind is no longer used, because it actually seems to give a
1642 # slowdown in stead of a speedup, maybe due to the large number of
1643 # dynamic loads Python does.
1645 LINKFORSHARED="$extra_undefs"
1646 if test "$enable_framework"
1648 LINKFORSHARED="$LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
1650 LINKFORSHARED="$LINKFORSHARED";;
1651 OpenUNIX*|UnixWare*) LINKFORSHARED="-Wl,-Bexport";;
1652 SCO_SV*) LINKFORSHARED="-Wl,-Bexport";;
1653 ReliantUNIX*) LINKFORSHARED="-W1 -Blargedynsym";;
1654 FreeBSD*|NetBSD*|OpenBSD*|DragonFly*)
1655 if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
1657 LINKFORSHARED="-Wl,--export-dynamic"
1659 SunOS/5*) case $CC in
1661 if $CC -Xlinker --help 2>&1 | grep export-dynamic >/dev/null
1663 LINKFORSHARED="-Xlinker --export-dynamic"
1667 if test $enable_shared = "no"
1669 LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)'
1673 AC_MSG_RESULT($LINKFORSHARED)
1675 AC_SUBST(CFLAGSFORSHARED)
1676 AC_MSG_CHECKING(CFLAGSFORSHARED)
1677 if test ! "$LIBRARY" = "$LDLIBRARY"
1679 case $ac_sys_system in
1681 # Cygwin needs CCSHARED when building extension DLLs
1682 # but not when building the interpreter DLL.
1683 CFLAGSFORSHARED='';;
1685 CFLAGSFORSHARED='$(CCSHARED)'
1688 AC_MSG_RESULT($CFLAGSFORSHARED)
1690 # SHLIBS are libraries (except -lc and -lm) to link to the python shared
1691 # library (with --enable-shared).
1692 # For platforms on which shared libraries are not allowed to have unresolved
1693 # symbols, this must be set to $(LIBS) (expanded by make). We do this even
1694 # if it is not required, since it creates a dependency of the shared library
1695 # to LIBS. This, in turn, means that applications linking the shared libpython
1696 # don't need to link LIBS explicitly. The default should be only changed
1697 # on systems where this approach causes problems.
1699 AC_MSG_CHECKING(SHLIBS)
1700 case "$ac_sys_system" in
1704 AC_MSG_RESULT($SHLIBS)
1707 # checks for libraries
1708 AC_CHECK_LIB(dl, dlopen) # Dynamic linking for SunOS/Solaris and SYSV
1709 AC_CHECK_LIB(dld, shl_load) # Dynamic linking for HP-UX
1711 # only check for sem_ini if thread support is requested
1712 if test "$with_threads" = "yes" -o -z "$with_threads"; then
1713 AC_SEARCH_LIBS(sem_init, pthread rt posix4) # 'Real Time' functions on Solaris
1714 # posix4 on Solaris 2.6
1715 # pthread (first!) on Linux
1718 # check if we need libintl for locale functions
1719 AC_CHECK_LIB(intl, textdomain,
1720 AC_DEFINE(WITH_LIBINTL, 1,
1721 [Define to 1 if libintl is needed for locale functions.]))
1723 # checks for system dependent C++ extensions support
1724 case "$ac_sys_system" in
1725 AIX*) AC_MSG_CHECKING(for genuine AIX C++ extensions support)
1726 AC_TRY_LINK([#include "/usr/lpp/xlC/include/load.h"],
1727 [loadAndInit("", 0, "")],
1728 [AC_DEFINE(AIX_GENUINE_CPLUSPLUS, 1,
1729 [Define for AIX if your compiler is a genuine IBM xlC/xlC_r
1730 and you want support for AIX C++ shared extension modules.])
1731 AC_MSG_RESULT(yes)],
1732 [AC_MSG_RESULT(no)]);;
1736 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
1737 # BeOS' sockets are stashed in libnet.
1738 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
1739 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
1741 case "$ac_sys_system" in
1743 AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
1747 AC_MSG_CHECKING(for --with-libs)
1749 AC_HELP_STRING(--with-libs='lib1 ...', link against additional libs),
1751 AC_MSG_RESULT($withval)
1752 LIBS="$withval $LIBS"
1754 [AC_MSG_RESULT(no)])
1756 # Check for use of the system libffi library
1757 AC_CHECK_HEADER(ffi.h)
1758 AC_MSG_CHECKING(for --with-system-ffi)
1759 AC_ARG_WITH(system_ffi,
1760 AC_HELP_STRING(--with-system-ffi, build _ctypes module using an installed ffi library))
1762 if test -z "$with_system_ffi" && test "$ac_cv_header_ffi_h" = yes; then
1763 case "$ac_sys_system/`uname -m`" in
1764 Linux/alpha*) with_system_ffi="yes"; CONFIG_ARGS="$CONFIG_ARGS --with-system-ffi";;
1765 Linux/arm*) with_system_ffi="yes"; CONFIG_ARGS="$CONFIG_ARGS --with-system-ffi";;
1766 Linux/ppc*) with_system_ffi="yes"; CONFIG_ARGS="$CONFIG_ARGS --with-system-ffi";;
1767 Linux/s390*) with_system_ffi="yes"; CONFIG_ARGS="$CONFIG_ARGS --with-system-ffi";;
1768 *) with_system_ffi="no"
1771 AC_MSG_RESULT($with_system_ffi)
1773 # Determine if signalmodule should be used.
1774 AC_SUBST(USE_SIGNAL_MODULE)
1775 AC_SUBST(SIGNAL_OBJS)
1776 AC_MSG_CHECKING(for --with-signal-module)
1777 AC_ARG_WITH(signal-module,
1778 AC_HELP_STRING(--with-signal-module, disable/enable signal module))
1780 if test -z "$with_signal_module"
1781 then with_signal_module="yes"
1783 AC_MSG_RESULT($with_signal_module)
1785 if test "${with_signal_module}" = "yes"; then
1786 USE_SIGNAL_MODULE=""
1789 USE_SIGNAL_MODULE="#"
1790 SIGNAL_OBJS="Parser/intrcheck.o Python/sigcheck.o"
1793 # This is used to generate Setup.config
1794 AC_SUBST(USE_THREAD_MODULE)
1795 USE_THREAD_MODULE=""
1797 AC_MSG_CHECKING(for --with-dec-threads)
1799 AC_ARG_WITH(dec-threads,
1800 AC_HELP_STRING(--with-dec-threads, use DEC Alpha/OSF1 thread-safe libraries),
1802 AC_MSG_RESULT($withval)
1804 if test "${with_thread+set}" != set; then
1805 with_thread="$withval";
1807 [AC_MSG_RESULT(no)])
1809 # Templates for things AC_DEFINEd more than once.
1810 # For a single AC_DEFINE, no template is needed.
1811 AH_TEMPLATE(C_THREADS,[Define if you have the Mach cthreads package])
1812 AH_TEMPLATE(_REENTRANT,
1813 [Define to force use of thread-safe errno, h_errno, and other functions])
1814 AH_TEMPLATE(WITH_THREAD,
1815 [Define if you want to compile in rudimentary thread support])
1817 AC_MSG_CHECKING(for --with-threads)
1818 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1819 AC_ARG_WITH(threads,
1820 AC_HELP_STRING(--with(out)-threads@<:@=DIRECTORY@:>@, disable/enable thread support))
1822 # --with-thread is deprecated, but check for it anyway
1823 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
1825 AC_HELP_STRING(--with(out)-thread@<:@=DIRECTORY@:>@, deprecated; use --with(out)-threads),
1826 [with_threads=$with_thread])
1828 if test -z "$with_threads"
1829 then with_threads="yes"
1831 AC_MSG_RESULT($with_threads)
1834 if test "$with_threads" = "no"
1836 USE_THREAD_MODULE="#"
1837 elif test "$ac_cv_pthread_is_default" = yes
1839 AC_DEFINE(WITH_THREAD)
1840 # Defining _REENTRANT on system with POSIX threads should not hurt.
1841 AC_DEFINE(_REENTRANT)
1843 THREADOBJ="Python/thread.o"
1844 elif test "$ac_cv_kpthread" = "yes"
1847 if test "$ac_cv_cxx_thread" = "yes"; then
1848 CXX="$CXX -Kpthread"
1850 AC_DEFINE(WITH_THREAD)
1852 THREADOBJ="Python/thread.o"
1853 elif test "$ac_cv_kthread" = "yes"
1856 if test "$ac_cv_cxx_thread" = "yes"; then
1859 AC_DEFINE(WITH_THREAD)
1861 THREADOBJ="Python/thread.o"
1862 elif test "$ac_cv_pthread" = "yes"
1865 if test "$ac_cv_cxx_thread" = "yes"; then
1868 AC_DEFINE(WITH_THREAD)
1870 THREADOBJ="Python/thread.o"
1872 if test ! -z "$with_threads" -a -d "$with_threads"
1873 then LDFLAGS="$LDFLAGS -L$with_threads"
1875 if test ! -z "$withval" -a -d "$withval"
1876 then LDFLAGS="$LDFLAGS -L$withval"
1879 # According to the POSIX spec, a pthreads implementation must
1880 # define _POSIX_THREADS in unistd.h. Some apparently don't
1881 # (e.g. gnu pth with pthread emulation)
1882 AC_MSG_CHECKING(for _POSIX_THREADS in unistd.h)
1886 #ifdef _POSIX_THREADS
1889 ], unistd_defines_pthreads=yes, unistd_defines_pthreads=no)
1890 AC_MSG_RESULT($unistd_defines_pthreads)
1892 AC_DEFINE(_REENTRANT)
1893 AC_CHECK_HEADER(cthreads.h, [AC_DEFINE(WITH_THREAD)
1894 AC_DEFINE(C_THREADS)
1895 AC_DEFINE(HURD_C_THREADS, 1,
1896 [Define if you are using Mach cthreads directly under /include])
1897 LIBS="$LIBS -lthreads"
1898 THREADOBJ="Python/thread.o"],[
1899 AC_CHECK_HEADER(mach/cthreads.h, [AC_DEFINE(WITH_THREAD)
1900 AC_DEFINE(C_THREADS)
1901 AC_DEFINE(MACH_C_THREADS, 1,
1902 [Define if you are using Mach cthreads under mach /])
1903 THREADOBJ="Python/thread.o"],[
1904 AC_MSG_CHECKING(for --with-pth)
1906 AC_HELP_STRING(--with-pth, use GNU pth threading libraries),
1907 [AC_MSG_RESULT($withval)
1908 AC_DEFINE([WITH_THREAD])
1909 AC_DEFINE([HAVE_PTH], 1,
1910 [Define if you have GNU PTH threads.])
1912 THREADOBJ="Python/thread.o"],
1915 # Just looking for pthread_create in libpthread is not enough:
1916 # on HP/UX, pthread.h renames pthread_create to a different symbol name.
1917 # So we really have to include pthread.h, and then link.
1919 LIBS="$LIBS -lpthread"
1920 AC_MSG_CHECKING([for pthread_create in -lpthread])
1921 AC_TRY_LINK([#include <pthread.h>
1923 void * start_routine (void *arg) { exit (0); }], [
1924 pthread_create (NULL, NULL, start_routine, NULL)], [
1926 AC_DEFINE(WITH_THREAD)
1928 THREADOBJ="Python/thread.o"],[
1930 AC_CHECK_FUNC(pthread_detach, [AC_DEFINE(WITH_THREAD)
1932 THREADOBJ="Python/thread.o"],[
1933 AC_CHECK_HEADER(atheos/threads.h, [AC_DEFINE(WITH_THREAD)
1934 AC_DEFINE(ATHEOS_THREADS, 1,
1935 [Define this if you have AtheOS threads.])
1936 THREADOBJ="Python/thread.o"],[
1937 AC_CHECK_HEADER(kernel/OS.h, [AC_DEFINE(WITH_THREAD)
1938 AC_DEFINE(BEOS_THREADS, 1,
1939 [Define this if you have BeOS threads.])
1940 THREADOBJ="Python/thread.o"],[
1941 AC_CHECK_LIB(pthreads, pthread_create, [AC_DEFINE(WITH_THREAD)
1943 LIBS="$LIBS -lpthreads"
1944 THREADOBJ="Python/thread.o"], [
1945 AC_CHECK_LIB(c_r, pthread_create, [AC_DEFINE(WITH_THREAD)
1948 THREADOBJ="Python/thread.o"], [
1949 AC_CHECK_LIB(pthread, __pthread_create_system, [AC_DEFINE(WITH_THREAD)
1951 LIBS="$LIBS -lpthread"
1952 THREADOBJ="Python/thread.o"], [
1953 AC_CHECK_LIB(cma, pthread_create, [AC_DEFINE(WITH_THREAD)
1956 THREADOBJ="Python/thread.o"],[
1957 USE_THREAD_MODULE="#"])
1958 ])])])])])])])])])])
1960 AC_CHECK_LIB(mpc, usconfig, [AC_DEFINE(WITH_THREAD)
1962 THREADOBJ="Python/thread.o"
1963 USE_THREAD_MODULE=""])
1965 if test "$posix_threads" != "yes"; then
1966 AC_CHECK_LIB(thread, thr_create, [AC_DEFINE(WITH_THREAD)
1967 LIBS="$LIBS -lthread"
1968 THREADOBJ="Python/thread.o"
1969 USE_THREAD_MODULE=""])
1972 if test "$USE_THREAD_MODULE" != "#"
1974 # If the above checks didn't disable threads, (at least) OSF1
1975 # needs this '-threads' argument during linking.
1976 case $ac_sys_system in
1977 OSF1) LDLAST=-threads;;
1982 if test "$posix_threads" = "yes"; then
1983 if test "$unistd_defines_pthreads" = "no"; then
1984 AC_DEFINE(_POSIX_THREADS, 1,
1985 [Define if you have POSIX threads,
1986 and your system does not define that.])
1989 # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8.
1990 case $ac_sys_system/$ac_sys_release in
1991 SunOS/5.6) AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
1992 Defined for Solaris 2.6 bug in pthread header.)
1994 SunOS/5.8) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
1995 Define if the Posix semaphores do not work on your system)
1997 AIX/5) AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,
1998 Define if the Posix semaphores do not work on your system)
2002 AC_MSG_CHECKING(if PTHREAD_SCOPE_SYSTEM is supported)
2003 AC_CACHE_VAL(ac_cv_pthread_system_supported,
2004 [AC_TRY_RUN([#include <pthread.h>
2005 void *foo(void *parm) {
2009 pthread_attr_t attr;
2011 if (pthread_attr_init(&attr)) exit(-1);
2012 if (pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM)) exit(-1);
2013 if (pthread_create(&id, &attr, foo, NULL)) exit(-1);
2016 ac_cv_pthread_system_supported=yes,
2017 ac_cv_pthread_system_supported=no,
2018 ac_cv_pthread_system_supported=no)
2020 AC_MSG_RESULT($ac_cv_pthread_system_supported)
2021 if test "$ac_cv_pthread_system_supported" = "yes"; then
2022 AC_DEFINE(PTHREAD_SYSTEM_SCHED_SUPPORTED, 1, [Defined if PTHREAD_SCOPE_SYSTEM supported.])
2024 AC_CHECK_FUNCS(pthread_sigmask,
2025 [case $ac_sys_system in
2027 AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1,
2028 [Define if pthread_sigmask() does not work on your system.])
2034 # Check for enable-ipv6
2035 AH_TEMPLATE(ENABLE_IPV6, [Define if --enable-ipv6 is specified])
2036 AC_MSG_CHECKING([if --enable-ipv6 is specified])
2038 [ --enable-ipv6 Enable ipv6 (with ipv4) support
2039 --disable-ipv6 Disable ipv6 support],
2040 [ case "$enableval" in
2045 *) AC_MSG_RESULT(yes)
2046 AC_DEFINE(ENABLE_IPV6)
2052 dnl the check does not work on cross compilation case...
2053 AC_TRY_RUN([ /* AF_INET6 available check */
2054 #include <sys/types.h>
2055 #include <sys/socket.h>
2058 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
2072 if test "$ipv6" = "yes"; then
2073 AC_MSG_CHECKING(if RFC2553 API is available)
2074 AC_TRY_COMPILE([#include <sys/types.h>
2075 #include <netinet/in.h>],
2076 [struct sockaddr_in6 x;
2080 AC_MSG_RESULT(no, IPv6 disabled)
2084 if test "$ipv6" = "yes"; then
2085 AC_DEFINE(ENABLE_IPV6)
2093 if test "$ipv6" = "yes"; then
2094 AC_MSG_CHECKING([ipv6 stack type])
2095 for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta;
2099 dnl http://www.kame.net/
2101 #include <netinet/in.h>
2102 #ifdef IPV6_INRIA_VERSION
2108 dnl http://www.kame.net/
2110 #include <netinet/in.h>
2116 ipv6libdir=/usr/local/v6/lib
2120 dnl http://www.v6.linux.or.jp/
2122 #include <features.h>
2123 #if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2))
2130 dnl http://www.v6.linux.or.jp/
2131 if test -d /usr/inet6; then
2134 ipv6libdir=/usr/inet6/lib
2135 BASECFLAGS="-I/usr/inet6/include $BASECFLAGS"
2139 if test -f /etc/netconfig; then
2140 if /usr/xpg4/bin/grep -q tcp6 /etc/netconfig; then
2148 #include <sys/param.h>
2149 #ifdef _TOSHIBA_INET6
2154 ipv6libdir=/usr/local/v6/lib])
2158 #include </usr/local/v6/include/sys/v6config.h>
2164 ipv6libdir=/usr/local/v6/lib;
2165 BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"])
2169 #include <sys/param.h>
2170 #ifdef _ZETA_MINAMI_INET6
2175 ipv6libdir=/usr/local/v6/lib])
2178 if test "$ipv6type" != "unknown"; then
2182 AC_MSG_RESULT($ipv6type)
2185 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
2186 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
2187 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
2188 echo "using lib$ipv6lib"
2190 if test $ipv6trylibc = "yes"; then
2193 echo 'Fatal: no $ipv6lib library found. cannot continue.'
2194 echo "You need to fetch lib$ipv6lib.a from appropriate"
2195 echo 'ipv6 kit and compile beforehand.'
2201 # Check for --with-doc-strings
2202 AC_MSG_CHECKING(for --with-doc-strings)
2203 AC_ARG_WITH(doc-strings,
2204 AC_HELP_STRING(--with(out)-doc-strings, disable/enable documentation strings))
2206 if test -z "$with_doc_strings"
2207 then with_doc_strings="yes"
2209 if test "$with_doc_strings" != "no"
2211 AC_DEFINE(WITH_DOC_STRINGS, 1,
2212 [Define if you want documentation strings in extension modules])
2214 AC_MSG_RESULT($with_doc_strings)
2216 # Check for Python-specific malloc support
2217 AC_MSG_CHECKING(for --with-tsc)
2219 [ --with(out)-tsc enable/disable timestamp counter profile], [
2220 if test "$withval" != no
2222 AC_DEFINE(WITH_TSC, 1,
2223 [Define to profile with the Pentium timestamp counter])
2225 else AC_MSG_RESULT(no)
2227 [AC_MSG_RESULT(no)])
2229 # Check for Python-specific malloc support
2230 AC_MSG_CHECKING(for --with-pymalloc)
2231 AC_ARG_WITH(pymalloc,
2232 AC_HELP_STRING(--with(out)-pymalloc, disable/enable specialized mallocs))
2234 if test -z "$with_pymalloc"
2235 then with_pymalloc="yes"
2237 if test "$with_pymalloc" != "no"
2239 AC_DEFINE(WITH_PYMALLOC, 1,
2240 [Define if you want to compile in Python-specific mallocs])
2242 AC_MSG_RESULT($with_pymalloc)
2244 # Check for --with-wctype-functions
2245 AC_MSG_CHECKING(for --with-wctype-functions)
2246 AC_ARG_WITH(wctype-functions,
2247 AC_HELP_STRING(--with-wctype-functions, use wctype.h functions),
2249 if test "$withval" != no
2251 AC_DEFINE(WANT_WCTYPE_FUNCTIONS, 1,
2252 [Define if you want wctype.h functions to be used instead of the
2253 one supplied by Python itself. (see Include/unicodectype.h).])
2255 else AC_MSG_RESULT(no)
2257 [AC_MSG_RESULT(no)])
2259 # -I${DLINCLDIR} is added to the compile rule for importdl.o
2263 # the dlopen() function means we might want to use dynload_shlib.o. some
2264 # platforms, such as AIX, have dlopen(), but don't want to use it.
2265 AC_CHECK_FUNCS(dlopen)
2267 # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic
2268 # loading of modules.
2269 AC_SUBST(DYNLOADFILE)
2270 AC_MSG_CHECKING(DYNLOADFILE)
2271 if test -z "$DYNLOADFILE"
2273 case $ac_sys_system/$ac_sys_release in
2274 AIX*) # Use dynload_shlib.c and dlopen() if we have it; otherwise dynload_aix.c
2275 if test "$ac_cv_func_dlopen" = yes
2276 then DYNLOADFILE="dynload_shlib.o"
2277 else DYNLOADFILE="dynload_aix.o"
2280 BeOS*) DYNLOADFILE="dynload_beos.o";;
2281 hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
2282 # Use dynload_next.c only on 10.2 and below, which don't have native dlopen()
2283 Darwin/@<:@0156@:>@\..*) DYNLOADFILE="dynload_next.o";;
2284 atheos*) DYNLOADFILE="dynload_atheos.o";;
2286 # use dynload_shlib.c and dlopen() if we have it; otherwise stub
2287 # out any dynamic loading
2288 if test "$ac_cv_func_dlopen" = yes
2289 then DYNLOADFILE="dynload_shlib.o"
2290 else DYNLOADFILE="dynload_stub.o"
2295 AC_MSG_RESULT($DYNLOADFILE)
2296 if test "$DYNLOADFILE" != "dynload_stub.o"
2298 AC_DEFINE(HAVE_DYNAMIC_LOADING, 1,
2299 [Defined when any dynamic module loading is enabled.])
2302 # MACHDEP_OBJS can be set to platform-specific object files needed by Python
2304 AC_SUBST(MACHDEP_OBJS)
2305 AC_MSG_CHECKING(MACHDEP_OBJS)
2306 if test -z "$MACHDEP_OBJS"
2308 MACHDEP_OBJS=$extra_machdep_objs
2310 MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs"
2312 AC_MSG_RESULT(MACHDEP_OBJS)
2314 # checks for library functions
2315 AC_CHECK_FUNCS(alarm bind_textdomain_codeset chown clock confstr \
2316 ctermid execv fchmod fchown fork fpathconf ftime ftruncate \
2317 gai_strerror getgroups getlogin getloadavg getpeername getpgid getpid \
2318 getpriority getpwent getspnam getspent getsid getwd \
2319 kill killpg lchmod lchown lstat mkfifo mknod mktime \
2320 mremap nice pathconf pause plock poll pthread_init \
2321 putenv readlink realpath \
2322 select setegid seteuid setgid \
2323 setlocale setregid setreuid setsid setpgid setpgrp setuid setvbuf snprintf \
2324 sigaction siginterrupt sigrelse strftime \
2325 sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \
2326 truncate uname unsetenv utimes waitpid wait3 wait4 wcscoll _getpty)
2328 # For some functions, having a definition is not sufficient, since
2329 # we want to take their address.
2330 AC_MSG_CHECKING(for chroot)
2331 AC_TRY_COMPILE([#include <unistd.h>], void *x=chroot,
2332 AC_DEFINE(HAVE_CHROOT, 1, Define if you have the 'chroot' function.)
2336 AC_MSG_CHECKING(for link)
2337 AC_TRY_COMPILE([#include <unistd.h>], void *x=link,
2338 AC_DEFINE(HAVE_LINK, 1, Define if you have the 'link' function.)
2342 AC_MSG_CHECKING(for symlink)
2343 AC_TRY_COMPILE([#include <unistd.h>], void *x=symlink,
2344 AC_DEFINE(HAVE_SYMLINK, 1, Define if you have the 'symlink' function.)
2348 AC_MSG_CHECKING(for fchdir)
2349 AC_TRY_COMPILE([#include <unistd.h>], void *x=fchdir,
2350 AC_DEFINE(HAVE_FCHDIR, 1, Define if you have the 'fchdir' function.)
2354 AC_MSG_CHECKING(for fsync)
2355 AC_TRY_COMPILE([#include <unistd.h>], void *x=fsync,
2356 AC_DEFINE(HAVE_FSYNC, 1, Define if you have the 'fsync' function.)
2360 AC_MSG_CHECKING(for fdatasync)
2361 AC_TRY_COMPILE([#include <unistd.h>], void *x=fdatasync,
2362 AC_DEFINE(HAVE_FDATASYNC, 1, Define if you have the 'fdatasync' function.)
2367 # On some systems (eg. FreeBSD 5), we would find a definition of the
2368 # functions ctermid_r, setgroups in the library, but no prototype
2369 # (e.g. because we use _XOPEN_SOURCE). See whether we can take their
2370 # address to avoid compiler warnings and potential miscompilations
2371 # because of the missing prototypes.
2373 AC_MSG_CHECKING(for ctermid_r)
2375 #include "confdefs.h"
2377 ], void* p = ctermid_r,
2378 AC_DEFINE(HAVE_CTERMID_R, 1, Define if you have the 'ctermid_r' function.)
2383 AC_MSG_CHECKING(for flock)
2385 #include "confdefs.h"
2386 #include <sys/file.h>
2388 AC_DEFINE(HAVE_FLOCK, 1, Define if you have the 'flock' function.)
2393 AC_MSG_CHECKING(for getpagesize)
2395 #include "confdefs.h"
2397 ], void* p = getpagesize,
2398 AC_DEFINE(HAVE_GETPAGESIZE, 1, Define if you have the 'getpagesize' function.)
2404 AC_CHECK_PROGS(TRUE, true, /bin/true)
2406 dnl On some systems (e.g. Solaris 9), hstrerror and inet_aton are in -lresolv
2407 dnl On others, they are in the C library, so we to take no action
2408 AC_CHECK_LIB(c, inet_aton, [$ac_cv_prog_TRUE],
2409 AC_CHECK_LIB(resolv, inet_aton)
2412 # On Tru64, chflags seems to be present, but calling it will
2414 AC_MSG_CHECKING(for chflags)
2416 #include <sys/stat.h>
2418 int main(int argc, char*argv[])
2420 if(chflags(argv[0], 0) != 0)
2424 ],AC_DEFINE(HAVE_CHFLAGS, 1, Define to 1 if you have the `chflags' function.)
2429 AC_MSG_CHECKING(for lchflags)
2431 #include <sys/stat.h>
2433 int main(int argc, char*argv[])
2435 if(lchflags(argv[0], 0) != 0)
2439 ],AC_DEFINE(HAVE_LCHFLAGS, 1, Define to 1 if you have the `lchflags' function.)
2444 dnl Check if system zlib has *Copy() functions
2446 dnl On MacOSX the linker will search for dylibs on the entire linker path
2447 dnl before searching for static libraries. setup.py adds -Wl,-search_paths_first
2448 dnl to revert to a more traditional unix behaviour and make it possible to
2449 dnl override the system libz with a local static library of libz. Temporarily
2450 dnl add that flag to our CFLAGS as well to ensure that we check the version
2451 dnl of libz that will be used by setup.py.
2452 dnl The -L/usr/local/lib is needed as wel to get the same compilation
2453 dnl environment as setup.py (and leaving it out can cause configure to use the
2454 dnl wrong version of the library)
2455 case $ac_sys_system/$ac_sys_release in
2457 _CUR_CFLAGS="${CFLAGS}"
2458 _CUR_LDFLAGS="${LDFLAGS}"
2459 CFLAGS="${CFLAGS} -Wl,-search_paths_first"
2460 LDFLAGS="${LDFLAGS} -Wl,-search_paths_first -L/usr/local/lib"
2464 AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_ZLIB_COPY, 1, Define if the zlib library has inflateCopy))
2466 case $ac_sys_system/$ac_sys_release in
2468 CFLAGS="${_CUR_CFLAGS}"
2469 LDFLAGS="${_CUR_LDFLAGS}"
2473 AC_MSG_CHECKING(for hstrerror)
2475 #include "confdefs.h"
2477 ], void* p = hstrerror; hstrerror(0),
2478 AC_DEFINE(HAVE_HSTRERROR, 1, Define if you have the 'hstrerror' function.)
2483 AC_MSG_CHECKING(for inet_aton)
2485 #include "confdefs.h"
2486 #include <sys/types.h>
2487 #include <sys/socket.h>
2488 #include <netinet/in.h>
2489 #include <arpa/inet.h>
2490 ], void* p = inet_aton;inet_aton(0,0),
2491 AC_DEFINE(HAVE_INET_ATON, 1, Define if you have the 'inet_aton' function.)
2496 AC_MSG_CHECKING(for inet_pton)
2498 #include "confdefs.h"
2499 #include <sys/types.h>
2500 #include <sys/socket.h>
2501 #include <netinet/in.h>
2502 #include <arpa/inet.h>
2503 ], void* p = inet_pton,
2504 AC_DEFINE(HAVE_INET_PTON, 1, Define if you have the 'inet_pton' function.)
2509 # On some systems, setgroups is in unistd.h, on others, in grp.h
2510 AC_MSG_CHECKING(for setgroups)
2512 #include "confdefs.h"
2518 void* p = setgroups,
2519 AC_DEFINE(HAVE_SETGROUPS, 1, Define if you have the 'setgroups' function.)
2524 # check for openpty and forkpty
2526 AC_CHECK_FUNCS(openpty,,
2527 AC_CHECK_LIB(util,openpty,
2528 [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lutil"],
2529 AC_CHECK_LIB(bsd,openpty, [AC_DEFINE(HAVE_OPENPTY) LIBS="$LIBS -lbsd"])
2532 AC_CHECK_FUNCS(forkpty,,
2533 AC_CHECK_LIB(util,forkpty,
2534 [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lutil"],
2535 AC_CHECK_LIB(bsd,forkpty, [AC_DEFINE(HAVE_FORKPTY) LIBS="$LIBS -lbsd"])
2539 # check for long file support functions
2540 AC_CHECK_FUNCS(fseek64 fseeko fstatvfs ftell64 ftello statvfs)
2542 AC_REPLACE_FUNCS(dup2 getcwd strdup strerror memmove)
2543 AC_CHECK_FUNCS(getpgrp,
2544 AC_TRY_COMPILE([#include <unistd.h>],
2546 AC_DEFINE(GETPGRP_HAVE_ARG, 1,
2547 [Define if getpgrp() must be called as getpgrp(0).])
2550 AC_CHECK_FUNCS(setpgrp,
2551 AC_TRY_COMPILE([#include <unistd.h>],
2553 AC_DEFINE(SETPGRP_HAVE_ARG, 1,
2554 [Define if setpgrp() must be called as setpgrp(0, 0).])
2557 AC_CHECK_FUNCS(gettimeofday,
2558 AC_TRY_COMPILE([#include <sys/time.h>],
2559 [gettimeofday((struct timeval*)0,(struct timezone*)0);], ,
2560 AC_DEFINE(GETTIMEOFDAY_NO_TZ, 1,
2561 [Define if gettimeofday() does not have second (timezone) argument
2562 This is the case on Motorola V4 (R40V4.2)])
2566 AC_MSG_CHECKING(for major, minor, and makedev)
2568 #if defined(MAJOR_IN_MKDEV)
2569 #include <sys/mkdev.h>
2570 #elif defined(MAJOR_IN_SYSMACROS)
2571 #include <sys/sysmacros.h>
2573 #include <sys/types.h>
2576 makedev(major(0),minor(0));
2578 AC_DEFINE(HAVE_DEVICE_MACROS, 1,
2579 [Define to 1 if you have the device macros.])
2585 # On OSF/1 V5.1, getaddrinfo is available, but a define
2586 # for [no]getaddrinfo in netdb.h.
2587 AC_MSG_CHECKING(for getaddrinfo)
2589 #include <sys/types.h>
2590 #include <sys/socket.h>
2594 getaddrinfo(NULL, NULL, NULL, NULL);
2597 AC_MSG_CHECKING(getaddrinfo bug)
2599 #include <sys/types.h>
2602 #include <sys/socket.h>
2603 #include <netinet/in.h>
2607 int passive, gaierr, inet4 = 0, inet6 = 0;
2608 struct addrinfo hints, *ai, *aitop;
2609 char straddr[INET6_ADDRSTRLEN], strport[16];
2611 for (passive = 0; passive <= 1; passive++) {
2612 memset(&hints, 0, sizeof(hints));
2613 hints.ai_family = AF_UNSPEC;
2614 hints.ai_flags = passive ? AI_PASSIVE : 0;
2615 hints.ai_socktype = SOCK_STREAM;
2616 hints.ai_protocol = IPPROTO_TCP;
2617 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
2618 (void)gai_strerror(gaierr);
2621 for (ai = aitop; ai; ai = ai->ai_next) {
2622 if (ai->ai_addr == NULL ||
2623 ai->ai_addrlen == 0 ||
2624 getnameinfo(ai->ai_addr, ai->ai_addrlen,
2625 straddr, sizeof(straddr), strport, sizeof(strport),
2626 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
2629 switch (ai->ai_family) {
2631 if (strcmp(strport, "54321") != 0) {
2635 if (strcmp(straddr, "0.0.0.0") != 0) {
2639 if (strcmp(straddr, "127.0.0.1") != 0) {
2646 if (strcmp(strport, "54321") != 0) {
2650 if (strcmp(straddr, "::") != 0) {
2654 if (strcmp(straddr, "::1") != 0) {
2664 /* another family support? */
2670 if (!(inet4 == 0 || inet4 == 2))
2672 if (!(inet6 == 0 || inet6 == 2))
2676 freeaddrinfo(aitop);
2681 freeaddrinfo(aitop);
2686 buggygetaddrinfo=no,
2687 AC_MSG_RESULT(buggy)
2688 buggygetaddrinfo=yes,
2689 AC_MSG_RESULT(buggy)
2690 buggygetaddrinfo=yes)], [
2692 buggygetaddrinfo=yes
2695 if test "$buggygetaddrinfo" = "yes"; then
2696 if test "$ipv6" = "yes"; then
2697 echo 'Fatal: You must get working getaddrinfo() function.'
2698 echo ' or you can specify "--disable-ipv6"'.
2702 AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if you have the getaddrinfo function.])
2704 AC_CHECK_FUNCS(getnameinfo)
2706 # checks for structures
2710 AC_CHECK_MEMBERS([struct stat.st_rdev])
2711 AC_CHECK_MEMBERS([struct stat.st_blksize])
2712 AC_CHECK_MEMBERS([struct stat.st_flags])
2713 AC_CHECK_MEMBERS([struct stat.st_gen])
2714 AC_CHECK_MEMBERS([struct stat.st_birthtime])
2717 AC_MSG_CHECKING(for time.h that defines altzone)
2718 AC_CACHE_VAL(ac_cv_header_time_altzone,
2719 [AC_TRY_COMPILE([#include <time.h>], [return altzone;],
2720 ac_cv_header_time_altzone=yes,
2721 ac_cv_header_time_altzone=no)])
2722 AC_MSG_RESULT($ac_cv_header_time_altzone)
2723 if test $ac_cv_header_time_altzone = yes; then
2724 AC_DEFINE(HAVE_ALTZONE, 1, [Define this if your time.h defines altzone.])
2728 AC_MSG_CHECKING(whether sys/select.h and sys/time.h may both be included)
2730 #include <sys/types.h>
2731 #include <sys/select.h>
2732 #include <sys/time.h>
2734 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME, 1,
2735 [Define if you can safely include both <sys/select.h> and <sys/time.h>
2736 (which you can't on SCO ODT 3.0).])
2739 AC_MSG_RESULT($was_it_defined)
2741 AC_MSG_CHECKING(for addrinfo)
2742 AC_CACHE_VAL(ac_cv_struct_addrinfo,
2744 # include <netdb.h>],
2745 [struct addrinfo a],
2746 ac_cv_struct_addrinfo=yes,
2747 ac_cv_struct_addrinfo=no))
2748 AC_MSG_RESULT($ac_cv_struct_addrinfo)
2749 if test $ac_cv_struct_addrinfo = yes; then
2750 AC_DEFINE(HAVE_ADDRINFO, 1, [struct addrinfo (netdb.h)])
2753 AC_MSG_CHECKING(for sockaddr_storage)
2754 AC_CACHE_VAL(ac_cv_struct_sockaddr_storage,
2756 # include <sys/types.h>
2757 # include <sys/socket.h>],
2758 [struct sockaddr_storage s],
2759 ac_cv_struct_sockaddr_storage=yes,
2760 ac_cv_struct_sockaddr_storage=no))
2761 AC_MSG_RESULT($ac_cv_struct_sockaddr_storage)
2762 if test $ac_cv_struct_sockaddr_storage = yes; then
2763 AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [struct sockaddr_storage (sys/socket.h)])
2766 # checks for compiler characteristics
2772 AC_MSG_CHECKING(for working volatile)
2773 AC_TRY_COMPILE([],[volatile int x; x = 0;], works=yes,
2774 AC_DEFINE(volatile, [], [Define to empty if the keyword does not work.])
2776 AC_MSG_RESULT($works)
2779 AC_MSG_CHECKING(for working signed char)
2780 AC_TRY_COMPILE([], [signed char c;], works=yes,
2781 AC_DEFINE(signed, [], [Define to empty if the keyword does not work.])
2783 AC_MSG_RESULT($works)
2786 AC_MSG_CHECKING(for prototypes)
2787 AC_TRY_COMPILE([int foo(int x) { return 0; }], [return foo(10);],[
2788 AC_DEFINE(HAVE_PROTOTYPES, 1,
2789 [Define if your compiler supports function prototype])
2792 AC_MSG_RESULT($have_prototypes)
2795 AC_MSG_CHECKING(for variable length prototypes and stdarg.h)
2798 int foo(int x, ...) {
2806 ], [return foo(10, "", 3.14);], [
2807 AC_DEFINE(HAVE_STDARG_PROTOTYPES, 1,
2808 [Define if your compiler supports variable length function prototypes
2809 (e.g. void fprintf(FILE *, char *, ...);) *and* <stdarg.h>])
2812 AC_MSG_RESULT($works)
2814 # check for socketpair
2815 AC_MSG_CHECKING(for socketpair)
2817 #include <sys/types.h>
2818 #include <sys/socket.h>
2819 ], void *x=socketpair,
2820 AC_DEFINE(HAVE_SOCKETPAIR, 1, Define if you have the 'socketpair' function.)
2825 # check if sockaddr has sa_len member
2826 AC_MSG_CHECKING(if sockaddr has sa_len member)
2827 AC_TRY_COMPILE([#include <sys/types.h>
2828 #include <sys/socket.h>],
2832 AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Define if sockaddr has sa_len member]),
2836 AC_MSG_CHECKING(whether va_list is an array)
2838 #ifdef HAVE_STDARG_PROTOTYPES
2841 #include <varargs.h>
2843 ], [va_list list1, list2; list1 = list2;], , [
2844 AC_DEFINE(VA_LIST_IS_ARRAY, 1, [Define if a va_list is an array of some kind])
2845 va_list_is_array=yes
2847 AC_MSG_RESULT($va_list_is_array)
2849 # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-(
2850 AH_TEMPLATE(HAVE_GETHOSTBYNAME_R,
2851 [Define this if you have some version of gethostbyname_r()])
2853 AC_CHECK_FUNC(gethostbyname_r, [
2854 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2855 AC_MSG_CHECKING([gethostbyname_r with 6 args])
2857 CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS"
2862 struct hostent *he, *res;
2867 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop)
2869 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2870 AC_DEFINE(HAVE_GETHOSTBYNAME_R_6_ARG, 1,
2871 [Define this if you have the 6-arg version of gethostbyname_r().])
2875 AC_MSG_CHECKING([gethostbyname_r with 5 args])
2885 (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop)
2887 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2888 AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1,
2889 [Define this if you have the 5-arg version of gethostbyname_r().])
2893 AC_MSG_CHECKING([gethostbyname_r with 3 args])
2899 struct hostent_data data;
2901 (void) gethostbyname_r(name, he, &data);
2903 AC_DEFINE(HAVE_GETHOSTBYNAME_R)
2904 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1,
2905 [Define this if you have the 3-arg version of gethostbyname_r().])
2914 AC_CHECK_FUNCS(gethostbyname)
2916 AC_SUBST(HAVE_GETHOSTBYNAME_R_6_ARG)
2917 AC_SUBST(HAVE_GETHOSTBYNAME_R_5_ARG)
2918 AC_SUBST(HAVE_GETHOSTBYNAME_R_3_ARG)
2919 AC_SUBST(HAVE_GETHOSTBYNAME_R)
2920 AC_SUBST(HAVE_GETHOSTBYNAME)
2922 # checks for system services
2925 # Linux requires this for correct f.p. operations
2926 AC_CHECK_FUNC(__fpu_control,
2928 [AC_CHECK_LIB(ieee, __fpu_control)
2931 # Check for --with-fpectl
2932 AC_MSG_CHECKING(for --with-fpectl)
2934 AC_HELP_STRING(--with-fpectl, enable SIGFPE catching),
2936 if test "$withval" != no
2938 AC_DEFINE(WANT_SIGFPE_HANDLER, 1,
2939 [Define if you want SIGFPE handled (see Include/pyfpe.h).])
2941 else AC_MSG_RESULT(no)
2943 [AC_MSG_RESULT(no)])
2945 # check for --with-libm=...
2947 case $ac_sys_system in
2952 AC_MSG_CHECKING(for --with-libm=STRING)
2954 AC_HELP_STRING(--with-libm=STRING, math library),
2956 if test "$withval" = no
2958 AC_MSG_RESULT(force LIBM empty)
2959 elif test "$withval" != yes
2961 AC_MSG_RESULT(set LIBM="$withval")
2962 else AC_MSG_ERROR([proper usage is --with-libm=STRING])
2964 [AC_MSG_RESULT(default LIBM="$LIBM")])
2966 # check for --with-libc=...
2968 AC_MSG_CHECKING(for --with-libc=STRING)
2970 AC_HELP_STRING(--with-libc=STRING, C library),
2972 if test "$withval" = no
2974 AC_MSG_RESULT(force LIBC empty)
2975 elif test "$withval" != yes
2977 AC_MSG_RESULT(set LIBC="$withval")
2978 else AC_MSG_ERROR([proper usage is --with-libc=STRING])
2980 [AC_MSG_RESULT(default LIBC="$LIBC")])
2982 # ************************************
2983 # * Check for mathematical functions *
2984 # ************************************
2987 AC_REPLACE_FUNCS(hypot)
2989 AC_CHECK_FUNCS(acosh asinh atanh copysign expm1 finite isinf isnan log1p)
2994 AC_CHECK_HEADER(wchar.h, [
2995 AC_DEFINE(HAVE_WCHAR_H, 1,
2996 [Define if the compiler provides a wchar.h header file.])
3002 # determine wchar_t size
3003 if test "$wchar_h" = yes
3005 AC_CHECK_SIZEOF(wchar_t, 4, [#include <wchar.h>])
3008 AC_MSG_CHECKING(for UCS-4 tcl)
3012 #if TCL_UTF_MAX != 6
3013 # error "NOT UCS4_TCL"
3015 AC_DEFINE(HAVE_UCS4_TCL, 1, [Define this if you have tcl and TCL_UTF_MAX==6])
3018 AC_MSG_RESULT($have_ucs4_tcl)
3020 # check whether wchar_t is signed or not
3021 if test "$wchar_h" = yes
3023 # check whether wchar_t is signed or not
3024 AC_MSG_CHECKING(whether wchar_t is signed)
3025 AC_CACHE_VAL(ac_cv_wchar_t_signed, [
3030 /* Success: exit code 0 */
3031 exit((((wchar_t) -1) < ((wchar_t) 0)) ? 0 : 1);
3034 ac_cv_wchar_t_signed=yes,
3035 ac_cv_wchar_t_signed=no,
3036 ac_cv_wchar_t_signed=yes)])
3037 AC_MSG_RESULT($ac_cv_wchar_t_signed)
3040 AC_MSG_CHECKING(what type to use for unicode)
3041 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
3042 AC_ARG_ENABLE(unicode,
3043 AC_HELP_STRING(--enable-unicode@<:@=ucs@<:@24@:>@@:>@, Enable Unicode strings (default is yes)),
3045 [enable_unicode=yes])
3047 if test $enable_unicode = yes
3049 # Without any arguments, Py_UNICODE defaults to two-byte mode
3050 case "$have_ucs4_tcl" in
3051 yes) enable_unicode="ucs4"
3053 *) enable_unicode="ucs2"
3058 AH_TEMPLATE(Py_UNICODE_SIZE,
3059 [Define as the size of the unicode type.])
3060 case "$enable_unicode" in
3061 ucs2) unicode_size="2"
3062 AC_DEFINE(Py_UNICODE_SIZE,2)
3064 ucs4) unicode_size="4"
3065 AC_DEFINE(Py_UNICODE_SIZE,4)
3069 AH_TEMPLATE(PY_UNICODE_TYPE,
3070 [Define as the integral type used for Unicode representation.])
3072 AC_SUBST(UNICODE_OBJS)
3073 if test "$enable_unicode" = "no"
3076 AC_MSG_RESULT(not used)
3078 UNICODE_OBJS="Objects/unicodeobject.o Objects/unicodectype.o"
3079 AC_DEFINE(Py_USING_UNICODE, 1,
3080 [Define if you want to have a Unicode type.])
3082 # wchar_t is only usable if it maps to an unsigned type
3083 if test "$unicode_size" = "$ac_cv_sizeof_wchar_t" \
3084 -a "$ac_cv_wchar_t_signed" = "no"
3086 PY_UNICODE_TYPE="wchar_t"
3087 AC_DEFINE(HAVE_USABLE_WCHAR_T, 1,
3088 [Define if you have a useable wchar_t type defined in wchar.h; useable
3089 means wchar_t must be an unsigned type with at least 16 bits. (see
3090 Include/unicodeobject.h).])
3091 AC_DEFINE(PY_UNICODE_TYPE,wchar_t)
3092 elif test "$ac_cv_sizeof_short" = "$unicode_size"
3094 PY_UNICODE_TYPE="unsigned short"
3095 AC_DEFINE(PY_UNICODE_TYPE,unsigned short)
3096 elif test "$ac_cv_sizeof_long" = "$unicode_size"
3098 PY_UNICODE_TYPE="unsigned long"
3099 AC_DEFINE(PY_UNICODE_TYPE,unsigned long)
3101 PY_UNICODE_TYPE="no type found"
3103 AC_MSG_RESULT($PY_UNICODE_TYPE)
3106 # check for endianness
3108 AH_VERBATIM([WORDS_BIGENDIAN],
3110 /* Define to 1 if your processor stores words with the most significant byte
3111 first (like Motorola and SPARC, unlike Intel and VAX).
3113 The block below does compile-time checking for endianness on platforms
3114 that use GCC and therefore allows compiling fat binaries on OSX by using
3115 '-arch ppc -arch i386' as the compile flags. The phrasing was choosen
3116 such that the configure-result is used on systems that don't use GCC.
3118 #ifdef __BIG_ENDIAN__
3119 #define WORDS_BIGENDIAN 1
3121 #ifndef __LITTLE_ENDIAN__
3122 #undef WORDS_BIGENDIAN
3126 # Check whether right shifting a negative integer extends the sign bit
3127 # or fills with zeros (like the Cray J90, according to Tim Peters).
3128 AC_MSG_CHECKING(whether right shift extends the sign bit)
3129 AC_CACHE_VAL(ac_cv_rshift_extends_sign, [
3133 exit(((-1)>>3 == -1) ? 0 : 1);
3136 ac_cv_rshift_extends_sign=yes,
3137 ac_cv_rshift_extends_sign=no,
3138 ac_cv_rshift_extends_sign=yes)])
3139 AC_MSG_RESULT($ac_cv_rshift_extends_sign)
3140 if test "$ac_cv_rshift_extends_sign" = no
3142 AC_DEFINE(SIGNED_RIGHT_SHIFT_ZERO_FILLS, 1,
3143 [Define if i>>j for signed int i does not extend the sign bit
3147 # check for getc_unlocked and related locking functions
3148 AC_MSG_CHECKING(for getc_unlocked() and friends)
3149 AC_CACHE_VAL(ac_cv_have_getc_unlocked, [
3150 AC_TRY_LINK([#include <stdio.h>],[
3151 FILE *f = fopen("/dev/null", "r");
3155 ], ac_cv_have_getc_unlocked=yes, ac_cv_have_getc_unlocked=no)])
3156 AC_MSG_RESULT($ac_cv_have_getc_unlocked)
3157 if test "$ac_cv_have_getc_unlocked" = yes
3159 AC_DEFINE(HAVE_GETC_UNLOCKED, 1,
3160 [Define this if you have flockfile(), getc_unlocked(), and funlockfile()])
3163 # check where readline lives
3164 # save the value of LIBS so we don't actually link Python with readline
3165 LIBS_no_readline=$LIBS
3166 AC_CHECK_LIB(readline, readline)
3167 if test "$ac_cv_have_readline_readline" = no
3169 AC_CHECK_LIB(termcap, readline)
3172 # check for readline 2.1
3173 AC_CHECK_LIB(readline, rl_callback_handler_install,
3174 AC_DEFINE(HAVE_RL_CALLBACK, 1,
3175 [Define if you have readline 2.1]), , )
3177 # check for readline 2.2
3178 AC_TRY_CPP([#include <readline/readline.h>],
3179 have_readline=yes, have_readline=no)
3180 if test $have_readline = yes
3182 AC_EGREP_HEADER([extern int rl_completion_append_character;],
3183 [readline/readline.h],
3184 AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER, 1,
3185 [Define if you have readline 2.2]), )
3188 # check for readline 4.0
3189 AC_CHECK_LIB(readline, rl_pre_input_hook,
3190 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK, 1,
3191 [Define if you have readline 4.0]), , )
3194 AC_CHECK_LIB(readline, rl_completion_display_matches_hook,
3195 AC_DEFINE(HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK, 1,
3196 [Define if you have readline 4.0]), , )
3198 # check for readline 4.2
3199 AC_CHECK_LIB(readline, rl_completion_matches,
3200 AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1,
3201 [Define if you have readline 4.2]), , )
3203 # also in readline 4.2
3204 AC_TRY_CPP([#include <readline/readline.h>],
3205 have_readline=yes, have_readline=no)
3206 if test $have_readline = yes
3208 AC_EGREP_HEADER([extern int rl_catch_signals;],
3209 [readline/readline.h],
3210 AC_DEFINE(HAVE_RL_CATCH_SIGNAL, 1,
3211 [Define if you can turn off readline's signal handling.]), )
3214 # End of readline checks: restore LIBS
3215 LIBS=$LIBS_no_readline
3217 AC_MSG_CHECKING(for broken nice())
3218 AC_CACHE_VAL(ac_cv_broken_nice, [
3223 if (val1 != -1 && val1 == nice(2))
3228 ac_cv_broken_nice=yes,
3229 ac_cv_broken_nice=no,
3230 ac_cv_broken_nice=no)])
3231 AC_MSG_RESULT($ac_cv_broken_nice)
3232 if test "$ac_cv_broken_nice" = yes
3234 AC_DEFINE(HAVE_BROKEN_NICE, 1,
3235 [Define if nice() returns success/failure instead of the new priority.])
3238 AC_MSG_CHECKING(for broken poll())
3244 struct pollfd poll_struct = { 42, POLLIN|POLLPRI|POLLOUT, 0 };
3248 int poll_test = poll (&poll_struct, 1, 0);
3254 else if (poll_test == 0 && poll_struct.revents != POLLNVAL)
3264 ac_cv_broken_poll=yes,
3265 ac_cv_broken_poll=no,
3266 ac_cv_broken_poll=no)
3267 AC_MSG_RESULT($ac_cv_broken_poll)
3268 if test "$ac_cv_broken_poll" = yes
3270 AC_DEFINE(HAVE_BROKEN_POLL, 1,
3271 [Define if poll() sets errno on invalid file descriptors.])
3274 # Before we can test tzset, we need to check if struct tm has a tm_zone
3275 # (which is not required by ISO C or UNIX spec) and/or if we support
3279 # check tzset(3) exists and works like we expect it to
3280 AC_MSG_CHECKING(for working tzset())
3281 AC_CACHE_VAL(ac_cv_working_tzset, [
3288 extern char *tzname[];
3293 /* Note that we need to ensure that not only does tzset(3)
3294 do 'something' with localtime, but it works as documented
3295 in the library reference and as expected by the test suite.
3296 This includes making sure that tzname is set properly if
3297 tm->tm_zone does not exist since it is the alternative way
3298 of getting timezone info.
3300 Red Hat 6.2 doesn't understand the southern hemisphere
3301 after New Year's Day.
3304 time_t groundhogday = 1044144000; /* GMT-based */
3305 time_t midyear = groundhogday + (365 * 24 * 3600 / 2);
3309 if (localtime(&groundhogday)->tm_hour != 0)
3312 /* For UTC, tzname[1] is sometimes "", sometimes " " */
3313 if (strcmp(tzname[0], "UTC") ||
3314 (tzname[1][0] != 0 && tzname[1][0] != ' '))
3318 putenv("TZ=EST+5EDT,M4.1.0,M10.5.0");
3320 if (localtime(&groundhogday)->tm_hour != 19)
3323 if (strcmp(tzname[0], "EST") || strcmp(tzname[1], "EDT"))
3327 putenv("TZ=AEST-10AEDT-11,M10.5.0,M3.5.0");
3329 if (localtime(&groundhogday)->tm_hour != 11)
3332 if (strcmp(tzname[0], "AEST") || strcmp(tzname[1], "AEDT"))
3336 #if HAVE_STRUCT_TM_TM_ZONE
3337 if (strcmp(localtime(&groundhogday)->tm_zone, "AEDT"))
3339 if (strcmp(localtime(&midyear)->tm_zone, "AEST"))
3346 ac_cv_working_tzset=yes,
3347 ac_cv_working_tzset=no,
3348 ac_cv_working_tzset=no)])
3349 AC_MSG_RESULT($ac_cv_working_tzset)
3350 if test "$ac_cv_working_tzset" = yes
3352 AC_DEFINE(HAVE_WORKING_TZSET, 1,
3353 [Define if tzset() actually switches the local timezone in a meaningful way.])
3356 # Look for subsecond timestamps in struct stat
3357 AC_MSG_CHECKING(for tv_nsec in struct stat)
3358 AC_CACHE_VAL(ac_cv_stat_tv_nsec,
3359 AC_TRY_COMPILE([#include <sys/stat.h>], [
3361 st.st_mtim.tv_nsec = 1;
3363 ac_cv_stat_tv_nsec=yes,
3364 ac_cv_stat_tv_nsec=no,
3365 ac_cv_stat_tv_nsec=no))
3366 AC_MSG_RESULT($ac_cv_stat_tv_nsec)
3367 if test "$ac_cv_stat_tv_nsec" = yes
3369 AC_DEFINE(HAVE_STAT_TV_NSEC, 1,
3370 [Define if you have struct stat.st_mtim.tv_nsec])
3373 # Look for BSD style subsecond timestamps in struct stat
3374 AC_MSG_CHECKING(for tv_nsec2 in struct stat)
3375 AC_CACHE_VAL(ac_cv_stat_tv_nsec2,
3376 AC_TRY_COMPILE([#include <sys/stat.h>], [
3378 st.st_mtimespec.tv_nsec = 1;
3380 ac_cv_stat_tv_nsec2=yes,
3381 ac_cv_stat_tv_nsec2=no,
3382 ac_cv_stat_tv_nsec2=no))
3383 AC_MSG_RESULT($ac_cv_stat_tv_nsec2)
3384 if test "$ac_cv_stat_tv_nsec2" = yes
3386 AC_DEFINE(HAVE_STAT_TV_NSEC2, 1,
3387 [Define if you have struct stat.st_mtimensec])
3390 # On HP/UX 11.0, mvwdelch is a block with a return statement
3391 AC_MSG_CHECKING(whether mvwdelch is an expression)
3392 AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
3393 AC_TRY_COMPILE([#include <curses.h>], [
3395 rtn = mvwdelch(0,0,0);
3396 ], ac_cv_mvwdelch_is_expression=yes,
3397 ac_cv_mvwdelch_is_expression=no,
3398 ac_cv_mvwdelch_is_expression=yes))
3399 AC_MSG_RESULT($ac_cv_mvwdelch_is_expression)
3401 if test "$ac_cv_mvwdelch_is_expression" = yes
3403 AC_DEFINE(MVWDELCH_IS_EXPRESSION, 1,
3404 [Define if mvwdelch in curses.h is an expression.])
3407 AC_MSG_CHECKING(whether WINDOW has _flags)
3408 AC_CACHE_VAL(ac_cv_window_has_flags,
3409 AC_TRY_COMPILE([#include <curses.h>], [
3412 ], ac_cv_window_has_flags=yes,
3413 ac_cv_window_has_flags=no,
3414 ac_cv_window_has_flags=no))
3415 AC_MSG_RESULT($ac_cv_window_has_flags)
3418 if test "$ac_cv_window_has_flags" = yes
3420 AC_DEFINE(WINDOW_HAS_FLAGS, 1,
3421 [Define if WINDOW in curses.h offers a field _flags.])
3424 AC_MSG_CHECKING(for is_term_resized)
3425 AC_TRY_COMPILE([#include <curses.h>], void *x=is_term_resized,
3426 AC_DEFINE(HAVE_CURSES_IS_TERM_RESIZED, 1, Define if you have the 'is_term_resized' function.)
3431 AC_MSG_CHECKING(for resize_term)
3432 AC_TRY_COMPILE([#include <curses.h>], void *x=resize_term,
3433 AC_DEFINE(HAVE_CURSES_RESIZE_TERM, 1, Define if you have the 'resize_term' function.)
3438 AC_MSG_CHECKING(for resizeterm)
3439 AC_TRY_COMPILE([#include <curses.h>], void *x=resizeterm,
3440 AC_DEFINE(HAVE_CURSES_RESIZETERM, 1, Define if you have the 'resizeterm' function.)
3445 AC_MSG_CHECKING(for /dev/ptmx)
3447 if test -r /dev/ptmx
3450 AC_DEFINE(HAVE_DEV_PTMX, 1,
3451 [Define if we have /dev/ptmx.])
3456 AC_MSG_CHECKING(for /dev/ptc)
3461 AC_DEFINE(HAVE_DEV_PTC, 1,
3462 [Define if we have /dev/ptc.])
3467 AC_MSG_CHECKING(for %zd printf() format support)
3468 AC_TRY_RUN([#include <stdio.h>
3472 #ifdef HAVE_SYS_TYPES_H
3473 #include <sys/types.h>
3477 typedef ssize_t Py_ssize_t;
3478 #elif SIZEOF_VOID_P == SIZEOF_LONG
3479 typedef long Py_ssize_t;
3481 typedef int Py_ssize_t;
3488 if(sprintf(buffer, "%zd", (size_t)123) < 0)
3491 if (strcmp(buffer, "123"))
3494 if (sprintf(buffer, "%zd", (Py_ssize_t)-123) < 0)
3497 if (strcmp(buffer, "-123"))
3503 AC_DEFINE(PY_FORMAT_SIZE_T, "z", [Define to printf format modifier for Py_ssize_t])],
3506 AC_CHECK_TYPE(socklen_t,,
3507 AC_DEFINE(socklen_t,int,
3508 Define to `int' if <sys/socket.h> does not define.),[
3509 #ifdef HAVE_SYS_TYPES_H
3510 #include <sys/types.h>
3512 #ifdef HAVE_SYS_SOCKET_H
3513 #include <sys/socket.h>
3517 AC_SUBST(THREADHEADERS)
3519 for h in `(cd $srcdir;echo Python/thread_*.h)`
3521 THREADHEADERS="$THREADHEADERS \$(srcdir)/$h"
3525 SRCDIRS="Parser Grammar Objects Python Modules Mac"
3526 AC_MSG_CHECKING(for build directories)
3527 for dir in $SRCDIRS; do
3528 if test ! -d $dir; then
3534 # generate output files
3535 AC_CONFIG_FILES(Makefile.pre Modules/Setup.config)
3538 echo "creating Modules/Setup"
3539 if test ! -f Modules/Setup
3541 cp $srcdir/Modules/Setup.dist Modules/Setup
3544 echo "creating Modules/Setup.local"
3545 if test ! -f Modules/Setup.local
3547 echo "# Edit this file for local setup changes" >Modules/Setup.local
3550 echo "creating Makefile"
3551 $SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
3552 -s Modules Modules/Setup.config \
3553 Modules/Setup.local Modules/Setup
3555 case $ac_sys_system in
3559 Support for BeOS is deprecated as of Python 2.6.
3560 See PEP 11 for the gory details.